blob: 97f95a60ebfbabfc0ebf8a5949f5e6bd396c5052 [file] [log] [blame]
Sean Purcelldaec40d2017-03-07 12:08:15 -08001# Medium Tests: Run on all commits/PRs to dev branch
2
Yann Collet4856a002015-01-24 01:58:16 +01003language: c
Przemyslaw Skibinski2e8ae512017-02-22 09:21:04 +01004dist: trusty
Lzu Tao0a25b132018-11-28 13:06:18 +07005
Sean Purcelldaec40d2017-03-07 12:08:15 -08006git:
7 depth: 1
8
9branches:
10 only:
11 - dev
12 - master
Yann Colleted1a4292018-06-27 16:57:28 -070013 - travisTest
Przemyslaw Skibinski0b48a592016-11-14 13:07:45 +010014
Lzu Taob3be8992018-12-14 01:38:06 +070015addons:
16 apt:
17 update: true
18
19env:
20 global:
21 - FUZZERTEST=-T2mn
22 ZSTREAM_TESTTIME=-T2mn
23 DECODECORPUS_TESTTIME=-T1mn
24
Lzu Taob3be8992018-12-14 01:38:06 +070025
26matrix:
27 fast_finish: true
28 include:
Bimba Shrestha4899b6f2019-10-23 10:43:20 -070029 - name: arm64
30 os: linux
31 arch: arm64
32 script:
33 - make check
34
Lzu Taob3be8992018-12-14 01:38:06 +070035 - name: Trusty (Test All)
36 script:
37 - make test
38
Yann Collet7d51e1a2018-12-24 04:15:41 -080039 - name: gcc-6 + gcc-7 compilation
Lzu Taob3be8992018-12-14 01:38:06 +070040 script:
Yann Collet7d51e1a2018-12-24 04:15:41 -080041 - make gcc6install gcc7install
Lzu Taob3be8992018-12-14 01:38:06 +070042 - CC=gcc-6 CFLAGS=-Werror make -j all
43 - make clean
Yann Collet7d51e1a2018-12-24 04:15:41 -080044 - CC=gcc-7 CFLAGS=-Werror make -j all
Yann Collet515c2aa2018-12-24 02:56:21 -080045
Yann Collet7d51e1a2018-12-24 04:15:41 -080046 - name: gcc-8 + ASan + UBSan + Test Zstd
Lzu Taob3be8992018-12-14 01:38:06 +070047 script:
48 - make gcc8install
Yann Collet7d51e1a2018-12-24 04:15:41 -080049 - CC=gcc-8 CFLAGS="-Werror" make -j all
50 - make clean
51 - CC=gcc-8 make -j uasan-test-zstd </dev/null # test when stdin is not a tty
52
53 - name: gcc-6 + ASan + UBSan + Test Zstd, 32bit mode
54 script:
55 - make gcc6install libc6install
56 - CC=gcc-6 CFLAGS="-Werror -m32" make -j all32
57 - make clean
58 - CC=gcc-6 make -j uasan-test-zstd32 # note : can complain about pointer overflow
Yann Collet515c2aa2018-12-24 02:56:21 -080059
Lzu Taob3be8992018-12-14 01:38:06 +070060 - name: Trusty (clang-3.8 + MSan + Test Zstd)
61 script:
62 - make clang38install
Yann Colletbad35bd2019-10-21 12:55:39 -070063 # External libraries must be turned off when using MSAN tests,
64 # because they are not msan-instrumented,
65 # so any data coming from these libraries is always considered "uninitialized"
66 - CC=clang-3.8 make clean msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0
Lzu Taob3be8992018-12-14 01:38:06 +070067
W. Felix Handte4e2f6c12018-12-05 14:04:57 -080068 - name: Trusty (Minimal Decompressor Macros)
69 script:
70 - make clean
Yann Collet515c2aa2018-12-24 02:56:21 -080071 - CFLAGS=-Werror make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
W. Felix Handte4e2f6c12018-12-05 14:04:57 -080072 - make clean
Yann Collet515c2aa2018-12-24 02:56:21 -080073 - make -j check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
W. Felix Handte4e2f6c12018-12-05 14:04:57 -080074 - make clean
Yann Collet515c2aa2018-12-24 02:56:21 -080075 - CFLAGS=-Werror make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
76 - make clean
77 - make -j check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
78 - make clean
79 - CFLAGS=-Werror make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
80 - make clean
81 - make -j check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
W. Felix Handte4e2f6c12018-12-05 14:04:57 -080082
Lzu Taob3be8992018-12-14 01:38:06 +070083 - name: Trusty (CMake)
84 script:
85 - make cmakebuild
86
87 - name: Trusty (Static Analyze)
88 script:
89 - make staticAnalyze
90
Yann Collet7d51e1a2018-12-24 04:15:41 -080091 - name: Trusty (gcc-8 + ASan + UBSan + Fuzz Test)
Lzu Taob3be8992018-12-14 01:38:06 +070092 script:
Yann Collet7d51e1a2018-12-24 04:15:41 -080093 - make gcc8install
94 - CC=gcc-8 make clean uasan-fuzztest
Yann Collet515c2aa2018-12-24 02:56:21 -080095
Lzu Taob3be8992018-12-14 01:38:06 +070096 - name: Trusty (gcc-6 + ASan + UBSan + Fuzz Test 32bit)
97 script:
98 - make gcc6install libc6install
Yann Collet7d51e1a2018-12-24 04:15:41 -080099 - CC=gcc-6 CFLAGS="-O2 -m32" make uasan-fuzztest # can complain about pointer overflow
Yann Collet515c2aa2018-12-24 02:56:21 -0800100
Lzu Taob3be8992018-12-14 01:38:06 +0700101 - name: Trusty (clang-3.8 + MSan + Fuzz Test)
102 script:
103 - make clang38install
104 - CC=clang-3.8 make clean msan-fuzztest
Yann Collet515c2aa2018-12-24 02:56:21 -0800105
Lzu Taob3be8992018-12-14 01:38:06 +0700106 - name: Trusty (ASan + UBSan + MSan + Regression Test)
107 script:
108 - make -j uasanregressiontest
109 - make clean
110 - make -j msanregressiontest
111
112 - name: Trusty (Valgrind + Fuzz Test Stack Mode)
113 script:
114 - make valgrindinstall
115 - make -C tests clean valgrindTest
116 - make clean
117 - make -C tests test-fuzzer-stackmode
118
119 - name: Trusty (ARM + Fuzz Test)
120 script:
121 - make arminstall
122 - make armfuzz
Yann Colletc8d1fda2018-12-21 15:08:48 -0800123
124 - name: Xenial (AARCH64 + Fuzz Test)
125 dist: xenial
Lzu Taob3be8992018-12-14 01:38:06 +0700126 script:
127 - make arminstall
128 - make aarch64fuzz
Yann Colletc8d1fda2018-12-21 15:08:48 -0800129
Lzu Taob3be8992018-12-14 01:38:06 +0700130 - name: Trusty (PPC + Fuzz Test)
131 script:
132 - make ppcinstall
133 - make ppcfuzz
Yann Colletc8d1fda2018-12-21 15:08:48 -0800134
W. Felix Handte904734e2019-07-30 20:11:25 -0400135 - name: Trusty (Versions Compatibility Test)
136 script:
137 - make -C tests versionsTest
138
Yann Collet81dab452018-12-24 03:31:40 -0800139 # check release number
Lzu Taob3be8992018-12-14 01:38:06 +0700140 - name: Tag-Specific Test
141 if: tag =~ ^v[0-9]\.[0-9]
142 script:
143 - make -C tests checkTag
144 - tests/checkTag "$TRAVIS_BRANCH"
145
Yann Collet81dab452018-12-24 03:31:40 -0800146 # tests for master branch and cron job only
147 - name: OS-X
Yann Collet66b21b62018-12-24 03:44:57 -0800148 if: branch = master
Yann Collet81dab452018-12-24 03:31:40 -0800149 os: osx
150 script:
151 - make test
152
153 - name: thread sanitizer
Yann Collet66b21b62018-12-24 03:44:57 -0800154 if: branch = master
Yann Collet81dab452018-12-24 03:31:40 -0800155 script:
156 - make clang38install
157 - CC=clang-3.8 make tsan-test-zstream
Yann Collet7d51e1a2018-12-24 04:15:41 -0800158 - CC=clang-3.8 make tsan-fuzztest
Yann Collet81dab452018-12-24 03:31:40 -0800159
Yann Collet66b21b62018-12-24 03:44:57 -0800160 - name: C++ and gnu90 compatibility
161 if: branch = master
Yann Collet81dab452018-12-24 03:31:40 -0800162 script:
163 - make cxxtest
164 - make clean
165 - make gnu90build
166 - make clean
Yann Collet66b21b62018-12-24 03:44:57 -0800167 - make travis-install # just ensures `make install` works
Yann Collet81dab452018-12-24 03:31:40 -0800168
W. Felix Handted8970192019-06-10 11:21:28 -0400169 - name: c99 compatibility
170 if: branch = master
171 script:
172 - make c99build
173 - make -C tests test-zstd
174
Yann Collet7d51e1a2018-12-24 04:15:41 -0800175 - name: PPC64
176 if: branch = master
177 script:
178 - make ppcinstall
179 - make ppc64fuzz
180
Yann Collet81dab452018-12-24 03:31:40 -0800181 - name: zlib wrapper test
Yann Collet66b21b62018-12-24 03:44:57 -0800182 if: branch = master
Yann Collet81dab452018-12-24 03:31:40 -0800183 script:
184 - make gpp6install valgrindinstall
185 - make -C zlibWrapper test
186 - make -C zlibWrapper valgrindTest
187
Yann Collet7d51e1a2018-12-24 04:15:41 -0800188 - name: LZ4, thread pool, and partial libs tests
189 if: branch = master
190 script:
191 - make lz4install
192 - make -C tests test-lz4
193 - make clean
194 - make -C tests test-pool
195 - make clean
196 - bash tests/libzstd_partial_builds.sh
197
Yann Collet81dab452018-12-24 03:31:40 -0800198 # meson dedicated test
Lzu Taob3be8992018-12-14 01:38:06 +0700199 - name: Xenial (Meson + clang)
Lzu Taoe31e7ca2019-04-12 23:43:34 +0700200 # env: ALLOW_FAILURES=true
Lzu Taob3be8992018-12-14 01:38:06 +0700201 dist: xenial
202 language: cpp
203 compiler: clang
Lzu Tao889a4922018-12-28 10:07:05 +0700204 install:
Lzu Taob3be8992018-12-14 01:38:06 +0700205 - sudo apt-get install -qq liblz4-dev valgrind tree
Lzu Tao4d156852019-06-29 01:42:17 +0700206 - |
207 travis_retry curl -o ~/ninja.zip -L 'https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip' &&
208 unzip ~/ninja.zip -d ~/.local/bin
209 - |
210 travis_retry curl -o ~/get-pip.py -L 'https://bootstrap.pypa.io/get-pip.py' &&
211 python3 ~/get-pip.py --user &&
212 pip3 install --user meson
Lzu Taob3be8992018-12-14 01:38:06 +0700213 script:
Lzu Tao4d156852019-06-29 01:42:17 +0700214 - |
215 meson setup \
216 --buildtype=debugoptimized \
217 -Db_lundef=false \
218 -Dauto_features=enabled \
Lzu Tao8e590a12019-06-29 01:59:57 +0700219 -Dbin_programs=true \
220 -Dbin_tests=true \
221 -Dbin_contrib=true \
Lzu Tao4d156852019-06-29 01:42:17 +0700222 -Ddefault_library=both \
lzutao1d70bc32019-05-03 02:35:37 +0700223 build/meson builddir
Lzu Tao5d900ff2019-04-30 13:12:00 +0700224 - pushd builddir
lzutao1d70bc32019-05-03 02:35:37 +0700225 - ninja
226 - meson test --verbose --no-rebuild
Lzu Taob3be8992018-12-14 01:38:06 +0700227 - DESTDIR=./staging ninja install
228 - tree ./staging
lzutao1d70bc32019-05-03 02:35:37 +0700229 after_failure:
230 - cat "$TRAVIS_BUILD_DIR"/builddir/meson-logs/testlog.txt
Bimba Shrestha5228c072019-10-22 17:43:29 -0700231
Lzu Taob3be8992018-12-14 01:38:06 +0700232 allow_failures:
Lzu Tao889a4922018-12-28 10:07:05 +0700233 - env: ALLOW_FAILURES=true