]>
Commit | Line | Data |
---|---|---|
9f95a23c | 1 | # Medium Tests: Run on all commits/PRs to dev branch |
11fdf7f2 | 2 | |
7c673cae | 3 | language: c |
9f95a23c TL |
4 | |
5 | git: | |
6 | depth: 1 | |
7 | ||
8 | branches: | |
9 | only: | |
10 | - dev | |
11 | - master | |
12 | - travisTest | |
13 | ||
14 | addons: | |
15 | apt: | |
16 | update: true | |
17 | ||
18 | env: | |
19 | global: | |
20 | - FUZZERTEST=-T2mn | |
21 | ZSTREAM_TESTTIME=-T2mn | |
22 | DECODECORPUS_TESTTIME=-T1mn | |
23 | ||
24 | ||
7c673cae | 25 | matrix: |
9f95a23c | 26 | fast_finish: true |
7c673cae | 27 | include: |
f67539c2 TL |
28 | - name: icc |
29 | compiler: icc | |
30 | env: | |
31 | - C_COMPILER=icc | |
32 | - CXX_COMPILER=icpc | |
33 | install: | |
34 | - source /opt/intel/inteloneapi/compiler/latest/env/vars.sh | |
35 | addons: | |
36 | apt: | |
37 | sources: | |
38 | - sourceline: 'deb https://apt.repos.intel.com/oneapi all main' | |
39 | key_url: 'https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB' | |
40 | packages: | |
41 | - intel-oneapi-icc | |
42 | script: make check | |
43 | ||
44 | - name: arm64 # ~2.5 mn | |
45 | os: linux | |
46 | arch: arm64 | |
9f95a23c | 47 | script: |
f67539c2 | 48 | - make check |
9f95a23c | 49 | |
f67539c2 TL |
50 | - name: make benchmarking |
51 | script: | |
52 | - make benchmarking | |
53 | ||
54 | - name: make test (complete) | |
55 | script: | |
56 | # DEVNULLRIGHTS : will request sudo rights to test permissions on /dev/null | |
57 | - DEVNULLRIGHTS=test make test | |
58 | ||
59 | - name: gcc-6 + gcc-7 + libzstdmt compilation # ~ 6mn | |
9f95a23c TL |
60 | script: |
61 | - make gcc6install gcc7install | |
62 | - CC=gcc-6 CFLAGS=-Werror make -j all | |
63 | - make clean | |
64 | - CC=gcc-7 CFLAGS=-Werror make -j all | |
f67539c2 TL |
65 | - make clean |
66 | - LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt | |
67 | - make -C tests zbufftest-dll | |
68 | # LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked | |
69 | # zbufftest-dll : test that a user program can link to multi-threaded libzstd without specifying -pthread | |
9f95a23c | 70 | |
f67539c2 | 71 | - name: gcc-8 + ASan + UBSan + Test Zstd # ~6.5mn |
9f95a23c TL |
72 | script: |
73 | - make gcc8install | |
74 | - CC=gcc-8 CFLAGS="-Werror" make -j all | |
75 | - make clean | |
76 | - CC=gcc-8 make -j uasan-test-zstd </dev/null # test when stdin is not a tty | |
77 | ||
f67539c2 | 78 | - name: gcc-6 + ASan + UBSan + Test Zstd, 32bit mode # ~4mn |
9f95a23c TL |
79 | script: |
80 | - make gcc6install libc6install | |
81 | - CC=gcc-6 CFLAGS="-Werror -m32" make -j all32 | |
82 | - make clean | |
83 | - CC=gcc-6 make -j uasan-test-zstd32 # note : can complain about pointer overflow | |
7c673cae | 84 | |
f67539c2 | 85 | - name: clang-3.8 + MSan + Test Zstd # ~3.5mn |
9f95a23c TL |
86 | script: |
87 | - make clang38install | |
f67539c2 TL |
88 | # External libraries must be turned off when using MSAN tests, |
89 | # because they are not msan-instrumented, | |
90 | # so any data coming from these libraries is always considered "uninitialized" | |
91 | - CC=clang-3.8 make clean msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0 | |
7c673cae | 92 | |
f67539c2 | 93 | - name: Minimal Decompressor Macros # ~5mn |
9f95a23c TL |
94 | script: |
95 | - make clean | |
f67539c2 | 96 | - make -j all check ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror" |
9f95a23c | 97 | - make clean |
f67539c2 | 98 | - make -j all check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT" |
9f95a23c | 99 | - make clean |
f67539c2 | 100 | - make -j all check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG" |
9f95a23c | 101 | - make clean |
f67539c2 | 102 | - make -j all check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS" |
7c673cae | 103 | |
f67539c2 | 104 | - name: cmake build and test check # ~6mn |
9f95a23c TL |
105 | script: |
106 | - make cmakebuild | |
7c673cae | 107 | |
f67539c2 TL |
108 | - name: static analyzer scanbuild # ~26mn |
109 | dist: trusty # note : it's important to pin down a version of static analyzer, since different versions report different false positives | |
9f95a23c TL |
110 | script: |
111 | - make staticAnalyze | |
7c673cae | 112 | |
f67539c2 | 113 | - name: gcc-8 + ASan + UBSan + Fuzz Test # ~19mn |
9f95a23c TL |
114 | script: |
115 | - make gcc8install | |
116 | - CC=gcc-8 make clean uasan-fuzztest | |
7c673cae | 117 | |
f67539c2 | 118 | - name: gcc-6 + ASan + UBSan + Fuzz Test 32bit # ~15.5mn |
9f95a23c TL |
119 | script: |
120 | - make gcc6install libc6install | |
121 | - CC=gcc-6 CFLAGS="-O2 -m32" make uasan-fuzztest # can complain about pointer overflow | |
122 | ||
f67539c2 | 123 | - name: clang-3.8 + MSan + Fuzz Test # ~14.5mn |
9f95a23c TL |
124 | script: |
125 | - make clang38install | |
126 | - CC=clang-3.8 make clean msan-fuzztest | |
127 | ||
f67539c2 | 128 | - name: ASan + UBSan + MSan + Regression Test # ~ 4.5mn |
9f95a23c TL |
129 | script: |
130 | - make -j uasanregressiontest | |
131 | - make clean | |
132 | - make -j msanregressiontest | |
133 | ||
f67539c2 TL |
134 | - name: C++, gnu90 and c99 compatibility # ~3mn |
135 | script: | |
136 | - make cxxtest | |
137 | - make clean | |
138 | - make gnu90build | |
139 | - make clean | |
140 | - make c99build | |
141 | - make clean | |
142 | - make travis-install # just ensures `make install` works | |
143 | ||
144 | - name: mingw cross-compilation | |
145 | script : | |
146 | - sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix; | |
147 | - CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ CFLAGS="-Werror -O1" make zstd | |
148 | ||
149 | - name: Valgrind + Fuzz Test Stack Mode # ~ 7mn | |
9f95a23c TL |
150 | script: |
151 | - make valgrindinstall | |
152 | - make -C tests clean valgrindTest | |
153 | - make clean | |
154 | - make -C tests test-fuzzer-stackmode | |
155 | ||
f67539c2 | 156 | - name: Qemu ARM emulation + Fuzz Test # ~13.5mn |
9f95a23c TL |
157 | script: |
158 | - make arminstall | |
159 | - make armfuzz | |
160 | ||
f67539c2 TL |
161 | # Introduced to check compat with old toolchains, to prevent e.g. #1872 |
162 | - name: ARM Build Test (on Trusty) | |
163 | dist: trusty | |
9f95a23c TL |
164 | script: |
165 | - make arminstall | |
f67539c2 | 166 | - make armbuild |
9f95a23c | 167 | |
f67539c2 TL |
168 | - name: Qemu PPC + Fuzz Test # ~13mn |
169 | dist: trusty # it seems ppc cross-compilation fails on "current" | |
9f95a23c TL |
170 | script: |
171 | - make ppcinstall | |
172 | - make ppcfuzz | |
173 | ||
f67539c2 | 174 | # check release number (release only) |
9f95a23c TL |
175 | - name: Tag-Specific Test |
176 | if: tag =~ ^v[0-9]\.[0-9] | |
177 | script: | |
178 | - make -C tests checkTag | |
179 | - tests/checkTag "$TRAVIS_BRANCH" | |
180 | ||
181 | # tests for master branch and cron job only | |
f67539c2 | 182 | - name: OS-X # ~13mn |
9f95a23c | 183 | if: branch = master |
11fdf7f2 | 184 | os: osx |
9f95a23c TL |
185 | script: |
186 | - make test | |
f67539c2 | 187 | - make -C lib all |
7c673cae | 188 | |
f67539c2 TL |
189 | - name: zbuff test |
190 | if: branch = master | |
191 | script: | |
192 | - make -C tests test-zbuff | |
193 | ||
194 | - name: Versions Compatibility Test # 11.5mn | |
195 | if: branch = master | |
196 | script: | |
197 | - make -C tests versionsTest | |
198 | ||
199 | - name: thread sanitizer # ~29mn | |
9f95a23c TL |
200 | if: branch = master |
201 | script: | |
202 | - make clang38install | |
203 | - CC=clang-3.8 make tsan-test-zstream | |
204 | - CC=clang-3.8 make tsan-fuzztest | |
7c673cae | 205 | |
f67539c2 | 206 | - name: PPC64LE + Fuzz test # ~13mn |
9f95a23c | 207 | if: branch = master |
f67539c2 | 208 | arch: ppc64le |
9f95a23c | 209 | script: |
f67539c2 TL |
210 | - cat /proc/cpuinfo |
211 | - make test | |
7c673cae | 212 | |
f67539c2 TL |
213 | - name: Qemu PPC64 + Fuzz test # ~13mn, presumed Big-Endian (?) |
214 | dist: trusty # note : PPC64 cross-compilation for Qemu tests seems broken on Xenial | |
9f95a23c TL |
215 | if: branch = master |
216 | script: | |
217 | - make ppcinstall | |
218 | - make ppc64fuzz | |
7c673cae | 219 | |
f67539c2 TL |
220 | # note : we already have aarch64 tests on hardware |
221 | - name: Qemu aarch64 + Fuzz Test (on Xenial) # ~14mn | |
222 | if: branch = master | |
223 | dist: xenial | |
224 | script: | |
225 | - make arminstall | |
226 | - make aarch64fuzz | |
227 | ||
228 | - name: zlib wrapper test # ~7.5mn | |
9f95a23c TL |
229 | if: branch = master |
230 | script: | |
231 | - make gpp6install valgrindinstall | |
232 | - make -C zlibWrapper test | |
233 | - make -C zlibWrapper valgrindTest | |
234 | ||
f67539c2 | 235 | - name: LZ4, thread pool, and partial libs tests # ~2mn |
9f95a23c TL |
236 | if: branch = master |
237 | script: | |
238 | - make lz4install | |
239 | - make -C tests test-lz4 | |
240 | - make clean | |
241 | - make -C tests test-pool | |
242 | - make clean | |
243 | - bash tests/libzstd_partial_builds.sh | |
7c673cae | 244 | |
9f95a23c | 245 | # meson dedicated test |
f67539c2 TL |
246 | - name: Xenial (Meson + clang) # ~15mn |
247 | if: branch = master | |
9f95a23c TL |
248 | dist: xenial |
249 | language: cpp | |
250 | compiler: clang | |
251 | install: | |
252 | - sudo apt-get install -qq liblz4-dev valgrind tree | |
f67539c2 TL |
253 | - | |
254 | travis_retry curl -o ~/ninja.zip -L 'https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip' && | |
255 | unzip ~/ninja.zip -d ~/.local/bin | |
256 | - | | |
257 | travis_retry curl -o ~/get-pip.py -L 'https://bootstrap.pypa.io/get-pip.py' && | |
258 | python3 ~/get-pip.py --user && | |
259 | pip3 install --user meson | |
260 | script: | |
261 | - | | |
262 | meson setup \ | |
263 | --buildtype=debugoptimized \ | |
264 | -Db_lundef=false \ | |
265 | -Dauto_features=enabled \ | |
266 | -Dbin_programs=true \ | |
267 | -Dbin_tests=true \ | |
268 | -Dbin_contrib=true \ | |
269 | -Ddefault_library=both \ | |
270 | build/meson builddir | |
271 | - pushd builddir | |
272 | - ninja | |
273 | - meson test --verbose --no-rebuild | |
9f95a23c TL |
274 | - DESTDIR=./staging ninja install |
275 | - tree ./staging | |
f67539c2 TL |
276 | after_failure: |
277 | - cat "$TRAVIS_BUILD_DIR"/builddir/meson-logs/testlog.txt | |
278 | ||
9f95a23c TL |
279 | allow_failures: |
280 | - env: ALLOW_FAILURES=true |