|
3 | 3 | """ |
4 | 4 |
|
5 | 5 | import os |
6 | | -from typing import Dict, List |
7 | 6 |
|
8 | 7 | import pytest |
9 | 8 |
|
10 | 9 | import libkirk |
11 | 10 | import libkirk.com |
12 | | -from libkirk.data import Suite, Test |
13 | | -from libkirk.framework import Framework |
14 | | -from libkirk.results import TestResults |
15 | | -from libkirk.sut import SUT |
| 11 | +import libkirk.sut |
16 | 12 |
|
17 | 13 |
|
18 | 14 | @pytest.fixture(scope="session") |
@@ -42,170 +38,38 @@ def _discover_plugins(): |
42 | 38 | libkirk.sut.discover(os.path.join(currdir, ".."), extend=False) |
43 | 39 |
|
44 | 40 |
|
45 | | -class DummyFramework(Framework): |
| 41 | +@pytest.fixture |
| 42 | +def ltpdir(tmpdir): |
46 | 43 | """ |
47 | | - A generic framework created for testing. |
| 44 | + Setup the temporary folder with LTP tests. |
48 | 45 | """ |
| 46 | + os.environ["LTPROOT"] = str(tmpdir) |
49 | 47 |
|
50 | | - def __init__(self) -> None: |
51 | | - self._root = None |
52 | | - |
53 | | - def setup(self, **kwargs: Dict[str, str]) -> None: |
54 | | - self._root = kwargs.get("root", "/") |
55 | | - self._env = kwargs.get("env", None) |
56 | | - |
57 | | - @property |
58 | | - def name(self) -> str: |
59 | | - return "dummy" |
60 | | - |
61 | | - @property |
62 | | - def config_help(self) -> Dict[str, str]: |
63 | | - return {} |
64 | | - |
65 | | - async def get_suites(self, sut: SUT) -> List[str]: |
66 | | - return ["suite01", "suite02", "sleep", "environ", "kernel_panic"] |
67 | | - |
68 | | - async def find_command(self, sut: SUT, command: str) -> Test: |
69 | | - return Test(name=command, cmd=command) |
70 | | - |
71 | | - async def find_suite(self, sut: SUT, name: str) -> Suite: |
72 | | - if name in "suite01": |
73 | | - test0 = Test( |
74 | | - name="test01", |
75 | | - cwd=self._root, |
76 | | - env=self._env, |
77 | | - cmd="echo", |
78 | | - args=["-n", "ciao0"], |
79 | | - parallelizable=False, |
80 | | - ) |
81 | | - |
82 | | - test1 = Test( |
83 | | - name="test02", |
84 | | - cwd=self._root, |
85 | | - env=self._env, |
86 | | - cmd="echo", |
87 | | - args=["-n", "ciao0"], |
88 | | - parallelizable=False, |
89 | | - ) |
90 | | - |
91 | | - return Suite(name, [test0, test1]) |
92 | | - if name == "suite02": |
93 | | - test0 = Test( |
94 | | - name="test01", |
95 | | - cwd=self._root, |
96 | | - env=self._env, |
97 | | - cmd="echo", |
98 | | - args=["-n", "ciao0"], |
99 | | - parallelizable=False, |
100 | | - ) |
101 | | - |
102 | | - test1 = Test( |
103 | | - name="test02", |
104 | | - cwd=self._root, |
105 | | - env=self._env, |
106 | | - cmd="sleep", |
107 | | - args=["0.2", "&&", "echo", "-n", "ciao1"], |
108 | | - parallelizable=True, |
109 | | - ) |
110 | | - |
111 | | - return Suite(name, [test0, test1]) |
112 | | - elif name == "sleep": |
113 | | - test0 = Test( |
114 | | - name="test01", |
115 | | - cwd=self._root, |
116 | | - env=self._env, |
117 | | - cmd="sleep", |
118 | | - args=["2"], |
119 | | - parallelizable=False, |
120 | | - ) |
121 | | - |
122 | | - test1 = Test( |
123 | | - name="test02", |
124 | | - cwd=self._root, |
125 | | - env=self._env, |
126 | | - cmd="sleep", |
127 | | - args=["2"], |
128 | | - parallelizable=False, |
129 | | - ) |
130 | | - |
131 | | - return Suite(name, [test0, test1]) |
132 | | - elif name == "environ": |
133 | | - test0 = Test( |
134 | | - name="test01", |
135 | | - cwd=self._root, |
136 | | - env=self._env, |
137 | | - cmd="echo", |
138 | | - args=["-n", "$hello"], |
139 | | - parallelizable=False, |
140 | | - ) |
141 | | - |
142 | | - return Suite(name, [test0]) |
143 | | - elif name == "kernel_panic": |
144 | | - test0 = Test( |
145 | | - name="test01", |
146 | | - cwd=self._root, |
147 | | - env=self._env, |
148 | | - cmd="echo", |
149 | | - args=["Kernel", "panic"], |
150 | | - parallelizable=False, |
151 | | - ) |
152 | | - |
153 | | - test1 = Test( |
154 | | - name="test01", |
155 | | - cwd=self._root, |
156 | | - env=self._env, |
157 | | - cmd="sleep", |
158 | | - args=["0.2"], |
159 | | - parallelizable=False, |
160 | | - ) |
161 | | - |
162 | | - return Suite(name, [test0, test1]) |
163 | | - |
164 | | - return None |
165 | | - |
166 | | - async def read_result( |
167 | | - self, test: Test, stdout: str, retcode: int, exec_t: float |
168 | | - ) -> TestResults: |
169 | | - passed = 0 |
170 | | - failed = 0 |
171 | | - skipped = 0 |
172 | | - broken = 0 |
173 | | - skipped = 0 |
174 | | - warnings = 0 |
175 | | - error = retcode == -1 |
176 | | - |
177 | | - if retcode == 0: |
178 | | - passed = 1 |
179 | | - elif retcode == 4: |
180 | | - warnings = 1 |
181 | | - elif retcode == 32: |
182 | | - skipped = 1 |
183 | | - elif not error: |
184 | | - failed = 1 |
185 | | - |
186 | | - if error: |
187 | | - broken = 1 |
188 | | - |
189 | | - result = TestResults( |
190 | | - test=test, |
191 | | - passed=passed, |
192 | | - failed=failed, |
193 | | - broken=broken, |
194 | | - skipped=skipped, |
195 | | - warnings=warnings, |
196 | | - exec_time=exec_t, |
197 | | - retcode=retcode, |
198 | | - stdout=stdout, |
199 | | - ) |
200 | | - |
201 | | - return result |
| 48 | + tmpdir.mkdir("testcases").mkdir("bin") |
| 49 | + runtest = tmpdir.mkdir("runtest") |
202 | 50 |
|
| 51 | + suite01 = runtest / "suite01" |
| 52 | + suite01.write_text( |
| 53 | + "test01 echo -n ciao\ntest02 echo -n ciao\n", |
| 54 | + encoding="utf-8") |
203 | 55 |
|
204 | | -@pytest.fixture |
205 | | -def dummy_framework(): |
206 | | - """ |
207 | | - A fummy framework implementation used for testing. |
208 | | - """ |
209 | | - obj = DummyFramework() |
210 | | - obj.setup(root="/tmp") |
211 | | - yield obj |
| 56 | + suite02 = runtest / "suite02" |
| 57 | + suite02.write_text( |
| 58 | + "test01 echo -n ciao\ntest02 sleep 0.2 && echo -n ciao", |
| 59 | + encoding="utf-8") |
| 60 | + |
| 61 | + sleep = runtest / "sleep" |
| 62 | + sleep.write_text( |
| 63 | + "sleep01 sleep 2\nsleep02 sleep 2", |
| 64 | + encoding="utf-8") |
| 65 | + |
| 66 | + environ = runtest / "environ" |
| 67 | + environ.write_text("test01 echo -n $hello", |
| 68 | + encoding="utf-8") |
| 69 | + |
| 70 | + kernel_panic = runtest / "kernel_panic" |
| 71 | + kernel_panic.write_text( |
| 72 | + "test01 echo 'Kernel panic'\ntest02 sleep 0.2", |
| 73 | + encoding="utf-8") |
| 74 | + |
| 75 | + return tmpdir |
0 commit comments