13
13
make-all :
14
14
runs-on : ubuntu-latest
15
15
steps :
16
- - uses : actions/checkout@v2
16
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
17
17
- name : make all
18
18
run : make all
19
19
@@ -24,57 +24,85 @@ jobs:
24
24
DEVNULLRIGHTS : 1
25
25
READFROMBLOCKDEVICE : 1
26
26
steps :
27
- - uses : actions/checkout@v2
27
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
28
28
- name : make test
29
29
run : make test
30
30
31
31
# lasts ~26mn
32
32
make-test-osx :
33
33
runs-on : macos-latest
34
34
steps :
35
- - uses : actions/checkout@v2
35
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
36
36
- name : OS-X test
37
37
run : make test # make -c lib all doesn't work because of the fact that it's not a tty
38
38
39
39
no-intrinsics-fuzztest :
40
40
runs-on : ubuntu-latest
41
41
steps :
42
- - uses : actions/checkout@v2
42
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
43
43
- name : no intrinsics fuzztest
44
44
run : MOREFLAGS="-DZSTD_NO_INTRINSICS" make -C tests fuzztest
45
45
46
46
tsan-zstreamtest :
47
47
runs-on : ubuntu-latest
48
48
steps :
49
- - uses : actions/checkout@v2
49
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
50
50
- name : thread sanitizer zstreamtest
51
51
run : CC=clang ZSTREAM_TESTTIME=-T3mn make tsan-test-zstream
52
52
53
+ ubsan-zstreamtest :
54
+ runs-on : ubuntu-latest
55
+ steps :
56
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
57
+ - name : undefined behavior sanitizer zstreamtest
58
+ run : CC=clang make uasan-test-zstream
59
+
53
60
# lasts ~15mn
54
61
tsan-fuzztest :
55
62
runs-on : ubuntu-latest
56
63
steps :
57
- - uses : actions/checkout@v2
64
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
58
65
- name : thread sanitizer fuzztest
59
66
run : CC=clang make tsan-fuzztest
60
67
68
+
69
+ big-tests-zstreamtest32 :
70
+ runs-on : ubuntu-latest
71
+ steps :
72
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
73
+ - name : zstream tests in 32bit mode, with big tests
74
+ run : |
75
+ sudo apt-get -qqq update
76
+ make libc6install
77
+ CC=clang make -C tests test-zstream32 FUZZER_FLAGS="--big-tests"
78
+
61
79
# lasts ~23mn
62
80
gcc-8-asan-ubsan-testzstd :
63
81
runs-on : ubuntu-latest
64
82
steps :
65
- - uses : actions/checkout@v2
83
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
66
84
- name : gcc-8 + ASan + UBSan + Test Zstd
85
+ # See https://askubuntu.com/a/1428822
67
86
run : |
87
+ echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
68
88
sudo apt-get -qqq update
69
89
make gcc8install
70
90
CC=gcc-8 make -j uasan-test-zstd </dev/null V=1
71
91
92
+ clang-asan-ubsan-testzstd :
93
+ runs-on : ubuntu-latest
94
+ steps :
95
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
96
+ - name : clang + ASan + UBSan + Test Zstd
97
+ run : CC=clang make -j uasan-test-zstd </dev/null V=1
98
+
72
99
gcc-asan-ubsan-testzstd-32bit :
73
100
runs-on : ubuntu-latest
74
101
steps :
75
- - uses : actions/checkout@v2
102
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
76
103
- name : ASan + UBSan + Test Zstd, 32bit mode
77
104
run : |
105
+ sudo apt-get -qqq update
78
106
make libc6install
79
107
make -j uasan-test-zstd32 V=1
80
108
@@ -85,39 +113,67 @@ jobs:
85
113
gcc-8-asan-ubsan-fuzz :
86
114
runs-on : ubuntu-latest
87
115
steps :
88
- - uses : actions/checkout@v2
116
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
89
117
- name : gcc-8 + ASan + UBSan + Fuzz Test
118
+ # See https://askubuntu.com/a/1428822
90
119
run : |
120
+ echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
121
+ sudo apt-get -qqq update
91
122
make gcc8install
92
123
CC=gcc-8 FUZZER_FLAGS="--long-tests" make clean uasan-fuzztest
93
124
125
+ clang-asan-ubsan-fuzz :
126
+ runs-on : ubuntu-latest
127
+ steps :
128
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
129
+ - name : clang + ASan + UBSan + Fuzz Test
130
+ run : CC=clang FUZZER_FLAGS="--long-tests" make clean uasan-fuzztest
131
+
94
132
gcc-asan-ubsan-fuzz32 :
95
133
runs-on : ubuntu-latest
96
134
steps :
97
- - uses : actions/checkout@v2
135
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
98
136
- name : ASan + UBSan + Fuzz Test 32bit
99
137
run : |
138
+ sudo apt-get -qqq update
100
139
make libc6install
101
140
CFLAGS="-O3 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
102
141
142
+ clang-asan-ubsan-fuzz32 :
143
+ runs-on : ubuntu-latest
144
+ steps :
145
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
146
+ - name : clang + ASan + UBSan + Fuzz Test 32bit
147
+ run : |
148
+ sudo apt-get -qqq update
149
+ make libc6install
150
+ CC=clang CFLAGS="-O3 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
151
+
103
152
asan-ubsan-regression :
104
153
runs-on : ubuntu-latest
105
154
steps :
106
- - uses : actions/checkout@v2
155
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
107
156
- name : ASan + UBSan + Regression Test
108
157
run : make -j uasanregressiontest
109
158
159
+ clang-ubsan-regression :
160
+ runs-on : ubuntu-latest
161
+ steps :
162
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
163
+ - name : clang + ASan + UBSan + Regression Test
164
+ run : CC=clang make -j uasanregressiontest
165
+
110
166
msan-regression :
111
167
runs-on : ubuntu-latest
112
168
steps :
113
- - uses : actions/checkout@v2
169
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
114
170
- name : MSan + Regression Test
115
171
run : make -j msanregressiontest
116
172
117
173
clang-msan-fuzz :
118
174
runs-on : ubuntu-latest
119
175
steps :
120
- - uses : actions/checkout@v2
176
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
121
177
- name : clang + MSan + Fuzz Test
122
178
run : |
123
179
sudo apt-get -qqq update
@@ -128,7 +184,7 @@ jobs:
128
184
clang-msan-testzstd :
129
185
runs-on : ubuntu-latest
130
186
steps :
131
- - uses : actions/checkout@v2
187
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
132
188
- name : clang + MSan + Test Zstd
133
189
run : |
134
190
sudo apt-get update
@@ -138,7 +194,7 @@ jobs:
138
194
armfuzz :
139
195
runs-on : ubuntu-latest
140
196
steps :
141
- - uses : actions/checkout@v2
197
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
142
198
- name : Qemu ARM emulation + Fuzz Test
143
199
run : |
144
200
sudo apt-get -qqq update
@@ -148,67 +204,42 @@ jobs:
148
204
valgrind-fuzz-test :
149
205
runs-on : ubuntu-latest
150
206
steps :
151
- - uses : actions/checkout@v2
207
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
152
208
- name : valgrind + fuzz test stack mode # ~ 7mn
153
209
shell : ' script -q -e -c "bash {0}"'
154
210
run : |
211
+ sudo apt-get -qqq update
155
212
make valgrindinstall
156
- make -C tests valgrindTest
213
+ make -C tests test-valgrind
157
214
make clean
158
215
make -C tests test-fuzzer-stackmode
159
216
160
217
mingw-long-test :
161
218
runs-on : windows-latest
162
- strategy :
163
- fail-fast : false
164
- matrix :
165
- include : [
166
- { compiler: clang, platform: x64, action: build, script: "MOREFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion -Wno-unused-command-line-argument -Wno-implicit-int-float-conversion' make -j allzstd V=1"},
167
- { compiler: gcc, platform: x64, action: test, script: ""},
168
- ]
219
+ defaults :
220
+ run :
221
+ shell : msys2 {0}
169
222
steps :
170
- - uses : actions/checkout@v2
171
- - name : Mingw long test
223
+ - uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3
224
+ - uses : msys2/setup-msys2@v2
225
+ with :
226
+ msystem : MINGW64
227
+ install : make
228
+ update : true
229
+ # Based on https://ariya.io/2020/07/on-github-actions-with-msys2
230
+ - name : install mingw gcc
231
+ run : pacman --noconfirm -S gcc
232
+ - name : MINGW64 gcc fuzztest
172
233
run : |
173
- $env:PATH_ORIGINAL = $env:PATH
174
- $env:PATH_MINGW32 = "C:\msys64\mingw32\bin"
175
- $env:PATH_MINGW64 = "C:\msys64\mingw64\bin"
176
- COPY C:\msys64\usr\bin\make.exe C:\msys64\mingw32\bin\make.exe
177
- COPY C:\msys64\usr\bin\make.exe C:\msys64\mingw64\bin\make.exe
178
- IF ("${{matrix.platform}}" -eq "x64")
179
- {
180
- $env:PATH = $env:PATH_MINGW64 + ";" + $env:PATH_ORIGINAL
181
- }
182
- ELSEIF ("${{matrix.platform}}" -eq "x86")
183
- {
184
- $env:PATH = $env:PATH_MINGW32 + ";" + $env:PATH_ORIGINAL
185
- }
186
- IF ("${{matrix.action}}" -eq "build")
187
- {
188
- make -v
189
- sh -c "${{matrix.compiler}} -v"
190
- ECHO "Building zlib to static link"
191
- $env:CC = "${{matrix.compiler}}"
192
- sh -c "cd .. && git clone --depth 1 --branch v1.2.11 https://github.com/madler/zlib"
193
- sh -c "cd ../zlib && make -f win32/Makefile.gcc libz.a"
194
- ECHO "Building zstd"
195
- $env:CPPFLAGS = "-I../../zlib"
196
- $env:LDFLAGS = "../../zlib/libz.a"
197
- sh -c "${{matrix.script}}"
198
- }
199
- ELSEIF ("${{matrix.action}}" -eq "test")
200
- {
201
- ECHO "Testing ${{matrix.compiler}} ${{matrix.platform}}"
202
- $env:CC = "gcc"
203
- $env:CXX = "g++"
204
- MKDIR build\cmake\build
205
- CD build\cmake\build
206
- $env:FUZZERTEST = "-T2mn"
207
- $env:ZSTREAM_TESTTIME = "-T2mn"
208
- cmake -G "Visual Studio 14 2015 Win64" ..
209
- cd ..\..\..
210
- make clean
211
- }
234
+ export CC="gcc"
235
+ export CXX="g++"
236
+ export FUZZERTEST="-T2mn"
237
+ export ZSTREAM_TESTTIME="-T2mn"
238
+ echo "Testing $CC $CXX MINGW64"
239
+ make -v
240
+ $CC --version
241
+ $CXX --version
242
+ make -C tests fuzztest
212
243
213
244
# lasts ~20mn
214
245
oss-fuzz :
@@ -233,7 +264,7 @@ jobs:
233
264
dry-run : false
234
265
sanitizer : ${{ matrix.sanitizer }}
235
266
- name : Upload Crash
236
- uses : actions/upload-artifact@v1
267
+ uses : actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3.1.2
237
268
if : failure() && steps.build.outcome == 'success'
238
269
with :
239
270
name : ${{ matrix.sanitizer }}-artifacts
0 commit comments