diff options
author | Peter Kjellerstedt <peter.kjellerstedt@axis.com> | 2025-09-16 23:19:30 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-09-24 00:01:44 +0100 |
commit | c948feaae41356f4c7c1611b6a9ab3a9569c6884 (patch) | |
tree | 33ff329464b56d23d3f90baf9475ff48803f5c92 /bitbake/lib/bb/tests/parse.py | |
parent | e90bc48bdaa2234cad52bbb2800f5246c277ffbd (diff) | |
download | poky-c948feaae41356f4c7c1611b6a9ab3a9569c6884.tar.gz |
bitbake: tests/parse: Use with statement to avoid ResourceWarning
(Bitbake rev: 46a5e31713fc526a1807b1617fba8a01c1564641)
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/tests/parse.py')
-rw-r--r-- | bitbake/lib/bb/tests/parse.py | 95 |
1 files changed, 44 insertions, 51 deletions
diff --git a/bitbake/lib/bb/tests/parse.py b/bitbake/lib/bb/tests/parse.py index e3cba67ad4..b272739f56 100644 --- a/bitbake/lib/bb/tests/parse.py +++ b/bitbake/lib/bb/tests/parse.py | |||
@@ -39,7 +39,6 @@ C = "3" | |||
39 | os.chdir(self.origdir) | 39 | os.chdir(self.origdir) |
40 | 40 | ||
41 | def parsehelper(self, content, suffix = ".bb"): | 41 | def parsehelper(self, content, suffix = ".bb"): |
42 | |||
43 | f = tempfile.NamedTemporaryFile(suffix = suffix) | 42 | f = tempfile.NamedTemporaryFile(suffix = suffix) |
44 | f.write(bytes(content, "utf-8")) | 43 | f.write(bytes(content, "utf-8")) |
45 | f.flush() | 44 | f.flush() |
@@ -47,17 +46,17 @@ C = "3" | |||
47 | return f | 46 | return f |
48 | 47 | ||
49 | def test_parse_simple(self): | 48 | def test_parse_simple(self): |
50 | f = self.parsehelper(self.testfile) | 49 | with self.parsehelper(self.testfile) as f: |
51 | d = bb.parse.handle(f.name, self.d)[''] | 50 | d = bb.parse.handle(f.name, self.d)[''] |
52 | self.assertEqual(d.getVar("A"), "1") | 51 | self.assertEqual(d.getVar("A"), "1") |
53 | self.assertEqual(d.getVar("B"), "2") | 52 | self.assertEqual(d.getVar("B"), "2") |
54 | self.assertEqual(d.getVar("C"), "3") | 53 | self.assertEqual(d.getVar("C"), "3") |
55 | 54 | ||
56 | def test_parse_incomplete_function(self): | 55 | def test_parse_incomplete_function(self): |
57 | testfileB = self.testfile.replace("}", "") | 56 | testfileB = self.testfile.replace("}", "") |
58 | f = self.parsehelper(testfileB) | 57 | with self.parsehelper(testfileB) as f: |
59 | with self.assertRaises(bb.parse.ParseError): | 58 | with self.assertRaises(bb.parse.ParseError): |
60 | d = bb.parse.handle(f.name, self.d)[''] | 59 | d = bb.parse.handle(f.name, self.d)[''] |
61 | 60 | ||
62 | unsettest = """ | 61 | unsettest = """ |
63 | A = "1" | 62 | A = "1" |
@@ -69,8 +68,8 @@ unset B[flag] | |||
69 | """ | 68 | """ |
70 | 69 | ||
71 | def test_parse_unset(self): | 70 | def test_parse_unset(self): |
72 | f = self.parsehelper(self.unsettest) | 71 | with self.parsehelper(self.unsettest) as f: |
73 | d = bb.parse.handle(f.name, self.d)[''] | 72 | d = bb.parse.handle(f.name, self.d)[''] |
74 | self.assertEqual(d.getVar("A"), None) | 73 | self.assertEqual(d.getVar("A"), None) |
75 | self.assertEqual(d.getVarFlag("A","flag"), None) | 74 | self.assertEqual(d.getVarFlag("A","flag"), None) |
76 | self.assertEqual(d.getVar("B"), "2") | 75 | self.assertEqual(d.getVar("B"), "2") |
@@ -113,8 +112,8 @@ A[flag_default_twice] ??= "default flag first" | |||
113 | A[flag_default_twice] ??= "default flag second" | 112 | A[flag_default_twice] ??= "default flag second" |
114 | """ | 113 | """ |
115 | def test_parse_defaulttest(self): | 114 | def test_parse_defaulttest(self): |
116 | f = self.parsehelper(self.defaulttest) | 115 | with self.parsehelper(self.defaulttest) as f: |
117 | d = bb.parse.handle(f.name, self.d)[''] | 116 | d = bb.parse.handle(f.name, self.d)[''] |
118 | self.assertEqual(d.getVar("A"), "set value") | 117 | self.assertEqual(d.getVar("A"), "set value") |
119 | self.assertEqual(d.getVarFlag("A","flag_set_vs_question"), "set flag") | 118 | self.assertEqual(d.getVarFlag("A","flag_set_vs_question"), "set flag") |
120 | self.assertEqual(d.getVarFlag("A","flag_set_vs_default"), "set flag") | 119 | self.assertEqual(d.getVarFlag("A","flag_set_vs_default"), "set flag") |
@@ -136,8 +135,8 @@ exportD = "d" | |||
136 | """ | 135 | """ |
137 | 136 | ||
138 | def test_parse_exports(self): | 137 | def test_parse_exports(self): |
139 | f = self.parsehelper(self.exporttest) | 138 | with self.parsehelper(self.exporttest) as f: |
140 | d = bb.parse.handle(f.name, self.d)[''] | 139 | d = bb.parse.handle(f.name, self.d)[''] |
141 | self.assertEqual(d.getVar("A"), "a") | 140 | self.assertEqual(d.getVar("A"), "a") |
142 | self.assertIsNone(d.getVarFlag("A", "export")) | 141 | self.assertIsNone(d.getVarFlag("A", "export")) |
143 | self.assertEqual(d.getVar("B"), "b") | 142 | self.assertEqual(d.getVar("B"), "b") |
@@ -149,7 +148,6 @@ exportD = "d" | |||
149 | self.assertEqual(d.getVar("exportD"), "d") | 148 | self.assertEqual(d.getVar("exportD"), "d") |
150 | self.assertIsNone(d.getVarFlag("exportD", "export")) | 149 | self.assertIsNone(d.getVarFlag("exportD", "export")) |
151 | 150 | ||
152 | |||
153 | overridetest = """ | 151 | overridetest = """ |
154 | RRECOMMENDS:${PN} = "a" | 152 | RRECOMMENDS:${PN} = "a" |
155 | RRECOMMENDS:${PN}:libc = "b" | 153 | RRECOMMENDS:${PN}:libc = "b" |
@@ -158,8 +156,8 @@ PN = "gtk+" | |||
158 | """ | 156 | """ |
159 | 157 | ||
160 | def test_parse_overrides(self): | 158 | def test_parse_overrides(self): |
161 | f = self.parsehelper(self.overridetest) | 159 | with self.parsehelper(self.overridetest) as f: |
162 | d = bb.parse.handle(f.name, self.d)[''] | 160 | d = bb.parse.handle(f.name, self.d)[''] |
163 | self.assertEqual(d.getVar("RRECOMMENDS"), "b") | 161 | self.assertEqual(d.getVar("RRECOMMENDS"), "b") |
164 | bb.data.expandKeys(d) | 162 | bb.data.expandKeys(d) |
165 | self.assertEqual(d.getVar("RRECOMMENDS"), "b") | 163 | self.assertEqual(d.getVar("RRECOMMENDS"), "b") |
@@ -173,8 +171,8 @@ EXTRA_OECONF:append = " c" | |||
173 | """ | 171 | """ |
174 | 172 | ||
175 | def test_parse_overrides2(self): | 173 | def test_parse_overrides2(self): |
176 | f = self.parsehelper(self.overridetest2) | 174 | with self.parsehelper(self.overridetest2) as f: |
177 | d = bb.parse.handle(f.name, self.d)[''] | 175 | d = bb.parse.handle(f.name, self.d)[''] |
178 | d.appendVar("EXTRA_OECONF", " d") | 176 | d.appendVar("EXTRA_OECONF", " d") |
179 | d.setVar("OVERRIDES", "class-target") | 177 | d.setVar("OVERRIDES", "class-target") |
180 | self.assertEqual(d.getVar("EXTRA_OECONF"), "b c d") | 178 | self.assertEqual(d.getVar("EXTRA_OECONF"), "b c d") |
@@ -186,8 +184,8 @@ PN = "bc" | |||
186 | """ | 184 | """ |
187 | 185 | ||
188 | def test_parse_combinations(self): | 186 | def test_parse_combinations(self): |
189 | f = self.parsehelper(self.overridetest3) | 187 | with self.parsehelper(self.overridetest3) as f: |
190 | d = bb.parse.handle(f.name, self.d)[''] | 188 | d = bb.parse.handle(f.name, self.d)[''] |
191 | bb.data.expandKeys(d) | 189 | bb.data.expandKeys(d) |
192 | self.assertEqual(d.getVar("DESCRIPTION:bc-dev"), "A B") | 190 | self.assertEqual(d.getVar("DESCRIPTION:bc-dev"), "A B") |
193 | d.setVar("DESCRIPTION", "E") | 191 | d.setVar("DESCRIPTION", "E") |
@@ -195,7 +193,6 @@ PN = "bc" | |||
195 | d.setVar("OVERRIDES", "bc-dev") | 193 | d.setVar("OVERRIDES", "bc-dev") |
196 | self.assertEqual(d.getVar("DESCRIPTION"), "C D") | 194 | self.assertEqual(d.getVar("DESCRIPTION"), "C D") |
197 | 195 | ||
198 | |||
199 | classextend = """ | 196 | classextend = """ |
200 | VAR_var:override1 = "B" | 197 | VAR_var:override1 = "B" |
201 | EXTRA = ":override1" | 198 | EXTRA = ":override1" |
@@ -218,15 +215,15 @@ python () { | |||
218 | # | 215 | # |
219 | def test_parse_classextend_contamination(self): | 216 | def test_parse_classextend_contamination(self): |
220 | self.d.setVar("__bbclasstype", "recipe") | 217 | self.d.setVar("__bbclasstype", "recipe") |
221 | cls = self.parsehelper(self.classextend_bbclass, suffix=".bbclass") | 218 | with self.parsehelper(self.classextend_bbclass, suffix=".bbclass") as cls: |
222 | #clsname = os.path.basename(cls.name).replace(".bbclass", "") | 219 | #clsname = os.path.basename(cls.name).replace(".bbclass", "") |
223 | self.classextend = self.classextend.replace("###CLASS###", cls.name) | 220 | self.classextend = self.classextend.replace("###CLASS###", cls.name) |
224 | f = self.parsehelper(self.classextend) | 221 | with self.parsehelper(self.classextend) as f: |
225 | alldata = bb.parse.handle(f.name, self.d) | 222 | alldata = bb.parse.handle(f.name, self.d) |
226 | d1 = alldata[''] | 223 | d1 = alldata[''] |
227 | d2 = alldata[cls.name] | 224 | d2 = alldata[cls.name] |
228 | self.assertEqual(d1.getVar("VAR_var"), "B") | 225 | self.assertEqual(d1.getVar("VAR_var"), "B") |
229 | self.assertEqual(d2.getVar("VAR_var"), None) | 226 | self.assertEqual(d2.getVar("VAR_var"), None) |
230 | 227 | ||
231 | addtask_deltask = """ | 228 | addtask_deltask = """ |
232 | addtask do_patch after do_foo after do_unpack before do_configure before do_compile | 229 | addtask do_patch after do_foo after do_unpack before do_configure before do_compile |
@@ -250,10 +247,8 @@ deltask do_fetch ${MYVAR} ${EMPTYVAR} | |||
250 | deltask ${EMPTYVAR} | 247 | deltask ${EMPTYVAR} |
251 | """ | 248 | """ |
252 | def test_parse_addtask_deltask(self): | 249 | def test_parse_addtask_deltask(self): |
253 | 250 | with self.parsehelper(self.addtask_deltask) as f: | |
254 | f = self.parsehelper(self.addtask_deltask) | 251 | d = bb.parse.handle(f.name, self.d)[''] |
255 | d = bb.parse.handle(f.name, self.d)[''] | ||
256 | |||
257 | self.assertSequenceEqual(['do_fetch2', 'do_patch2', 'do_myplaintask', 'do_mytask', 'do_mytask2', 'do_mytask5'], bb.build.listtasks(d)) | 252 | self.assertSequenceEqual(['do_fetch2', 'do_patch2', 'do_myplaintask', 'do_mytask', 'do_mytask2', 'do_mytask5'], bb.build.listtasks(d)) |
258 | self.assertEqual(['do_mytask'], d.getVarFlag("do_mytask5", "deps")) | 253 | self.assertEqual(['do_mytask'], d.getVarFlag("do_mytask5", "deps")) |
259 | 254 | ||
@@ -263,10 +258,9 @@ deltask ${EMPTYVAR} | |||
263 | 258 | ||
264 | """ | 259 | """ |
265 | def test_parse_broken_multiline_comment(self): | 260 | def test_parse_broken_multiline_comment(self): |
266 | f = self.parsehelper(self.broken_multiline_comment) | 261 | with self.parsehelper(self.broken_multiline_comment) as f: |
267 | with self.assertRaises(bb.BBHandledException): | 262 | with self.assertRaises(bb.BBHandledException): |
268 | d = bb.parse.handle(f.name, self.d)[''] | 263 | d = bb.parse.handle(f.name, self.d)[''] |
269 | |||
270 | 264 | ||
271 | comment_in_var = """ | 265 | comment_in_var = """ |
272 | VAR = " \\ | 266 | VAR = " \\ |
@@ -276,10 +270,9 @@ VAR = " \\ | |||
276 | " | 270 | " |
277 | """ | 271 | """ |
278 | def test_parse_comment_in_var(self): | 272 | def test_parse_comment_in_var(self): |
279 | f = self.parsehelper(self.comment_in_var) | 273 | with self.parsehelper(self.comment_in_var) as f: |
280 | with self.assertRaises(bb.BBHandledException): | 274 | with self.assertRaises(bb.BBHandledException): |
281 | d = bb.parse.handle(f.name, self.d)[''] | 275 | d = bb.parse.handle(f.name, self.d)[''] |
282 | |||
283 | 276 | ||
284 | at_sign_in_var_flag = """ | 277 | at_sign_in_var_flag = """ |
285 | A[flag@.service] = "nonet" | 278 | A[flag@.service] = "nonet" |
@@ -289,8 +282,8 @@ C[f] = "flag" | |||
289 | unset A[flag@.service] | 282 | unset A[flag@.service] |
290 | """ | 283 | """ |
291 | def test_parse_at_sign_in_var_flag(self): | 284 | def test_parse_at_sign_in_var_flag(self): |
292 | f = self.parsehelper(self.at_sign_in_var_flag) | 285 | with self.parsehelper(self.at_sign_in_var_flag) as f: |
293 | d = bb.parse.handle(f.name, self.d)[''] | 286 | d = bb.parse.handle(f.name, self.d)[''] |
294 | self.assertEqual(d.getVar("A"), None) | 287 | self.assertEqual(d.getVar("A"), None) |
295 | self.assertEqual(d.getVar("B"), None) | 288 | self.assertEqual(d.getVar("B"), None) |
296 | self.assertEqual(d.getVarFlag("A","flag@.service"), None) | 289 | self.assertEqual(d.getVarFlag("A","flag@.service"), None) |
@@ -299,9 +292,9 @@ unset A[flag@.service] | |||
299 | 292 | ||
300 | def test_parse_invalid_at_sign_in_var_flag(self): | 293 | def test_parse_invalid_at_sign_in_var_flag(self): |
301 | invalid_at_sign = self.at_sign_in_var_flag.replace("B[f", "B[@f") | 294 | invalid_at_sign = self.at_sign_in_var_flag.replace("B[f", "B[@f") |
302 | f = self.parsehelper(invalid_at_sign) | 295 | with self.parsehelper(invalid_at_sign) as f: |
303 | with self.assertRaises(bb.parse.ParseError): | 296 | with self.assertRaises(bb.parse.ParseError): |
304 | d = bb.parse.handle(f.name, self.d)[''] | 297 | d = bb.parse.handle(f.name, self.d)[''] |
305 | 298 | ||
306 | export_function_recipe = """ | 299 | export_function_recipe = """ |
307 | inherit someclass | 300 | inherit someclass |
@@ -453,13 +446,13 @@ A+ = "b" | |||
453 | += "d" | 446 | += "d" |
454 | """ | 447 | """ |
455 | def test_parse_special_character_assignment(self): | 448 | def test_parse_special_character_assignment(self): |
456 | f = self.parsehelper(self.special_character_assignment) | 449 | with self.parsehelper(self.special_character_assignment) as f: |
457 | d = bb.parse.handle(f.name, self.d)[''] | 450 | d = bb.parse.handle(f.name, self.d)[''] |
458 | self.assertEqual(d.getVar("A"), " a") | 451 | self.assertEqual(d.getVar("A"), " a") |
459 | self.assertEqual(d.getVar("A+"), "b") | 452 | self.assertEqual(d.getVar("A+"), "b") |
460 | self.assertEqual(d.getVar("+"), "c") | 453 | self.assertEqual(d.getVar("+"), "c") |
461 | 454 | ||
462 | f = self.parsehelper(self.ambigous_assignment) | 455 | with self.parsehelper(self.ambigous_assignment) as f: |
463 | with self.assertRaises(bb.parse.ParseError) as error: | 456 | with self.assertRaises(bb.parse.ParseError) as error: |
464 | bb.parse.handle(f.name, self.d) | 457 | bb.parse.handle(f.name, self.d) |
465 | self.assertIn("Empty variable name in assignment", str(error.exception)) | 458 | self.assertIn("Empty variable name in assignment", str(error.exception)) |