From 5ffa2dfd3419ddf81dacdcf9ba01dc163e0adc6f Mon Sep 17 00:00:00 2001 From: ladyada Date: Tue, 15 Sep 2026 15:34:09 -0400 Subject: [PATCH] Run NMEA host regressions in CI Add an independent Ubuntu job for all three hardware-independent NMEA tests, with fatal address and undefined-behavior sanitizer checks. Co-authored-by: Limor Fried --- .github/workflows/githubci.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/githubci.yml b/.github/workflows/githubci.yml index 25b79fa..a755ca3 100644 --- a/.github/workflows/githubci.yml +++ b/.github/workflows/githubci.yml @@ -3,6 +3,26 @@ name: Arduino Library CI on: [pull_request, push, repository_dispatch] jobs: + nmea-tests: + name: NMEA regression tests + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Run host tests with sanitizers + shell: bash + run: | + set -euo pipefail + mkdir -p "$RUNNER_TEMP/nmea-tests" + for test in nmea_validate nmea_fields nmea_utilities; do + echo "Running $test" + g++ -std=c++11 -Wall -Wextra -Werror -g \ + -fsanitize=address,undefined -fno-sanitize-recover=all \ + -fno-omit-frame-pointer -Isrc src/Adafruit_NMEA.cpp \ + "extras/tests/$test/$test.cpp" -o "$RUNNER_TEMP/nmea-tests/$test" + "$RUNNER_TEMP/nmea-tests/$test" + done + build: runs-on: ubuntu-latest