]> git.ipfire.org Git - thirdparty/zstd.git/blob - .travis.yml
Reference requested dict ID at decompression time
[thirdparty/zstd.git] / .travis.yml
1 # Medium Tests: Run on all commits/PRs to dev branch
2
3 language: c
4
5 git:
6 depth: 1
7
8 branches:
9 only:
10 - dev
11 - release
12 - master
13 - travisTest
14
15 addons:
16 apt:
17 update: true
18
19 env:
20 global:
21 - FUZZERTEST=-T2mn
22 ZSTREAM_TESTTIME=-T2mn
23 DECODECORPUS_TESTTIME=-T1mn
24
25
26 matrix:
27 fast_finish: true
28 include:
29 - name: arm64 # ~2.5 mn
30 os: linux
31 arch: arm64
32 script:
33 - make check
34
35 - name: make test (complete)
36 script:
37 # DEVNULLRIGHTS : will request sudo rights to test permissions on /dev/null
38 - DEVNULLRIGHTS=test make test
39
40 - name: Minimal Decompressor Macros # ~5mn
41 script:
42 - make clean && make -j all ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
43 - make clean && make check ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
44 - make clean && make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
45 - make clean && make check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
46 - make clean && make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
47 - make clean && make check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
48 - make clean && make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
49 - make clean && make check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
50
51 - name: static analyzer scanbuild # ~26mn
52 dist: trusty # note : it's important to pin down a version of static analyzer, since different versions report different false positives
53 script:
54 - make staticAnalyze
55
56 - name: Valgrind + Fuzz Test Stack Mode # ~ 7mn
57 script:
58 - make valgrindinstall
59 - make -C tests clean valgrindTest
60 - make clean
61 - make -C tests test-fuzzer-stackmode
62
63 - name: Qemu ARM emulation + Fuzz Test # ~13.5mn
64 script:
65 - make arminstall
66 - make armfuzz
67
68 # Introduced to check compat with old toolchains, to prevent e.g. #1872
69 - name: ARM Build Test (on Trusty)
70 dist: trusty
71 script:
72 - make arminstall
73 - make armbuild
74
75 - name: Qemu PPC + Fuzz Test # ~13mn
76 dist: trusty # it seems ppc cross-compilation fails on "current"
77 script:
78 - make ppcinstall
79 - make ppcfuzz
80
81 # check release number (release only)
82 - name: Tag-Specific Test
83 if: tag =~ ^v[0-9]\.[0-9]
84 script:
85 - make -C tests checkTag
86 - tests/checkTag "$TRAVIS_BRANCH"
87
88 # tests for release branch and cron job only
89 - name: OS-X # ~13mn
90 if: branch = release
91 os: osx
92 script:
93 - make test
94 - make -C lib all
95
96 - name: Versions Compatibility Test # 11.5mn
97 if: branch = release
98 script:
99 - make -C tests versionsTest
100
101 - name: thread sanitizer # ~29mn
102 if: branch = release
103 script:
104 - make clang38install
105 - CC=clang-3.8 make tsan-test-zstream
106 - CC=clang-3.8 make tsan-fuzztest
107
108 - name: PPC64LE + Fuzz test # ~13mn
109 if: branch = release
110 arch: ppc64le
111 script:
112 - cat /proc/cpuinfo
113 - make test
114
115 - name: Qemu PPC64 + Fuzz test # ~13mn, presumed Big-Endian (?)
116 dist: trusty # note : PPC64 cross-compilation for Qemu tests seems broken on Xenial
117 if: branch = release
118 script:
119 - make ppcinstall
120 - make ppc64fuzz
121
122 # note : we already have aarch64 tests on hardware
123 - name: Qemu aarch64 + Fuzz Test (on Xenial) # ~14mn
124 if: branch = release
125 dist: xenial
126 script:
127 - make arminstall
128 - make aarch64fuzz
129
130 # meson dedicated test
131 - name: Xenial (Meson + clang) # ~15mn
132 if: branch = release
133 dist: xenial
134 language: cpp
135 compiler: clang
136 install:
137 - sudo apt-get install -qq liblz4-dev valgrind tree
138 - |
139 travis_retry curl -o ~/ninja.zip -L 'https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip' &&
140 unzip ~/ninja.zip -d ~/.local/bin
141 - |
142 travis_retry curl -o ~/get-pip.py -L 'https://bootstrap.pypa.io/get-pip.py' &&
143 python3 ~/get-pip.py --user &&
144 pip3 install --user meson
145 script:
146 - |
147 meson setup \
148 --buildtype=debugoptimized \
149 -Db_lundef=false \
150 -Dauto_features=enabled \
151 -Dbin_programs=true \
152 -Dbin_tests=true \
153 -Dbin_contrib=true \
154 -Ddefault_library=both \
155 build/meson builddir
156 - pushd builddir
157 - ninja
158 - meson test --verbose --no-rebuild
159 - DESTDIR=./staging ninja install
160 - tree ./staging
161 after_failure:
162 - cat "$TRAVIS_BUILD_DIR"/builddir/meson-logs/testlog.txt
163
164 allow_failures:
165 - env: ALLOW_FAILURES=true