diff options
author | YH Lin <yueherngl@google.com> | 2022-11-30 21:44:08 +0000 |
---|---|---|
committer | YH Lin <yueherngl@google.com> | 2022-11-30 21:44:08 +0000 |
commit | af25602b15b22b9ef5821dcba9934311f2157c48 (patch) | |
tree | d0c89ae8814c2ba35c238c6c0644ec6b1602c63a /zephyr/firmware_builder.py | |
parent | 54462f034b635260dd09173b3d082e47fc960ef3 (diff) | |
parent | aa40b859b3a73e5a205bc561c1a29eff38485461 (diff) | |
download | chrome-ec-af25602b15b22b9ef5821dcba9934311f2157c48.tar.gz |
Merge remote-tracking branch cros/main into factory-brya-14517.B-main
Generated by: util/update_release_branch.py --baseboard brya --relevant_paths_file
baseboard/brya/relevant-paths.txt factory-brya-14517.B-main
Relevant changes:
git log --oneline 54462f034b..aa40b859b3 -- baseboard/brya board/agah
board/anahera board/banshee board/brya board/crota board/felwinter
board/gimble board/kano board/mithrax board/osiris board/primus
board/redrix board/taeko board/taniks board/vell board/volmar
driver/bc12/pi3usb9201_public.* driver/charger/bq25710.*
driver/ppc/nx20p348x.* driver/ppc/syv682x_public.*
driver/retimer/bb_retimer_public.* driver/tcpm/nct38xx.*
driver/tcpm/ps8xxx_public.* driver/tcpm/tcpci.* include/power/alderlake*
include/intel_x86.h power/alderlake* power/intel_x86.c
util/getversion.sh
e6da633c38 driver: Sort header files
234a87ae2d tcpci: Add FRS enable to driver structure
a56be59ccd tcpm_header: add test for tcpm_dump_registers
57b3256963 Rename CONFIG_CHARGER_INPUT_CURRENT to _CHARGER_DEFAULT_CURRENT_LIMIT
e420c8ff9a marasov: Modify TypeC and TypeA configuration.
43b53e0045 Add default implementation of board_set_charge_limit
b75dc90677 Add CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT
f1b563c350 baseboard: Sort header files
7d01b1e58d driver/retimer/ps8818.h: Add I2C ADDR FLAGS 0x30, 0x58, 0x70
ec31407993 Add CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT
8f89f69a5b crota: disable lid angle sensor for clamshell
BRANCH=None
BUG=b:259002141 b:255184961 b:247100970 b:259354679 b:260630630
BUG=b:163093572 b:254328661
TEST=`emerge-brya chromeos-ec`
Force-Relevant-Builds: all
Change-Id: Ia85a701fbf6b8e67ec214b9e25e0e55e980a6f47
Signed-off-by: YH Lin <yueherngl@google.com>
Diffstat (limited to 'zephyr/firmware_builder.py')
-rwxr-xr-x | zephyr/firmware_builder.py | 76 |
1 files changed, 62 insertions, 14 deletions
diff --git a/zephyr/firmware_builder.py b/zephyr/firmware_builder.py index 545d31312d..edcbfc58ef 100755 --- a/zephyr/firmware_builder.py +++ b/zephyr/firmware_builder.py @@ -24,28 +24,44 @@ DEFAULT_BUNDLE_DIRECTORY = "/tmp/artifact_bundles" DEFAULT_BUNDLE_METADATA_FILE = "/tmp/artifact_bundle_metadata" # Boards that we want to track the coverage of our own files specifically. -SPECIAL_BOARDS = ["herobrine", "krabby", "nivviks", "skyrim", "kingler"] +SPECIAL_BOARDS = ["herobrine", "krabby", "nivviks", "skyrim", "kingler", "rex"] -def log_cmd(cmd): +def log_cmd(cmd, env=None): """Log subprocess command.""" + if env is not None: + print("env", end=" ") + [ # pylint:disable=expression-not-assigned + print(key + "=" + shlex.quote(str(value)), end=" ") + for key, value in env.items() + ] print(" ".join(shlex.quote(str(x)) for x in cmd)) sys.stdout.flush() -def run_twister(platform_ec, code_coverage=False, extra_args=None): - """Build the tests using twister.""" +def run_twister( + platform_ec, code_coverage=False, extra_args=None, use_gcc=False +): + """Build the tests using twister. + + Returns the path to the twister-out dir. + """ + + if use_gcc: + outdir = "twister-out-gcc" + toolchain = "host" + else: + outdir = "twister-out-llvm" + toolchain = "llvm" cmd = [ platform_ec / "twister", "--outdir", - platform_ec / "twister-out", + platform_ec / outdir, "-v", "-i", - "-p", - "native_posix", - "-p", - "unit_testing", "--no-upload-cros-rdb", + "--toolchain", + toolchain, ] if extra_args: @@ -60,7 +76,14 @@ def run_twister(platform_ec, code_coverage=False, extra_args=None): ] ) log_cmd(cmd) - subprocess.run(cmd, check=True, cwd=platform_ec, stdin=subprocess.DEVNULL) + + subprocess.run( + cmd, + check=True, + cwd=platform_ec, + stdin=subprocess.DEVNULL, + ) + return platform_ec / outdir def build(opts): @@ -76,6 +99,11 @@ def build(opts): stdin=subprocess.DEVNULL, ) + # Start with a clean build environment + cmd = ["make", "clobber"] + log_cmd(cmd) + subprocess.run(cmd, cwd=platform_ec, check=True, stdin=subprocess.DEVNULL) + cmd = ["zmake", "-D", "build", "-a"] if opts.code_coverage: cmd.append("--coverage") @@ -243,7 +271,10 @@ def test(opts): # Twister-based tests platform_ec = zephyr_dir.parent third_party = platform_ec.parent.parent / "third_party" - run_twister(platform_ec, opts.code_coverage) + twister_out_dir = run_twister(platform_ec, opts.code_coverage) + twister_out_dir_gcc = run_twister( + platform_ec, opts.code_coverage, use_gcc=True + ) if opts.code_coverage: build_dir = platform_ec / "build" / "zephyr" @@ -252,7 +283,7 @@ def test(opts): [ "/usr/bin/lcov", "--summary", - platform_ec / "twister-out" / "coverage.info", + twister_out_dir / "coverage.info", ], cwd=zephyr_dir, check=True, @@ -262,6 +293,20 @@ def test(opts): ).stdout _extract_lcov_summary("EC_ZEPHYR_TESTS", metrics, output) + output = subprocess.run( + [ + "/usr/bin/lcov", + "--summary", + twister_out_dir_gcc / "coverage.info", + ], + cwd=zephyr_dir, + check=True, + stdout=subprocess.PIPE, + universal_newlines=True, + stdin=subprocess.DEVNULL, + ).stdout + _extract_lcov_summary("EC_ZEPHYR_TESTS_GCC", metrics, output) + cmd = ["make", "test-coverage", f"-j{opts.cpus}"] log_cmd(cmd) subprocess.run( @@ -291,7 +336,9 @@ def test(opts): "-a", platform_ec / "build/coverage/lcov.info", "-a", - platform_ec / "twister-out" / "coverage.info", + twister_out_dir / "coverage.info", + "-a", + twister_out_dir_gcc / "coverage.info", ] log_cmd(cmd) output = subprocess.run( @@ -343,6 +390,7 @@ def test(opts): zephyr_dir / "emul/**", zephyr_dir / "mock/**", third_party / "zephyr/main/subsys/emul/**", + third_party / "zephyr/main/arch/posix/**", # Exclude all files ending in _test.[ch] or _emul.[ch] "**/*_test.c", "**/*_test.h", @@ -470,7 +518,7 @@ def test(opts): # These are questionable, but they are essentially untestable zephyr_dir / "drivers/**", zephyr_dir / "include/drivers/**", - zephyr_dir / "projects/**", + zephyr_dir / "program/**", zephyr_dir / "shim/chip/**", zephyr_dir / "shim/chip/npcx/npcx_monitor/**", zephyr_dir / "shim/core/**", |