LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
make -C tests zbufftest-dll
+ # candidate test (to check) : underlink test
+ # LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked
+ # zbufftest-dll : test that a user program can link to multi-threaded libzstd without specifying -pthread
+
gcc-8-asan-ubsan-testzstd:
runs-on: ubuntu-16.04 # fails on 18.04
steps:
sudo apt-get install clang-3.8
CC=clang-3.8 make clean msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0
+ # Note : 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"
+
cmake-build-and-test-check:
runs-on: ubuntu-latest
steps:
make clean
make c99build
make clean
- make travis-install
+ make travis-install # just ensures `make install` works
mingw-cross-compilation:
runs-on: ubuntu-latest
script:
- make check
- - name: make benchmarking
- script:
- - make benchmarking
-
- name: make test (complete)
script:
# DEVNULLRIGHTS : will request sudo rights to test permissions on /dev/null
- DEVNULLRIGHTS=test make test
- - name: gcc-6 + gcc-7 + libzstdmt compilation # ~ 6mn
- script:
- - make gcc6install gcc7install
- - CC=gcc-6 CFLAGS=-Werror make -j all
- - make clean
- - CC=gcc-7 CFLAGS=-Werror make -j all
- - make clean
- - LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
- - make -C tests zbufftest-dll
- # LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked
- # zbufftest-dll : test that a user program can link to multi-threaded libzstd without specifying -pthread
-
- - name: gcc-8 + ASan + UBSan + Test Zstd # ~6.5mn
- 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 # ~4mn
- 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: clang-3.8 + MSan + Test Zstd # ~3.5mn
- 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: Minimal Decompressor Macros # ~5mn
script:
- make clean && make -j all ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
- make clean && make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
- make clean && make check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
- - name: cmake build and test check # ~6mn
- script:
- - make cmakebuild
-
- name: static analyzer scanbuild # ~26mn
dist: trusty # note : it's important to pin down a version of static analyzer, since different versions report different false positives
script:
- make staticAnalyze
- - name: gcc-8 + ASan + UBSan + Fuzz Test # ~19mn
- script:
- - make gcc8install
- - CC=gcc-8 make clean uasan-fuzztest
-
- - name: gcc-6 + ASan + UBSan + Fuzz Test 32bit # ~15.5mn
- script:
- - make gcc6install libc6install
- - CC=gcc-6 CFLAGS="-O2 -m32" make uasan-fuzztest # can complain about pointer overflow
-
- - name: clang-3.8 + MSan + Fuzz Test # ~14.5mn
- script:
- - make clang38install
- - CC=clang-3.8 make clean msan-fuzztest
-
- - name: ASan + UBSan + MSan + Regression Test # ~ 4.5mn
- script:
- - make -j uasanregressiontest
- - make clean
- - make -j msanregressiontest
-
- - name: C++, gnu90 and c99 compatibility # ~3mn
- script:
- - make cxxtest
- - make clean
- - make gnu90build
- - make clean
- - make c99build
- - make clean
- - make travis-install # just ensures `make install` works
-
- - name: mingw cross-compilation
- script :
- - sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix;
- - CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ CFLAGS="-Werror -O1" make zstd
-
- name: Valgrind + Fuzz Test Stack Mode # ~ 7mn
script:
- make valgrindinstall