Mercurial
diff third_party/libuv/.github/workflows/sanitizer.yml @ 160:948de3f54cea
[ThirdParty] Added libuv
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Wed, 14 Jan 2026 19:39:52 -0800 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/third_party/libuv/.github/workflows/sanitizer.yml Wed Jan 14 19:39:52 2026 -0800 @@ -0,0 +1,128 @@ +name: Sanitizer checks + +on: + pull_request: + paths: + - '**' + - '!docs/**' + - '!.**' + - '.github/workflows/sanitizer.yml' + push: + branches: + - v[0-9].* + - master + +jobs: + sanitizers-linux: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - name: Setup + run: | + sudo apt-get install ninja-build + - name: Envinfo + run: npx envinfo + + # [AM]SAN fail on newer kernels due to a bigger PIE slide + - name: Disable ASLR + run: | + sudo sysctl -w kernel.randomize_va_space=0 + + - name: ASAN Build + run: | + mkdir build-asan + (cd build-asan && cmake .. -G Ninja -DBUILD_TESTING=ON -DASAN=ON -DCMAKE_BUILD_TYPE=Debug) + cmake --build build-asan + - name: ASAN Test + run: | + ./build-asan/uv_run_tests_a + + - name: MSAN Build + run: | + mkdir build-msan + (cd build-msan && cmake .. -G Ninja -DBUILD_TESTING=ON -DMSAN=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang) + cmake --build build-msan + - name: MSAN Test + run: | + ./build-msan/uv_run_tests_a + + - name: TSAN Build + run: | + mkdir build-tsan + (cd build-tsan && cmake .. -G Ninja -DBUILD_TESTING=ON -DTSAN=ON -DCMAKE_BUILD_TYPE=Release) + cmake --build build-tsan + - name: TSAN Test + # Note: path must be absolute because some tests chdir. + # TSan exits with an error when it can't find the file. + run: | + env TSAN_OPTIONS="suppressions=$PWD/tsansupp.txt" ./build-tsan/uv_run_tests_a + + - name: UBSAN Build + run: | + mkdir build-ubsan + (cd build-ubsan && cmake .. -G Ninja -DBUILD_TESTING=ON -DUBSAN=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang) + cmake --build build-ubsan + - name: UBSAN Test + run: | + ./build-ubsan/uv_run_tests_a + + sanitizers-macos: + runs-on: macos-13 + steps: + - uses: actions/checkout@v4 + + - name: Envinfo + run: npx envinfo + + - name: ASAN Build + run: | + mkdir build-asan + (cd build-asan && cmake .. -DBUILD_TESTING=ON -DASAN=ON -DCMAKE_BUILD_TYPE=Debug) + cmake --build build-asan + - name: ASAN Test + run: | + ./build-asan/uv_run_tests_a + + - name: TSAN Build + run: | + mkdir build-tsan + (cd build-tsan && cmake .. -DBUILD_TESTING=ON -DTSAN=ON -DCMAKE_BUILD_TYPE=Release) + cmake --build build-tsan + - name: TSAN Test + run: | + ./build-tsan/uv_run_tests_a + + - name: UBSAN Build + run: | + mkdir build-ubsan + (cd build-ubsan && cmake .. -DBUILD_TESTING=ON -DUBSAN=ON -DCMAKE_BUILD_TYPE=Debug) + cmake --build build-ubsan + - name: UBSAN Test + run: | + ./build-ubsan/uv_run_tests_a + + sanitizers-windows: + runs-on: windows-2022 + steps: + - uses: actions/checkout@v4 + - name: Setup + run: | + choco install ninja + + # Note: clang shipped with VS2022 has an issue where the UBSAN runtime doesn't link. + - name: Install LLVM and Clang + uses: KyleMayes/install-llvm-action@v2 + with: + version: "17" + + - name: Envinfo + run: npx envinfo + + - name: UBSAN Build + run: | + mkdir build-ubsan + cmake -B build-ubsan -G Ninja -DBUILD_TESTING=ON -DUBSAN=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang + cmake --build build-ubsan + - name: UBSAN Test + run: | + ./build-ubsan/uv_run_tests_a