summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2025-06-15 16:45:23 +0200
committerDamien George <damien@micropython.org>2025-06-16 23:28:34 +1000
commit841acb9df1eba53b1d6daf0684eddec17680235c (patch)
tree0673e744bb542858361a449121b4f75f7163c18c
parent268264fe64d04b82434c8efb2e9e94e8712719d4 (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.yml20
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