diff options
author | Jeff Epler <jepler@gmail.com> | 2025-06-15 16:45:23 +0200 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2025-06-16 23:28:34 +1000 |
commit | 841acb9df1eba53b1d6daf0684eddec17680235c (patch) | |
tree | 0673e744bb542858361a449121b4f75f7163c18c | |
parent | 268264fe64d04b82434c8efb2e9e94e8712719d4 (diff) |
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>
-rw-r--r-- | .github/workflows/ports_unix.yml | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/.github/workflows/ports_unix.yml b/.github/workflows/ports_unix.yml index 254701503..662121654 100644 --- a/.github/workflows/ports_unix.yml +++ b/.github/workflows/ports_unix.yml @@ -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 |