]> git.proxmox.com Git - ceph.git/blame - ceph/src/zstd/.travis.yml
import ceph quincy 17.2.4
[ceph.git] / ceph / src / zstd / .travis.yml
CommitLineData
9f95a23c 1# Medium Tests: Run on all commits/PRs to dev branch
11fdf7f2 2
7c673cae 3language: c
9f95a23c
TL
4
5git:
6 depth: 1
7
8branches:
9 only:
10 - dev
11 - master
12 - travisTest
13
14addons:
15 apt:
16 update: true
17
18env:
19 global:
20 - FUZZERTEST=-T2mn
21 ZSTREAM_TESTTIME=-T2mn
22 DECODECORPUS_TESTTIME=-T1mn
23
24
7c673cae 25matrix:
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