git subrepo pull (merge) --force deps/libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / zstd-1.5.5 / .github / workflows / dev-long-tests.yml
CommitLineData
648db22b 1name: dev-long-tests
2# Tests longer than 10mn
3
4concurrency:
5 group: long-${{ github.ref }}
6 cancel-in-progress: true
7
8on:
9 pull_request:
10 branches: [ dev, release, actionsTest ]
11
12permissions: read-all
13
14jobs:
15 make-all:
16 runs-on: ubuntu-latest
17 steps:
18 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
19 - name: make all
20 run: make all
21
22 # lasts ~24mn
23 make-test:
24 runs-on: ubuntu-latest
25 env:
26 DEVNULLRIGHTS: 1
27 READFROMBLOCKDEVICE: 1
28 steps:
29 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
30 - name: make test
31 run: make test
32
33 # lasts ~26mn
34 make-test-osx:
35 runs-on: macos-latest
36 steps:
37 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
38 - name: OS-X test
39 run: make test # make -c lib all doesn't work because of the fact that it's not a tty
40
41 # lasts ~24mn
42 make-test-32bit:
43 runs-on: ubuntu-latest
44 env:
45 DEVNULLRIGHTS: 1
46 READFROMBLOCKDEVICE: 1
47 steps:
48 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
49 - name: make test
50 run: |
51 sudo apt-get -qqq update
52 make libc6install
53 CFLAGS="-m32" make test
54
55 no-intrinsics-fuzztest:
56 runs-on: ubuntu-latest
57 steps:
58 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
59 - name: no intrinsics fuzztest
60 run: MOREFLAGS="-DZSTD_NO_INTRINSICS" make -C tests fuzztest
61
62 tsan-zstreamtest:
63 runs-on: ubuntu-latest
64 steps:
65 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
66 - name: thread sanitizer zstreamtest
67 run: CC=clang ZSTREAM_TESTTIME=-T3mn make tsan-test-zstream
68
69 ubsan-zstreamtest:
70 runs-on: ubuntu-latest
71 steps:
72 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
73 - name: undefined behavior sanitizer zstreamtest
74 run: CC=clang make uasan-test-zstream
75
76 # lasts ~15mn
77 tsan-fuzztest:
78 runs-on: ubuntu-latest
79 steps:
80 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
81 - name: thread sanitizer fuzztest
82 run: CC=clang make tsan-fuzztest
83
84
85 big-tests-zstreamtest32:
86 runs-on: ubuntu-latest
87 steps:
88 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
89 - name: zstream tests in 32bit mode, with big tests
90 run: |
91 sudo apt-get -qqq update
92 make libc6install
93 CC=clang make -C tests test-zstream32 FUZZER_FLAGS="--big-tests"
94
95 # lasts ~23mn
96 gcc-8-asan-ubsan-testzstd:
97 runs-on: ubuntu-latest
98 steps:
99 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
100 - name: gcc-8 + ASan + UBSan + Test Zstd
101 # See https://askubuntu.com/a/1428822
102 run: |
103 echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
104 sudo apt-get -qqq update
105 make gcc8install
106 CC=gcc-8 make -j uasan-test-zstd </dev/null V=1
107
108 clang-asan-ubsan-testzstd:
109 runs-on: ubuntu-latest
110 steps:
111 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
112 - name: clang + ASan + UBSan + Test Zstd
113 run: CC=clang make -j uasan-test-zstd </dev/null V=1
114
115 gcc-asan-ubsan-testzstd-32bit:
116 runs-on: ubuntu-latest
117 steps:
118 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
119 - name: ASan + UBSan + Test Zstd, 32bit mode
120 run: |
121 sudo apt-get -qqq update
122 make libc6install
123 make -j uasan-test-zstd32 V=1
124
125 # Note : external libraries must be turned off when using MSAN tests,
126 # because they are not msan-instrumented,
127 # so any data coming from these libraries is always considered "uninitialized"
128
129 gcc-8-asan-ubsan-fuzz:
130 runs-on: ubuntu-latest
131 steps:
132 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
133 - name: gcc-8 + ASan + UBSan + Fuzz Test
134 # See https://askubuntu.com/a/1428822
135 run: |
136 echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
137 sudo apt-get -qqq update
138 make gcc8install
139 CC=gcc-8 FUZZER_FLAGS="--long-tests" make clean uasan-fuzztest
140
141 clang-asan-ubsan-fuzz:
142 runs-on: ubuntu-latest
143 steps:
144 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
145 - name: clang + ASan + UBSan + Fuzz Test
146 run: CC=clang FUZZER_FLAGS="--long-tests" make clean uasan-fuzztest
147
148 gcc-asan-ubsan-fuzz32:
149 runs-on: ubuntu-latest
150 steps:
151 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
152 - name: ASan + UBSan + Fuzz Test 32bit
153 run: |
154 sudo apt-get -qqq update
155 make libc6install
156 CFLAGS="-O3 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
157
158 clang-asan-ubsan-fuzz32:
159 runs-on: ubuntu-latest
160 steps:
161 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
162 - name: clang + ASan + UBSan + Fuzz Test 32bit
163 run: |
164 sudo apt-get -qqq update
165 make libc6install
166 CC=clang CFLAGS="-O3 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
167
168 asan-ubsan-regression:
169 runs-on: ubuntu-latest
170 steps:
171 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
172 - name: ASan + UBSan + Regression Test
173 run: make -j uasanregressiontest
174
175 clang-ubsan-regression:
176 runs-on: ubuntu-latest
177 steps:
178 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
179 - name: clang + ASan + UBSan + Regression Test
180 run: CC=clang make -j uasanregressiontest
181
182 msan-regression:
183 runs-on: ubuntu-latest
184 steps:
185 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
186 - name: MSan + Regression Test
187 run: make -j msanregressiontest
188
189 clang-msan-fuzz-unoptimized:
190 runs-on: ubuntu-latest
191 steps:
192 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
193 - name: clang + MSan + Fuzz Test
194 run: |
195 sudo apt-get -qqq update
196 sudo apt-get install clang
197 CC=clang MOREFLAGS="-O0" make clean msan-fuzztest
198
199 clang-msan-fuzz:
200 runs-on: ubuntu-latest
201 steps:
202 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
203 - name: clang + MSan + Fuzz Test
204 run: |
205 sudo apt-get -qqq update
206 sudo apt-get install clang
207 CC=clang FUZZER_FLAGS="--long-tests" make clean msan-fuzztest
208
209 # lasts ~24mn
210 clang-msan-testzstd:
211 runs-on: ubuntu-latest
212 steps:
213 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
214 - name: clang + MSan + Test Zstd
215 run: |
216 sudo apt-get update
217 sudo apt-get install clang
218 CC=clang make msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0 V=1
219
220 armfuzz:
221 runs-on: ubuntu-latest
222 steps:
223 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
224 - name: Qemu ARM emulation + Fuzz Test
225 run: |
226 sudo apt-get -qqq update
227 make arminstall
228 make armfuzz
229
230 valgrind-fuzz-test:
231 runs-on: ubuntu-latest
232 steps:
233 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
234 - name: valgrind + fuzz test stack mode # ~ 7mn
235 shell: 'script -q -e -c "bash {0}"'
236 run: |
237 sudo apt-get -qqq update
238 make valgrindinstall
239 make -C tests test-valgrind
240 make clean
241 make -C tests test-fuzzer-stackmode
242
243 mingw-long-test:
244 runs-on: windows-latest
245 defaults:
246 run:
247 shell: msys2 {0}
248 steps:
249 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3
250 - uses: msys2/setup-msys2@5beef6d11f48bba68b9eb503e3adc60b23c0cc36 # tag=v2
251 with:
252 msystem: MINGW64
253 install: make
254 update: true
255 # Based on https://ariya.io/2020/07/on-github-actions-with-msys2
256 - name: install mingw gcc
257 run: pacman --noconfirm -S gcc
258 - name: MINGW64 gcc fuzztest
259 run: |
260 export CC="gcc"
261 export CXX="g++"
262 export FUZZERTEST="-T2mn"
263 export ZSTREAM_TESTTIME="-T2mn"
264 echo "Testing $CC $CXX MINGW64"
265 make -v
266 $CC --version
267 $CXX --version
268 make -C tests fuzztest
269
270 # lasts ~20mn
271 oss-fuzz:
272 runs-on: ubuntu-latest
273 strategy:
274 fail-fast: false
275 matrix:
276 sanitizer: [address, undefined, memory]
277 steps:
278 - name: Build Fuzzers (${{ matrix.sanitizer }})
279 id: build
280 uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
281 with:
282 oss-fuzz-project-name: 'zstd'
283 dry-run: false
284 sanitizer: ${{ matrix.sanitizer }}
285 - name: Run Fuzzers (${{ matrix.sanitizer }})
286 uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
287 with:
288 oss-fuzz-project-name: 'zstd'
289 fuzz-seconds: 600
290 dry-run: false
291 sanitizer: ${{ matrix.sanitizer }}
292 - name: Upload Crash
293 uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3.1.2
294 if: failure() && steps.build.outcome == 'success'
295 with:
296 name: ${{ matrix.sanitizer }}-artifacts
297 path: ./out/artifacts