Add ASan and UBSan CI coverage
All checks were successful
libakerror CI Build / cmake_build_freestanding (push) Successful in 2m38s
libakerror CI Build / cmake_build (push) Successful in 2m48s
libakerror CI Build / sanitizer (push) Successful in 3m0s
libakerror CI Build / coverage (push) Successful in 2m48s
libakerror CI Build / mutation_test (push) Successful in 42m12s

This commit is contained in:
2026-08-05 13:41:34 -04:00
committed by Andrew Kesterson
parent 3a88492a5a
commit 6426a09438
2 changed files with 17 additions and 1 deletions

View File

@@ -64,6 +64,22 @@ jobs:
-I tests \ -I tests \
tests/freestanding_fixture.c -o /tmp/freestanding_fixture.o tests/freestanding_fixture.c -o /tmp/freestanding_fixture.o
- run: echo "🍏 This job's status is ${{ job.status }}." - run: echo "🍏 This job's status is ${{ job.status }}."
sanitizer:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y cmake gcc moreutils
- name: build with AddressSanitizer and UBSan
run: |
cmake -S . -B build/asan -DAKERR_SANITIZE=address,undefined
cmake --build build/asan
- name: test with AddressSanitizer and UBSan
run: ctest --test-dir build/asan --output-on-failure
- run: echo "🍏 This job's status is ${{ job.status }}."
coverage: coverage:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -676,7 +676,7 @@ static akerr_ErrorContext AKERR_NOIGNORE *akerr_reserve_status_range_locked(int
"must not overflow int)", "must not overflow int)",
count, first_status, owner == NULL ? "(null)" : owner, count, first_status, owner == NULL ? "(null)" : owner,
AKERR_MAX_STATUS_RANGE_OWNER_LENGTH); AKERR_MAX_STATUS_RANGE_OWNER_LENGTH);
last_status = first_status + count - 1; last_status = first_status + (count - 1);
for ( int i = 0; i < akerr_status_range_count; i++ ) { for ( int i = 0; i < akerr_status_range_count; i++ ) {
if ( first_status <= akerr_status_ranges[i].last && if ( first_status <= akerr_status_ranges[i].last &&