| # Medium Tests: Run on all commits/PRs to dev branch |
| |
| language: c |
| dist: trusty |
| |
| git: |
| depth: 1 |
| |
| branches: |
| only: |
| - dev |
| - master |
| - travisTest |
| |
| addons: |
| apt: |
| update: true |
| |
| env: |
| global: |
| - FUZZERTEST=-T2mn |
| ZSTREAM_TESTTIME=-T2mn |
| DECODECORPUS_TESTTIME=-T1mn |
| |
| |
| matrix: |
| fast_finish: true |
| include: |
| - name: arm64 |
| os: linux |
| arch: arm64 |
| script: |
| - make check |
| |
| - name: Trusty (Test All) |
| script: |
| - make test |
| |
| - name: gcc-6 + gcc-7 compilation |
| script: |
| - make gcc6install gcc7install |
| - CC=gcc-6 CFLAGS=-Werror make -j all |
| - make clean |
| - CC=gcc-7 CFLAGS=-Werror make -j all |
| |
| - name: gcc-8 + ASan + UBSan + Test Zstd |
| script: |
| - make gcc8install |
| - CC=gcc-8 CFLAGS="-Werror" make -j all |
| - make clean |
| - CC=gcc-8 make -j uasan-test-zstd </dev/null # test when stdin is not a tty |
| |
| - name: gcc-6 + ASan + UBSan + Test Zstd, 32bit mode |
| script: |
| - make gcc6install libc6install |
| - CC=gcc-6 CFLAGS="-Werror -m32" make -j all32 |
| - make clean |
| - CC=gcc-6 make -j uasan-test-zstd32 # note : can complain about pointer overflow |
| |
| - name: Trusty (clang-3.8 + MSan + Test Zstd) |
| script: |
| - make clang38install |
| # External libraries must be turned off when using MSAN tests, |
| # because they are not msan-instrumented, |
| # so any data coming from these libraries is always considered "uninitialized" |
| - CC=clang-3.8 make clean msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0 |
| |
| - name: Trusty (Minimal Decompressor Macros) |
| script: |
| - make clean |
| - CFLAGS=-Werror make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT" |
| - make clean |
| - make -j check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT" |
| - make clean |
| - CFLAGS=-Werror make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG" |
| - make clean |
| - make -j check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG" |
| - make clean |
| - CFLAGS=-Werror make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS" |
| - make clean |
| - make -j check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS" |
| |
| - name: Trusty (CMake) |
| script: |
| - make cmakebuild |
| |
| - name: Trusty (Static Analyze) |
| script: |
| - make staticAnalyze |
| |
| - name: Trusty (gcc-8 + ASan + UBSan + Fuzz Test) |
| script: |
| - make gcc8install |
| - CC=gcc-8 make clean uasan-fuzztest |
| |
| - name: Trusty (gcc-6 + ASan + UBSan + Fuzz Test 32bit) |
| script: |
| - make gcc6install libc6install |
| - CC=gcc-6 CFLAGS="-O2 -m32" make uasan-fuzztest # can complain about pointer overflow |
| |
| - name: Trusty (clang-3.8 + MSan + Fuzz Test) |
| script: |
| - make clang38install |
| - CC=clang-3.8 make clean msan-fuzztest |
| |
| - name: Trusty (ASan + UBSan + MSan + Regression Test) |
| script: |
| - make -j uasanregressiontest |
| - make clean |
| - make -j msanregressiontest |
| |
| - name: Trusty (Valgrind + Fuzz Test Stack Mode) |
| script: |
| - make valgrindinstall |
| - make -C tests clean valgrindTest |
| - make clean |
| - make -C tests test-fuzzer-stackmode |
| |
| - name: Trusty (ARM + Fuzz Test) |
| script: |
| - make arminstall |
| - make armfuzz |
| |
| - name: Xenial (AARCH64 + Fuzz Test) |
| dist: xenial |
| script: |
| - make arminstall |
| - make aarch64fuzz |
| |
| - name: Trusty (PPC + Fuzz Test) |
| script: |
| - make ppcinstall |
| - make ppcfuzz |
| |
| - name: Trusty (Versions Compatibility Test) |
| script: |
| - make -C tests versionsTest |
| |
| # check release number |
| - name: Tag-Specific Test |
| if: tag =~ ^v[0-9]\.[0-9] |
| script: |
| - make -C tests checkTag |
| - tests/checkTag "$TRAVIS_BRANCH" |
| |
| # tests for master branch and cron job only |
| - name: OS-X |
| if: branch = master |
| os: osx |
| script: |
| - make test |
| |
| - name: thread sanitizer |
| if: branch = master |
| script: |
| - make clang38install |
| - CC=clang-3.8 make tsan-test-zstream |
| - CC=clang-3.8 make tsan-fuzztest |
| |
| - name: C++ and gnu90 compatibility |
| if: branch = master |
| script: |
| - make cxxtest |
| - make clean |
| - make gnu90build |
| - make clean |
| - make travis-install # just ensures `make install` works |
| |
| - name: c99 compatibility |
| if: branch = master |
| script: |
| - make c99build |
| - make -C tests test-zstd |
| |
| - name: PPC64 |
| if: branch = master |
| script: |
| - make ppcinstall |
| - make ppc64fuzz |
| |
| - name: zlib wrapper test |
| if: branch = master |
| script: |
| - make gpp6install valgrindinstall |
| - make -C zlibWrapper test |
| - make -C zlibWrapper valgrindTest |
| |
| - name: LZ4, thread pool, and partial libs tests |
| if: branch = master |
| script: |
| - make lz4install |
| - make -C tests test-lz4 |
| - make clean |
| - make -C tests test-pool |
| - make clean |
| - bash tests/libzstd_partial_builds.sh |
| |
| # meson dedicated test |
| - name: Xenial (Meson + clang) |
| # env: ALLOW_FAILURES=true |
| dist: xenial |
| language: cpp |
| compiler: clang |
| install: |
| - sudo apt-get install -qq liblz4-dev valgrind tree |
| - | |
| travis_retry curl -o ~/ninja.zip -L 'https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip' && |
| unzip ~/ninja.zip -d ~/.local/bin |
| - | |
| travis_retry curl -o ~/get-pip.py -L 'https://bootstrap.pypa.io/get-pip.py' && |
| python3 ~/get-pip.py --user && |
| pip3 install --user meson |
| script: |
| - | |
| meson setup \ |
| --buildtype=debugoptimized \ |
| -Db_lundef=false \ |
| -Dauto_features=enabled \ |
| -Dbin_programs=true \ |
| -Dbin_tests=true \ |
| -Dbin_contrib=true \ |
| -Ddefault_library=both \ |
| build/meson builddir |
| - pushd builddir |
| - ninja |
| - meson test --verbose --no-rebuild |
| - DESTDIR=./staging ninja install |
| - tree ./staging |
| after_failure: |
| - cat "$TRAVIS_BUILD_DIR"/builddir/meson-logs/testlog.txt |
| |
| allow_failures: |
| - env: ALLOW_FAILURES=true |