From 565bcb1e09dd191d89e138da6e28cb67fe835371 Mon Sep 17 00:00:00 2001 From: Zapta <zapta@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:28:46 -0700 Subject: [PATCH] Fixed broken build test. Issue was that non initialized (None) exe_mode was considered to be 'native' instead of default. Also changed the exe_mode variable from string to a bool. All tests pass now on my system. --- apio/managers/project.py | 9 +++++---- apio/managers/scons.py | 11 +++++++---- test/env_commands/test_config.py | 3 --- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/apio/managers/project.py b/apio/managers/project.py index c714feb2..bfe3b3e6 100644 --- a/apio/managers/project.py +++ b/apio/managers/project.py @@ -33,9 +33,9 @@ class Project: def __init__(self): # TODO(zapta): Make these __private and provide getter methods. - self.board = None - self.top_module = None - self.exe_mode = None + self.board: str = None + self.top_module: str = None + self.native_exe_mode: bool = None def create_sconstruct(self, project_dir: Path, arch=None, sayyes=False): """Creates a default SConstruct file""" @@ -220,7 +220,8 @@ def read(self): self.top_module = self._parse_top_module( config_parser, parsed_attributes ) - self.exe_mode = self._parse_exe_mode(config_parser, parsed_attributes) + exe_mode = self._parse_exe_mode(config_parser, parsed_attributes) + self.native_exe_mode = {"default": False, "native": True}[exe_mode] # Verify that the project file (api.ini) doesn't contain additional # (illegal) keys that where not parsed diff --git a/apio/managers/scons.py b/apio/managers/scons.py index cd86ddd2..5757b3ff 100644 --- a/apio/managers/scons.py +++ b/apio/managers/scons.py @@ -888,8 +888,12 @@ def run(self, command, variables, packages, board=None, arch=None): # -- We are using our custom SConstruct file click.secho("Info: use custom SConstruct file") - # -- Check the configuration mode - if self.proj.exe_mode == "default": + # -- Verify necessary packages if needed. + # TODO(zapta): Can we drop the 'native' mode for simplicity? + if self.proj.native_exe_mode: + # Assuming blindly that the binaries we need are on the path. + click.secho("Warning: native exe mode (binaries should be on path)") + else: # Run on `default` config mode # -- Check if the necessary packages are installed if not util.resolve_packages( @@ -899,8 +903,7 @@ def run(self, command, variables, packages, board=None, arch=None): ): # Exit if a package is not installed raise AttributeError("Package not installed") - else: - click.secho("Info: native exe mode") + # -- Execute scons return self._execute_scons(command, variables, board) diff --git a/test/env_commands/test_config.py b/test/env_commands/test_config.py index d37d45dc..dc850fc6 100644 --- a/test/env_commands/test_config.py +++ b/test/env_commands/test_config.py @@ -22,6 +22,3 @@ def test_config(clirunner, validate_cliresult, configenv): result = clirunner.invoke(cmd_config, ['--list']) validate_cliresult(result) - # -- Execute "apio config --exe native" - result = clirunner.invoke(cmd_config, ['--exe', 'native']) - validate_cliresult(result)