comparison 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
comparison
equal deleted inserted replaced
159:05cf9467a1c3 160:948de3f54cea
1 name: Sanitizer checks
2
3 on:
4 pull_request:
5 paths:
6 - '**'
7 - '!docs/**'
8 - '!.**'
9 - '.github/workflows/sanitizer.yml'
10 push:
11 branches:
12 - v[0-9].*
13 - master
14
15 jobs:
16 sanitizers-linux:
17 runs-on: ubuntu-22.04
18 steps:
19 - uses: actions/checkout@v4
20 - name: Setup
21 run: |
22 sudo apt-get install ninja-build
23 - name: Envinfo
24 run: npx envinfo
25
26 # [AM]SAN fail on newer kernels due to a bigger PIE slide
27 - name: Disable ASLR
28 run: |
29 sudo sysctl -w kernel.randomize_va_space=0
30
31 - name: ASAN Build
32 run: |
33 mkdir build-asan
34 (cd build-asan && cmake .. -G Ninja -DBUILD_TESTING=ON -DASAN=ON -DCMAKE_BUILD_TYPE=Debug)
35 cmake --build build-asan
36 - name: ASAN Test
37 run: |
38 ./build-asan/uv_run_tests_a
39
40 - name: MSAN Build
41 run: |
42 mkdir build-msan
43 (cd build-msan && cmake .. -G Ninja -DBUILD_TESTING=ON -DMSAN=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang)
44 cmake --build build-msan
45 - name: MSAN Test
46 run: |
47 ./build-msan/uv_run_tests_a
48
49 - name: TSAN Build
50 run: |
51 mkdir build-tsan
52 (cd build-tsan && cmake .. -G Ninja -DBUILD_TESTING=ON -DTSAN=ON -DCMAKE_BUILD_TYPE=Release)
53 cmake --build build-tsan
54 - name: TSAN Test
55 # Note: path must be absolute because some tests chdir.
56 # TSan exits with an error when it can't find the file.
57 run: |
58 env TSAN_OPTIONS="suppressions=$PWD/tsansupp.txt" ./build-tsan/uv_run_tests_a
59
60 - name: UBSAN Build
61 run: |
62 mkdir build-ubsan
63 (cd build-ubsan && cmake .. -G Ninja -DBUILD_TESTING=ON -DUBSAN=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang)
64 cmake --build build-ubsan
65 - name: UBSAN Test
66 run: |
67 ./build-ubsan/uv_run_tests_a
68
69 sanitizers-macos:
70 runs-on: macos-13
71 steps:
72 - uses: actions/checkout@v4
73
74 - name: Envinfo
75 run: npx envinfo
76
77 - name: ASAN Build
78 run: |
79 mkdir build-asan
80 (cd build-asan && cmake .. -DBUILD_TESTING=ON -DASAN=ON -DCMAKE_BUILD_TYPE=Debug)
81 cmake --build build-asan
82 - name: ASAN Test
83 run: |
84 ./build-asan/uv_run_tests_a
85
86 - name: TSAN Build
87 run: |
88 mkdir build-tsan
89 (cd build-tsan && cmake .. -DBUILD_TESTING=ON -DTSAN=ON -DCMAKE_BUILD_TYPE=Release)
90 cmake --build build-tsan
91 - name: TSAN Test
92 run: |
93 ./build-tsan/uv_run_tests_a
94
95 - name: UBSAN Build
96 run: |
97 mkdir build-ubsan
98 (cd build-ubsan && cmake .. -DBUILD_TESTING=ON -DUBSAN=ON -DCMAKE_BUILD_TYPE=Debug)
99 cmake --build build-ubsan
100 - name: UBSAN Test
101 run: |
102 ./build-ubsan/uv_run_tests_a
103
104 sanitizers-windows:
105 runs-on: windows-2022
106 steps:
107 - uses: actions/checkout@v4
108 - name: Setup
109 run: |
110 choco install ninja
111
112 # Note: clang shipped with VS2022 has an issue where the UBSAN runtime doesn't link.
113 - name: Install LLVM and Clang
114 uses: KyleMayes/install-llvm-action@v2
115 with:
116 version: "17"
117
118 - name: Envinfo
119 run: npx envinfo
120
121 - name: UBSAN Build
122 run: |
123 mkdir build-ubsan
124 cmake -B build-ubsan -G Ninja -DBUILD_TESTING=ON -DUBSAN=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang
125 cmake --build build-ubsan
126 - name: UBSAN Test
127 run: |
128 ./build-ubsan/uv_run_tests_a