Repository navigation
ci: a sanitizer lane for the checks that offer --sanitize - #2908
Open
jordanella wants to merge 1 commit into
Open
jordanella wants to merge 1 commit into
jordanella wants to merge 1 commit into
Conversation
Eleven checks build their code with the address and undefined-behaviour sanitizers when given --sanitize, but nothing ran them that way. A check now declares what turns them on (RUN_ALL_SANITIZE = ["--sanitize"], or the sanitizers to use for test_low_vram_texture_mips), and `tests/run_all.py --sanitize` runs those checks, and only those, with it. A new Linux job in source-regressions.yml runs the lane with --strict. On Windows the lane is skipped with the reason (llvm-mingw's ASan is a DLL runtime, and the checks' -no-pie stops clang there). All 11 pass with --sanitize --strict in a Linux container (python:3.12, Debian's g++). tests/test_run_all_declarations.py: the declaration's shapes, and a run of the lane. The dev-loop proposal's D3 (NotRexed#2636). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Eleven checks build the code they test with the address and undefined-behaviour sanitizers when given
--sanitize, but nothing ran them that way, so a use after free or an overflow in that code passes CI by luck. This adds a sanitizer lane. The dev-loop proposal's D3 (#2636).Change
RUN_ALL_SANITIZE = ["--sanitize"](fortest_low_vram_texture_mips,["--sanitize", "address,undefined"], as its option takes the list), beside itsRUN_ALL_ARGS. It is checked like the other declarations (a non-empty list of strings).tests/run_all.py --sanitize: runs those checks, and only those, with those arguments added; no C++ unit tests, no byte-compile. On Windows it skips them with the reason: llvm-mingw's ASan is a DLL runtime, and the checks' Linux flags (-no-pie) stop clang there.source-regressions.yml, Sanitizer lane (ASan, UBSan), with the same pinned checkouts as the Python job, runsrun_all.py --sanitize --strict.Testing
run_all.py --sanitize --strict: 11 passed, 0 failed.tests/test_run_all_declarations.py: the declaration's shapes (a list;Trueor[]stop the run), and a run of the lane with one declaring check (given exactly its arguments) and one that isn't (not run).run_all.py, rebased on today'smain, Windows: 18 pass;test_spawn_emitfails the same way onmainhere.See #2636 (D3).
🤖 Generated with Claude Code