3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-08-04 10:20:24 +00:00

CI: Test with ASAN as well

New matrix variable for sanitizer, running `undefined` and `address` separately
(because they are mutually exclusive).  Probably don't need to run both
sanitizers on both os targets, but it's probably fine.
This commit is contained in:
Krystine Sherwin 2025-04-11 11:37:39 +12:00
parent 3410e10ed5
commit e548618e4d
No known key found for this signature in database

View file

@ -40,6 +40,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ubuntu-latest, macos-latest] os: [ubuntu-latest, macos-latest]
sanitizer: [undefined, address]
fail-fast: false fail-fast: false
steps: steps:
- name: Checkout Yosys - name: Checkout Yosys
@ -56,7 +57,7 @@ jobs:
mkdir build mkdir build
cd build cd build
make -f ../Makefile config-$CC make -f ../Makefile config-$CC
echo 'SANITIZER = undefined' >> Makefile.conf echo 'SANITIZER = ${{ matrix.sanitizer }}' >> Makefile.conf
make -f ../Makefile -j$procs ENABLE_LTO=1 make -f ../Makefile -j$procs ENABLE_LTO=1
- name: Log yosys-config output - name: Log yosys-config output
@ -72,7 +73,7 @@ jobs:
- name: Store build artifact - name: Store build artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: build-${{ matrix.os }} name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
path: build.tar path: build.tar
retention-days: 1 retention-days: 1
@ -83,10 +84,12 @@ jobs:
if: needs.pre_job.outputs.should_skip != 'true' if: needs.pre_job.outputs.should_skip != 'true'
env: env:
CC: clang CC: clang
ASAN_OPTIONS: halt_on_error=1
UBSAN_OPTIONS: halt_on_error=1 UBSAN_OPTIONS: halt_on_error=1
strategy: strategy:
matrix: matrix:
os: [ubuntu-latest, macos-latest] os: [ubuntu-latest, macos-latest]
sanitizer: [undefined, address]
fail-fast: false fail-fast: false
steps: steps:
- name: Checkout Yosys - name: Checkout Yosys
@ -133,7 +136,7 @@ jobs:
- name: Download build artifact - name: Download build artifact
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: build-${{ matrix.os }} name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
- name: Uncompress build - name: Uncompress build
shell: bash shell: bash
@ -165,6 +168,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ubuntu-latest] os: [ubuntu-latest]
sanitizer: [undefined, address]
fail-fast: false fail-fast: false
steps: steps:
- name: Checkout Yosys - name: Checkout Yosys
@ -176,7 +180,7 @@ jobs:
- name: Download build artifact - name: Download build artifact
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: build-${{ matrix.os }} name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
- name: Uncompress build - name: Uncompress build
shell: bash shell: bash