From: Yeoh Ee Peng <[email protected]> As part of the solution to replace Testopia to store testresult, OEQA selftest need to output testresult into json files, where these json testresult files will be stored into git repository by the future test-case-management tools.
By default, json testresult file will be written to "oeqa" directory under the oe-selftest log directory. To configure multiple instances of bitbake to write json testresult to a single testresult file at custom directory, user will define the variable "OEQA_JSON_RESULT_DIR" with the custom directory for json testresult. (From OE-Core rev: a95218525a4c8228fff9908ffbda85c6b85e101c) Signed-off-by: Yeoh Ee Peng <[email protected]> Signed-off-by: Richard Purdie <[email protected]> --- meta/lib/oeqa/selftest/context.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py index 33316d3..964a46c 100644 --- a/meta/lib/oeqa/selftest/context.py +++ b/meta/lib/oeqa/selftest/context.py @@ -202,6 +202,31 @@ class OESelftestTestContextExecutor(OETestContextExecutor): self.tc.logger.info("Running bitbake -p") runCmd("bitbake -p") + def _get_json_result_dir(self, args): + json_result_dir = os.path.join(os.path.dirname(os.path.abspath(args.output_log)), 'oeqa') + if "OEQA_JSON_RESULT_DIR" in self.tc.td: + json_result_dir = self.tc.td["OEQA_JSON_RESULT_DIR"] + + return json_result_dir + + def _get_configuration(self, args): + import platform + from oeqa.utils.metadata import metadata_from_bb + metadata = metadata_from_bb() + configuration = {'TEST_TYPE': 'oeselftest', + 'START_TIME': args.test_start_time, + 'MACHINE': self.tc.td["MACHINE"], + 'HOST_DISTRO': ('-'.join(platform.linux_distribution())).replace(' ', '-'), + 'HOST_NAME': metadata['hostname']} + layers = metadata['layers'] + for l in layers: + configuration['%s_BRANCH_REV' % os.path.basename(l)] = '%s:%s' % (metadata['layers'][l]['branch'], + metadata['layers'][l]['commit']) + return configuration + + def _get_result_id(self, configuration): + return '%s_%s_%s' % (configuration['TEST_TYPE'], configuration['HOST_DISTRO'], configuration['MACHINE']) + def _internal_run(self, logger, args): self.module_paths = self._get_cases_paths( self.tc_kwargs['init']['td']['BBPATH'].split(':')) @@ -218,7 +243,10 @@ class OESelftestTestContextExecutor(OETestContextExecutor): else: self._pre_run() rc = self.tc.runTests(**self.tc_kwargs['run']) - rc.logDetails() + configuration = self._get_configuration(args) + rc.logDetails(self._get_json_result_dir(args), + configuration, + self._get_result_id(configuration)) rc.logSummary(self.name) return rc -- 2.7.4 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
