mirror of
https://git.yoctoproject.org/poky
synced 2026-09-19 09:49:33 +02:00
oeqa/selftest: Use extraresults on self instead of self.tc
In order to take advantage of multiprocess execution of tests the extraresults must be passed through the TestResult. With changes to how oeqa/core handles test cases the extraresults attribute of the testcase is passed to the TestResult, with passing across process boundaries handled automatically. (From OE-Core rev: 6a1b0c2003a0b4a1983f9494440e6ea02dc25585) Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
074388daf5
commit
db1cc0b533
@@ -16,15 +16,6 @@ def parse_values(content):
|
|||||||
|
|
||||||
@OETestTag("machine")
|
@OETestTag("machine")
|
||||||
class BinutilsCrossSelfTest(OESelftestTestCase):
|
class BinutilsCrossSelfTest(OESelftestTestCase):
|
||||||
@classmethod
|
|
||||||
def setUpClass(cls):
|
|
||||||
super().setUpClass()
|
|
||||||
if not hasattr(cls.tc, "extraresults"):
|
|
||||||
cls.tc.extraresults = {}
|
|
||||||
|
|
||||||
if "ptestresult.sections" not in cls.tc.extraresults:
|
|
||||||
cls.tc.extraresults["ptestresult.sections"] = {}
|
|
||||||
|
|
||||||
def test_binutils(self):
|
def test_binutils(self):
|
||||||
self.run_binutils("binutils")
|
self.run_binutils("binutils")
|
||||||
|
|
||||||
@@ -46,7 +37,7 @@ class BinutilsCrossSelfTest(OESelftestTestCase):
|
|||||||
bitbake("{0} -c check".format(recipe))
|
bitbake("{0} -c check".format(recipe))
|
||||||
|
|
||||||
ptestsuite = "binutils-{}".format(suite) if suite != "binutils" else suite
|
ptestsuite = "binutils-{}".format(suite) if suite != "binutils" else suite
|
||||||
self.tc.extraresults["ptestresult.sections"][ptestsuite] = {}
|
self.extraresults = {"ptestresult.sections" : {ptestsuite : {}}}
|
||||||
|
|
||||||
sumspath = os.path.join(builddir, suite, "{0}.sum".format(suite))
|
sumspath = os.path.join(builddir, suite, "{0}.sum".format(suite))
|
||||||
if not os.path.exists(sumspath):
|
if not os.path.exists(sumspath):
|
||||||
@@ -54,5 +45,5 @@ class BinutilsCrossSelfTest(OESelftestTestCase):
|
|||||||
|
|
||||||
with open(sumspath, "r") as f:
|
with open(sumspath, "r") as f:
|
||||||
for test, result in parse_values(f):
|
for test, result in parse_values(f):
|
||||||
self.tc.extraresults["ptestresult.{}.{}".format(ptestsuite, test)] = {"status" : result}
|
self.extraresults["ptestresult.{}.{}".format(ptestsuite, test)] = {"status" : result}
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,6 @@ def parse_values(content):
|
|||||||
|
|
||||||
@OETestTag("machine")
|
@OETestTag("machine")
|
||||||
class GccSelfTest(OESelftestTestCase):
|
class GccSelfTest(OESelftestTestCase):
|
||||||
@classmethod
|
|
||||||
def setUpClass(cls):
|
|
||||||
super().setUpClass()
|
|
||||||
if not hasattr(cls.tc, "extraresults"):
|
|
||||||
cls.tc.extraresults = {}
|
|
||||||
|
|
||||||
if "ptestresult.sections" not in cls.tc.extraresults:
|
|
||||||
cls.tc.extraresults["ptestresult.sections"] = {}
|
|
||||||
|
|
||||||
def gcc_runtime_check_skip(self, suite):
|
def gcc_runtime_check_skip(self, suite):
|
||||||
targets = get_bb_var("RUNTIMETARGET", "gcc-runtime").split()
|
targets = get_bb_var("RUNTIMETARGET", "gcc-runtime").split()
|
||||||
if suite not in targets:
|
if suite not in targets:
|
||||||
@@ -71,6 +62,7 @@ class GccSelfTest(OESelftestTestCase):
|
|||||||
bb_vars = get_bb_vars(["B", "TARGET_SYS"], recipe)
|
bb_vars = get_bb_vars(["B", "TARGET_SYS"], recipe)
|
||||||
builddir, target_sys = bb_vars["B"], bb_vars["TARGET_SYS"]
|
builddir, target_sys = bb_vars["B"], bb_vars["TARGET_SYS"]
|
||||||
|
|
||||||
|
self.extraresults = {"ptestresult.sections" : {}}
|
||||||
for suite in suites:
|
for suite in suites:
|
||||||
sumspath = os.path.join(builddir, "gcc", "testsuite", suite, "{0}.sum".format(suite))
|
sumspath = os.path.join(builddir, "gcc", "testsuite", suite, "{0}.sum".format(suite))
|
||||||
if not os.path.exists(sumspath): # check in target dirs
|
if not os.path.exists(sumspath): # check in target dirs
|
||||||
@@ -80,10 +72,10 @@ class GccSelfTest(OESelftestTestCase):
|
|||||||
|
|
||||||
ptestsuite = "gcc-{}".format(suite) if suite != "gcc" else suite
|
ptestsuite = "gcc-{}".format(suite) if suite != "gcc" else suite
|
||||||
ptestsuite = ptestsuite + "-user" if ssh is None else ptestsuite
|
ptestsuite = ptestsuite + "-user" if ssh is None else ptestsuite
|
||||||
self.tc.extraresults["ptestresult.sections"][ptestsuite] = {}
|
self.extraresults["ptestresult.sections"][ptestsuite] = {}
|
||||||
with open(sumspath, "r") as f:
|
with open(sumspath, "r") as f:
|
||||||
for test, result in parse_values(f):
|
for test, result in parse_values(f):
|
||||||
self.tc.extraresults["ptestresult.{}.{}".format(ptestsuite, test)] = {"status" : result}
|
self.extraresults["ptestresult.{}.{}".format(ptestsuite, test)] = {"status" : result}
|
||||||
|
|
||||||
class GccSelfTestSystemEmulated(GccSelfTest):
|
class GccSelfTestSystemEmulated(GccSelfTest):
|
||||||
default_installed_packages = ["libgcc", "libstdc++", "libatomic", "libgomp"]
|
default_installed_packages = ["libgcc", "libstdc++", "libatomic", "libgomp"]
|
||||||
|
|||||||
@@ -15,15 +15,6 @@ def parse_values(content):
|
|||||||
|
|
||||||
@OETestTag("machine")
|
@OETestTag("machine")
|
||||||
class GlibcSelfTest(OESelftestTestCase):
|
class GlibcSelfTest(OESelftestTestCase):
|
||||||
@classmethod
|
|
||||||
def setUpClass(cls):
|
|
||||||
super().setUpClass()
|
|
||||||
if not hasattr(cls.tc, "extraresults"):
|
|
||||||
cls.tc.extraresults = {}
|
|
||||||
|
|
||||||
if "ptestresult.sections" not in cls.tc.extraresults:
|
|
||||||
cls.tc.extraresults["ptestresult.sections"] = {}
|
|
||||||
|
|
||||||
def test_glibc(self):
|
def test_glibc(self):
|
||||||
self.glibc_run_check()
|
self.glibc_run_check()
|
||||||
|
|
||||||
@@ -44,10 +35,10 @@ class GlibcSelfTest(OESelftestTestCase):
|
|||||||
builddir = get_bb_var("B", "glibc-testsuite")
|
builddir = get_bb_var("B", "glibc-testsuite")
|
||||||
|
|
||||||
ptestsuite = "glibc-user" if ssh is None else "glibc"
|
ptestsuite = "glibc-user" if ssh is None else "glibc"
|
||||||
self.tc.extraresults["ptestresult.sections"][ptestsuite] = {}
|
self.extraresults = {"ptestresult.sections" : {ptestsuite : {}}}
|
||||||
with open(os.path.join(builddir, "tests.sum"), "r") as f:
|
with open(os.path.join(builddir, "tests.sum"), "r") as f:
|
||||||
for test, result in parse_values(f):
|
for test, result in parse_values(f):
|
||||||
self.tc.extraresults["ptestresult.{}.{}".format(ptestsuite, test)] = {"status" : result}
|
self.extraresults["ptestresult.{}.{}".format(ptestsuite, test)] = {"status" : result}
|
||||||
|
|
||||||
class GlibcSelfTestSystemEmulated(GlibcSelfTest):
|
class GlibcSelfTestSystemEmulated(GlibcSelfTest):
|
||||||
default_installed_packages = [
|
default_installed_packages = [
|
||||||
|
|||||||
@@ -82,15 +82,12 @@ class ReproducibleTests(OESelftestTestCase):
|
|||||||
for v in needed_vars:
|
for v in needed_vars:
|
||||||
setattr(self, v.lower(), bb_vars[v])
|
setattr(self, v.lower(), bb_vars[v])
|
||||||
|
|
||||||
if not hasattr(self.tc, "extraresults"):
|
self.extrasresults = {}
|
||||||
self.tc.extraresults = {}
|
self.extrasresults.setdefault('reproducible.rawlogs', {})['log'] = ''
|
||||||
self.extras = self.tc.extraresults
|
self.extrasresults.setdefault('reproducible', {}).setdefault('files', {})
|
||||||
|
|
||||||
self.extras.setdefault('reproducible.rawlogs', {})['log'] = ''
|
|
||||||
self.extras.setdefault('reproducible', {}).setdefault('files', {})
|
|
||||||
|
|
||||||
def append_to_log(self, msg):
|
def append_to_log(self, msg):
|
||||||
self.extras['reproducible.rawlogs']['log'] += msg
|
self.extrasresults['reproducible.rawlogs']['log'] += msg
|
||||||
|
|
||||||
def compare_packages(self, reference_dir, test_dir, diffutils_sysroot):
|
def compare_packages(self, reference_dir, test_dir, diffutils_sysroot):
|
||||||
result = PackageCompareResults()
|
result = PackageCompareResults()
|
||||||
@@ -117,7 +114,7 @@ class ReproducibleTests(OESelftestTestCase):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def write_package_list(self, package_class, name, packages):
|
def write_package_list(self, package_class, name, packages):
|
||||||
self.extras['reproducible']['files'].setdefault(package_class, {})[name] = [
|
self.extrasresults['reproducible']['files'].setdefault(package_class, {})[name] = [
|
||||||
{'reference': p.reference, 'test': p.test} for p in packages]
|
{'reference': p.reference, 'test': p.test} for p in packages]
|
||||||
|
|
||||||
def test_reproducible_builds(self):
|
def test_reproducible_builds(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user