diff options
author | Jeff Epler <jepler@gmail.com> | 2025-06-15 16:35:13 +0200 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2025-06-16 23:28:08 +1000 |
commit | 268264fe64d04b82434c8efb2e9e94e8712719d4 (patch) | |
tree | 3e204aa8fc8c17cce508ba672997ff7b3844c741 | |
parent | 2c8ccd3ee8945d53857e383911bf822374174257 (diff) | |
download | micropython-268264fe64d04b82434c8efb2e9e94e8712719d4.tar.gz micropython-268264fe64d04b82434c8efb2e9e94e8712719d4.zip |
tools/ci.sh: Add functions for sanitizer builds.
Includes both undefined and address sanitizer configurations.
Signed-off-by: Jeff Epler <jepler@gmail.com>
-rwxr-xr-x | tools/ci.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tools/ci.sh b/tools/ci.sh index a5cd326c1c..b0e59509ad 100755 --- a/tools/ci.sh +++ b/tools/ci.sh @@ -512,6 +512,18 @@ CI_UNIX_OPTS_QEMU_RISCV64=( MICROPY_STANDALONE=1 ) +CI_UNIX_OPTS_SANITIZE_ADDRESS=( + VARIANT=coverage + CFLAGS_EXTRA="-fsanitize=address" + LDFLAGS_EXTRA="-fsanitize=address" +) + +CI_UNIX_OPTS_SANITIZE_UNDEFINED=( + VARIANT=coverage + CFLAGS_EXTRA="-fsanitize=undefined -fno-sanitize=nonnull-attribute" + LDFLAGS_EXTRA="-fsanitize=undefined -fno-sanitize=nonnull-attribute" +) + function ci_unix_build_helper { make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C ports/unix "$@" submodules @@ -742,6 +754,28 @@ function ci_unix_settrace_stackless_run_tests { ci_unix_run_tests_full_helper standard "${CI_UNIX_OPTS_SYS_SETTRACE_STACKLESS[@]}" } +function ci_unix_sanitize_undefined_build { + make ${MAKEOPTS} -C mpy-cross + make ${MAKEOPTS} -C ports/unix submodules + make ${MAKEOPTS} -C ports/unix "${CI_UNIX_OPTS_SANITIZE_UNDEFINED[@]}" + ci_unix_build_ffi_lib_helper gcc +} + +function ci_unix_sanitize_undefined_run_tests { + ci_unix_run_tests_full_helper coverage "${CI_UNIX_OPTS_SANITIZE_UNDEFINED[@]}" +} + +function ci_unix_sanitize_address_build { + make ${MAKEOPTS} -C mpy-cross + make ${MAKEOPTS} -C ports/unix submodules + make ${MAKEOPTS} -C ports/unix "${CI_UNIX_OPTS_SANITIZE_ADDRESS[@]}" + ci_unix_build_ffi_lib_helper gcc +} + +function ci_unix_sanitize_address_run_tests { + ci_unix_run_tests_full_helper coverage "${CI_UNIX_OPTS_SANITIZE_ADDRESS[@]}" +} + function ci_unix_macos_build { make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C ports/unix submodules |