github/workflows: Add sanitize_undefined workflow to unix port CI.

gcc's "undefined behavior" sanitizer can catch a range of misbehaviors at
runtime that normally go unnoticed.  These include integer and pointer
operations that are "undefined" per the relevant C specification.

This commit enables undefined behavior detection during a new unix
coverage-like build.

Signed-off-by: Jeff Epler <jepler@gmail.com>
This commit is contained in:
Jeff Epler
2025-06-15 16:45:23 +02:00
committed by Damien George
parent 268264fe64
commit 841acb9df1

View File

@@ -262,3 +262,23 @@ jobs:
- name: Print failures
if: failure()
run: tests/run-tests.py --print-failures
sanitize_undefined:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install packages
run: source tools/ci.sh && ci_unix_coverage_setup
- name: Build
run: source tools/ci.sh && ci_unix_sanitize_undefined_build
- name: Run main test suite
run: source tools/ci.sh && ci_unix_sanitize_undefined_run_tests
- name: Test merging .mpy files
run: source tools/ci.sh && ci_unix_coverage_run_mpy_merge_tests
- name: Build native mpy modules
run: source tools/ci.sh && ci_native_mpy_modules_build
- name: Test importing .mpy generated by mpy_ld.py
run: source tools/ci.sh && ci_unix_coverage_run_native_mpy_tests
- name: Print failures
if: failure()
run: tests/run-tests.py --print-failures