From 4cad356851196ed7469a7e3d03f68aa0aa69b8a1 Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Wed, 13 Nov 2024 13:58:45 -0500 Subject: [PATCH] twister: stats: fix platform stats Fix wrong reporting about where testcases were executed. We have: INFO - 1130 of 1130 executed test cases passed (100.00%) on 0 out of total 860 platforms (0.00%). which is obviously wrong. Signed-off-by: Anas Nashif --- scripts/pylib/twister/twisterlib/reports.py | 4 +++- scripts/pylib/twister/twisterlib/testplan.py | 4 ---- scripts/tests/twister_blackbox/test_platform.py | 4 ++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/scripts/pylib/twister/twisterlib/reports.py b/scripts/pylib/twister/twisterlib/reports.py index c0f06fc514288a4..83747ad5224e10e 100644 --- a/scripts/pylib/twister/twisterlib/reports.py +++ b/scripts/pylib/twister/twisterlib/reports.py @@ -46,13 +46,13 @@ def __init__(self, plan, env) -> None: self.instances = plan.instances self.platforms = plan.platforms self.selected_platforms = plan.selected_platforms - self.filtered_platforms = plan.filtered_platforms self.env = env self.timestamp = datetime.now().isoformat() self.outdir = os.path.abspath(env.options.outdir) self.instance_fail_count = plan.instance_fail_count self.footprint = None + @staticmethod def process_log(log_file): filtered_string = "" @@ -601,6 +601,8 @@ def summary(self, results, ignore_unrecognized_sections, duration): ) total_platforms = len(self.platforms) + self.filtered_platforms = set(instance.platform.name for instance in self.instances.values() + if instance.status not in[TwisterStatus.FILTER, TwisterStatus.NOTRUN, TwisterStatus.SKIP]) # if we are only building, do not report about tests being executed. if self.platforms and not self.env.options.build_only: executed_cases = results.cases - results.filtered_cases - results.skipped_cases - results.notrun_cases diff --git a/scripts/pylib/twister/twisterlib/testplan.py b/scripts/pylib/twister/twisterlib/testplan.py index da8eaa0a749086b..930b9f6fa3ca667 100755 --- a/scripts/pylib/twister/twisterlib/testplan.py +++ b/scripts/pylib/twister/twisterlib/testplan.py @@ -106,7 +106,6 @@ def __init__(self, env=None): self.platforms = [] self.platform_names = [] self.selected_platforms = [] - self.filtered_platforms = [] self.default_platforms = [] self.load_errors = 0 self.instances = dict() @@ -1079,9 +1078,6 @@ def apply_filters(self, **kwargs): filtered_instance.add_missing_case_status(filtered_instance.status) - self.filtered_platforms = set(p.platform.name for p in self.instances.values() - if p.status != TwisterStatus.SKIP ) - def add_instances(self, instance_list): for instance in instance_list: self.instances[instance.name] = instance diff --git a/scripts/tests/twister_blackbox/test_platform.py b/scripts/tests/twister_blackbox/test_platform.py index 43ff3346cf8af84..83fe07b274b9c24 100644 --- a/scripts/tests/twister_blackbox/test_platform.py +++ b/scripts/tests/twister_blackbox/test_platform.py @@ -38,7 +38,7 @@ class TestPlatform: 'errored_configurations': 0, 'executed_test_cases': 8, 'skipped_test_cases': 2, - 'platform_count': 3, + 'platform_count': 2, 'executed_on_platform': 4, 'only_built': 2 } @@ -59,7 +59,7 @@ class TestPlatform: 'errored_configurations': 0, 'executed_test_cases': 0, 'skipped_test_cases': 0, - 'platform_count': 3, + 'platform_count': 0, 'executed_on_platform': 0, 'only_built': 0 }