sanitycheck: cleanup loading of previous results
Merge two functions loading previous results into one and support filtering based on status. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
a45c1da6d7
commit
2f7c187d77
1 changed files with 30 additions and 61 deletions
|
@ -2639,67 +2639,36 @@ class TestSuite:
|
||||||
break
|
break
|
||||||
return selected_platform
|
return selected_platform
|
||||||
|
|
||||||
def get_last_failed(self):
|
def load_from_file(self, file, filter_status=[]):
|
||||||
last_run = os.path.join(self.outdir, "sanitycheck.csv")
|
|
||||||
try:
|
try:
|
||||||
if not os.path.exists(last_run):
|
total_tests = 0
|
||||||
raise SanityRuntimeError("Couldn't find last sanitycheck run.: %s" % last_run)
|
with open(file, "r") as fp:
|
||||||
except Exception as e:
|
cr = csv.DictReader(fp)
|
||||||
print(str(e))
|
instance_list = []
|
||||||
|
for row in cr:
|
||||||
|
if row["status"] in filter_status:
|
||||||
|
continue
|
||||||
|
test = row["test"]
|
||||||
|
|
||||||
|
platform = self.get_platform(row["platform"])
|
||||||
|
instance = TestInstance(self.testcases[test], platform, self.outdir)
|
||||||
|
instance.check_build_or_run(
|
||||||
|
self.build_only,
|
||||||
|
self.enable_slow,
|
||||||
|
self.device_testing,
|
||||||
|
self.fixture
|
||||||
|
)
|
||||||
|
instance.create_overlay(platform, self.enable_asan, self.enable_coverage, self.coverage_platform)
|
||||||
|
instance_list.append(instance)
|
||||||
|
self.add_instances(instance_list)
|
||||||
|
|
||||||
|
tests_to_run = len(self.instances)
|
||||||
|
logger.info("%d tests passed already, retrying %d tests" % (total_tests - tests_to_run, tests_to_run))
|
||||||
|
|
||||||
|
except Exception:
|
||||||
|
logger.error("Couldn't find input file with list of tests.")
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
|
||||||
total_tests = 0
|
|
||||||
with open(last_run, "r") as fp:
|
|
||||||
cr = csv.DictReader(fp)
|
|
||||||
instance_list = []
|
|
||||||
for row in cr:
|
|
||||||
total_tests += 1
|
|
||||||
if row["status"] in ["passed", "skipped"]:
|
|
||||||
continue
|
|
||||||
test = row["test"]
|
|
||||||
platform = self.get_platform(row["platform"])
|
|
||||||
instance = TestInstance(self.testcases[test], platform, self.outdir)
|
|
||||||
instance.check_build_or_run(
|
|
||||||
self.build_only,
|
|
||||||
self.enable_slow,
|
|
||||||
self.device_testing,
|
|
||||||
self.fixture
|
|
||||||
)
|
|
||||||
instance.create_overlay(platform, self.enable_asan, self.enable_coverage, self.coverage_platform)
|
|
||||||
instance_list.append(instance)
|
|
||||||
self.add_instances(instance_list)
|
|
||||||
|
|
||||||
tests_to_run = len(self.instances)
|
|
||||||
logger.info("%d tests passed already, retrying %d tests" % (total_tests - tests_to_run, tests_to_run))
|
|
||||||
|
|
||||||
def load_from_file(self, file):
|
|
||||||
try:
|
|
||||||
if not os.path.exists(file):
|
|
||||||
raise SanityRuntimeError(
|
|
||||||
"Couldn't find input file with list of tests.")
|
|
||||||
except Exception as e:
|
|
||||||
print(str(e))
|
|
||||||
sys.exit(2)
|
|
||||||
|
|
||||||
with open(file, "r") as fp:
|
|
||||||
cr = csv.DictReader(fp)
|
|
||||||
instance_list = []
|
|
||||||
for row in cr:
|
|
||||||
if row["arch"] == "arch":
|
|
||||||
continue
|
|
||||||
test = row["test"]
|
|
||||||
platform = self.get_platform(row["platform"])
|
|
||||||
instance = TestInstance(self.testcases[test], platform, self.outdir)
|
|
||||||
instance.check_build_or_run(
|
|
||||||
self.build_only,
|
|
||||||
self.enable_slow,
|
|
||||||
self.device_testing,
|
|
||||||
self.fixture
|
|
||||||
)
|
|
||||||
instance.create_overlay(platform, self.enable_asan, self.enable_coverage, self.coverage_platform)
|
|
||||||
instance_list.append(instance)
|
|
||||||
self.add_instances(instance_list)
|
|
||||||
|
|
||||||
def apply_filters(self, **kwargs):
|
def apply_filters(self, **kwargs):
|
||||||
|
|
||||||
toolchain = self.get_toolchain()
|
toolchain = self.get_toolchain()
|
||||||
|
@ -4224,14 +4193,14 @@ def main():
|
||||||
|
|
||||||
discards = []
|
discards = []
|
||||||
|
|
||||||
|
last_run = os.path.join(options.outdir, "sanitycheck.csv")
|
||||||
if options.only_failed:
|
if options.only_failed:
|
||||||
suite.get_last_failed()
|
suite.load_from_file(last_run, filter_status=['skipped', 'passed'])
|
||||||
suite.selected_platforms = set(p.platform.name for p in suite.instances.values())
|
suite.selected_platforms = set(p.platform.name for p in suite.instances.values())
|
||||||
elif options.load_tests:
|
elif options.load_tests:
|
||||||
suite.load_from_file(options.load_tests)
|
suite.load_from_file(options.load_tests)
|
||||||
elif options.test_only:
|
elif options.test_only:
|
||||||
last_run = os.path.join(options.outdir, "sanitycheck.csv")
|
suite.load_from_file(last_run, filter_status=['skipped'])
|
||||||
suite.load_from_file(last_run)
|
|
||||||
else:
|
else:
|
||||||
discards = suite.apply_filters(
|
discards = suite.apply_filters(
|
||||||
build_only=options.build_only,
|
build_only=options.build_only,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue