diff options
Diffstat (limited to 'meta/lib/oeqa/selftest/context.py')
-rw-r--r-- | meta/lib/oeqa/selftest/context.py | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py index 16486e7eb9..5a09aeedff 100644 --- a/meta/lib/oeqa/selftest/context.py +++ b/meta/lib/oeqa/selftest/context.py | |||
@@ -35,12 +35,13 @@ def get_oeselftest_metadata(args): | |||
35 | return result | 35 | return result |
36 | 36 | ||
37 | class NonConcurrentTestSuite(unittest.TestSuite): | 37 | class NonConcurrentTestSuite(unittest.TestSuite): |
38 | def __init__(self, suite, processes, setupfunc, removefunc): | 38 | def __init__(self, suite, processes, setupfunc, removefunc, bb_vars): |
39 | super().__init__([suite]) | 39 | super().__init__([suite]) |
40 | self.processes = processes | 40 | self.processes = processes |
41 | self.suite = suite | 41 | self.suite = suite |
42 | self.setupfunc = setupfunc | 42 | self.setupfunc = setupfunc |
43 | self.removefunc = removefunc | 43 | self.removefunc = removefunc |
44 | self.bb_vars = bb_vars | ||
44 | 45 | ||
45 | def run(self, result): | 46 | def run(self, result): |
46 | (builddir, newbuilddir) = self.setupfunc("-st", None, self.suite) | 47 | (builddir, newbuilddir) = self.setupfunc("-st", None, self.suite) |
@@ -79,16 +80,15 @@ class OESelftestTestContext(OETestContext): | |||
79 | else: | 80 | else: |
80 | self.removebuilddir = removebuilddir | 81 | self.removebuilddir = removebuilddir |
81 | 82 | ||
83 | def set_variables(self, vars): | ||
84 | self.bb_vars = vars | ||
85 | |||
82 | def setup_builddir(self, suffix, selftestdir, suite): | 86 | def setup_builddir(self, suffix, selftestdir, suite): |
83 | # Get SSTATE_DIR from the parent build dir | 87 | sstatedir = self.bb_vars['SSTATE_DIR'] |
84 | with bb.tinfoil.Tinfoil(tracking=True) as tinfoil: | ||
85 | tinfoil.prepare(quiet=2, config_only=True) | ||
86 | d = tinfoil.config_data | ||
87 | sstatedir = str(d.getVar('SSTATE_DIR')) | ||
88 | 88 | ||
89 | builddir = os.environ['BUILDDIR'] | 89 | builddir = os.environ['BUILDDIR'] |
90 | if not selftestdir: | 90 | if not selftestdir: |
91 | selftestdir = get_test_layer() | 91 | selftestdir = get_test_layer(self.bb_vars['BBLAYERS']) |
92 | if self.newbuilddir: | 92 | if self.newbuilddir: |
93 | newbuilddir = os.path.join(self.newbuilddir, 'build' + suffix) | 93 | newbuilddir = os.path.join(self.newbuilddir, 'build' + suffix) |
94 | else: | 94 | else: |
@@ -155,9 +155,9 @@ class OESelftestTestContext(OETestContext): | |||
155 | if processes: | 155 | if processes: |
156 | from oeqa.core.utils.concurrencytest import ConcurrentTestSuite | 156 | from oeqa.core.utils.concurrencytest import ConcurrentTestSuite |
157 | 157 | ||
158 | return ConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir) | 158 | return ConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir, self.bb_vars) |
159 | else: | 159 | else: |
160 | return NonConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir) | 160 | return NonConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir, self.bb_vars) |
161 | 161 | ||
162 | def runTests(self, processes=None, machine=None, skips=[]): | 162 | def runTests(self, processes=None, machine=None, skips=[]): |
163 | if machine: | 163 | if machine: |
@@ -270,7 +270,7 @@ class OESelftestTestContextExecutor(OETestContextExecutor): | |||
270 | 270 | ||
271 | builddir = os.environ.get("BUILDDIR") | 271 | builddir = os.environ.get("BUILDDIR") |
272 | self.tc_kwargs['init']['config_paths'] = {} | 272 | self.tc_kwargs['init']['config_paths'] = {} |
273 | self.tc_kwargs['init']['config_paths']['testlayer_path'] = get_test_layer() | 273 | self.tc_kwargs['init']['config_paths']['testlayer_path'] = get_test_layer(bbvars["BBLAYERS"]) |
274 | self.tc_kwargs['init']['config_paths']['builddir'] = builddir | 274 | self.tc_kwargs['init']['config_paths']['builddir'] = builddir |
275 | self.tc_kwargs['init']['config_paths']['localconf'] = os.path.join(builddir, "conf/local.conf") | 275 | self.tc_kwargs['init']['config_paths']['localconf'] = os.path.join(builddir, "conf/local.conf") |
276 | self.tc_kwargs['init']['config_paths']['bblayers'] = os.path.join(builddir, "conf/bblayers.conf") | 276 | self.tc_kwargs['init']['config_paths']['bblayers'] = os.path.join(builddir, "conf/bblayers.conf") |
@@ -310,10 +310,10 @@ class OESelftestTestContextExecutor(OETestContextExecutor): | |||
310 | meta_selftestdir = os.path.join( | 310 | meta_selftestdir = os.path.join( |
311 | self.tc.td["BBLAYERS_FETCH_DIR"], 'meta-selftest') | 311 | self.tc.td["BBLAYERS_FETCH_DIR"], 'meta-selftest') |
312 | if os.path.isdir(meta_selftestdir): | 312 | if os.path.isdir(meta_selftestdir): |
313 | runCmd("bitbake-layers add-layer %s" %meta_selftestdir) | 313 | runCmd("bitbake-layers add-layer %s" % meta_selftestdir) |
314 | # reload data is needed because a meta-selftest layer was add | 314 | # reload data is needed because a meta-selftest layer was add |
315 | self.tc.td = get_bb_vars() | 315 | self.tc.td = get_bb_vars() |
316 | self.tc.config_paths['testlayer_path'] = get_test_layer() | 316 | self.tc.config_paths['testlayer_path'] = get_test_layer(self.tc.td["BBLAYERS"]) |
317 | else: | 317 | else: |
318 | self.tc.logger.error("could not locate meta-selftest in:\n%s" % meta_selftestdir) | 318 | self.tc.logger.error("could not locate meta-selftest in:\n%s" % meta_selftestdir) |
319 | raise OEQAPreRun | 319 | raise OEQAPreRun |
@@ -351,8 +351,15 @@ class OESelftestTestContextExecutor(OETestContextExecutor): | |||
351 | 351 | ||
352 | _add_layer_libs() | 352 | _add_layer_libs() |
353 | 353 | ||
354 | self.tc.logger.info("Running bitbake -e to test the configuration is valid/parsable") | 354 | self.tc.logger.info("Checking base configuration is valid/parsable") |
355 | runCmd("bitbake -e") | 355 | |
356 | with bb.tinfoil.Tinfoil(tracking=True) as tinfoil: | ||
357 | tinfoil.prepare(quiet=2, config_only=True) | ||
358 | d = tinfoil.config_data | ||
359 | vars = {} | ||
360 | vars['SSTATE_DIR'] = str(d.getVar('SSTATE_DIR')) | ||
361 | vars['BBLAYERS'] = str(d.getVar('BBLAYERS')) | ||
362 | self.tc.set_variables(vars) | ||
356 | 363 | ||
357 | def get_json_result_dir(self, args): | 364 | def get_json_result_dir(self, args): |
358 | json_result_dir = os.path.join(self.tc.td["LOG_DIR"], 'oeqa') | 365 | json_result_dir = os.path.join(self.tc.td["LOG_DIR"], 'oeqa') |