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 | |
| 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>
| -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)) |
