Summary
Runtime sanitizers (ASan, UBSan) and static analysis (clang-tidy, cppcheck) are not part of CI. They are only run manually. Undefined behavior or out-of-bounds issues could be introduced without automated detection.
Action needed
ASan / UBSan CI job
- Add a new CI job (e.g.,
sanitizers) in .github/workflows/ci.yml.
- Build
libew, ewpresenter, and tests with -fsanitize=address,undefined (GCC/Clang) on Linux.
- Run
ctest under the sanitizer-instrumented build; fail the job on any sanitizer report.
clang-tidy / cppcheck CI job
- Add a
static-analysis job.
- Run
clang-tidy against libew and ewpresenter using the existing .clang-tidy config.
- Run
cppcheck on the same sources.
- Fail the job on any new warning or error not already suppressed.
Both jobs can be in the same workflow file; keep them as separate jobs so they run in parallel and failures are identifiable independently.
Files
.github/workflows/ci.yml — add new jobs
.clang-tidy — already present; review suppression list before wiring to CI
Summary
Runtime sanitizers (ASan, UBSan) and static analysis (clang-tidy, cppcheck) are not part of CI. They are only run manually. Undefined behavior or out-of-bounds issues could be introduced without automated detection.
Action needed
ASan / UBSan CI job
sanitizers) in.github/workflows/ci.yml.libew,ewpresenter, and tests with-fsanitize=address,undefined(GCC/Clang) on Linux.ctestunder the sanitizer-instrumented build; fail the job on any sanitizer report.clang-tidy / cppcheck CI job
static-analysisjob.clang-tidyagainstlibewandewpresenterusing the existing.clang-tidyconfig.cppcheckon the same sources.Files
.github/workflows/ci.yml— add new jobs.clang-tidy— already present; review suppression list before wiring to CI