From ae23da81f2f5304c7ecc378465b1e264f3ad6f7f Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Tue, 11 Apr 2023 14:41:01 -0500 Subject: [PATCH] twister: make get_elf_file sysbuild aware If we are doing a sysbuild get_elf_file needs to return the default domain's build_dir. The standard build_dir will not any ELF builds in it so will error out. Signed-off-by: Kumar Gala --- scripts/pylib/twister/twisterlib/runner.py | 1 + scripts/pylib/twister/twisterlib/testinstance.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/pylib/twister/twisterlib/runner.py b/scripts/pylib/twister/twisterlib/runner.py index 7ace5725da4e70..3f9f881b1fe9b5 100644 --- a/scripts/pylib/twister/twisterlib/runner.py +++ b/scripts/pylib/twister/twisterlib/runner.py @@ -422,6 +422,7 @@ def parse_generated(self, filter_stages=[]): domain_path = os.path.join(self.build_dir, "domains.yaml") domains = Domains.from_file(domain_path) logger.debug("Loaded sysbuild domain data from %s" % (domain_path)) + self.instance.domains = domains domain_build = domains.get_default_domain().build_dir cmake_cache_path = os.path.join(domain_build, "CMakeCache.txt") defconfig_path = os.path.join(domain_build, "zephyr", ".config") diff --git a/scripts/pylib/twister/twisterlib/testinstance.py b/scripts/pylib/twister/twisterlib/testinstance.py index 09c25b6c121d1f..3e0c39d0a885f7 100644 --- a/scripts/pylib/twister/twisterlib/testinstance.py +++ b/scripts/pylib/twister/twisterlib/testinstance.py @@ -45,6 +45,8 @@ def __init__(self, testsuite, platform, outdir): self.run_id = self._get_run_id() self.build_dir = os.path.join(outdir, platform.name, testsuite.name) + self.domains = None + self.run = False self.testcases = [] self.init_cases() @@ -268,8 +270,14 @@ def calculate_sizes(self, from_buildlog: bool = False, generate_warning: bool = generate_warning=generate_warning) def get_elf_file(self) -> str: - fns = glob.glob(os.path.join(self.build_dir, "zephyr", "*.elf")) - fns.extend(glob.glob(os.path.join(self.build_dir, "zephyr", "*.exe"))) + + if self.testsuite.sysbuild: + build_dir = self.domains.get_default_domain().build_dir + else: + build_dir = self.build_dir + + fns = glob.glob(os.path.join(build_dir, "zephyr", "*.elf")) + fns.extend(glob.glob(os.path.join(build_dir, "zephyr", "*.exe"))) blocklist = [ 'remapped', # used for xtensa plaforms 'zefi', # EFI for Zephyr