language: c matrix: fast_finish: true include: # # OS X Mavericks # - name: (macOS) General Test # os: osx # compiler: clang # script: # - make # test library build # - make clean # - make test MOREFLAGS='-Werror -Wconversion -Wno-sign-conversion' | tee # test scenario where `stdout` is not the console # # # Container-based 12.04 LTS Server Edition 64 bit (doesn't support 32-bit includes) # - name: (Precise) benchmark test # dist: precise # script: # - make -C tests test-lz4 test-lz4c test-fullbench # # - name: (Precise) frame and fuzzer test # dist: precise # install: # - sudo sysctl -w vm.mmap_min_addr=4096 # script: # - make -C tests test-frametest test-fuzzer # # - name: ASAN tests with fuzzer and frametest # install: # - sudo sysctl -w vm.mmap_min_addr=4096 # script: # - CC=clang MOREFLAGS=-fsanitize=address make -C tests test-frametest test-fuzzer # # - name: Custom LZ4_DISTANCE_MAX ; lz4-wlib (CLI linked to dynamic library); LZ4_USER_MEMORY_FUNCTIONS # script: # - MOREFLAGS=-DLZ4_DISTANCE_MAX=8000 make check # - make clean # - make -C programs lz4-wlib # - make clean # - make -C tests fullbench-wmalloc # test LZ4_USER_MEMORY_FUNCTIONS # - make clean # - CC="c++ -Wno-deprecated" make -C tests fullbench-wmalloc # stricter function signature check # # - name: (Precise) g++ and clang CMake test # dist: precise # script: # - make cxxtest # - make clean # - make examples # - make clean cmake # - make clean travis-install # - make clean clangtest # # - name: x32 compatibility test # addons: # apt: # packages: # - gcc-multilib # script: # - make -C tests test MOREFLAGS=-mx32 # # # 14.04 LTS Server Edition 64 bit # # presume clang >= v3.9.0 # - name: (Trusty) USan test # dist: trusty # compiler: clang # script: # - make usan MOREFLAGS=-Wcomma -Werror # # - name: (Trusty) valgrind test # dist: trusty # install: # - sudo apt-get install -qq valgrind # script: # - make c_standards # - make -C tests test-lz4 test-mem # # - name: (Trusty) c-to-c++ test # dist: trusty # script: # - make ctocpptest # # - name: (Trusty) i386 benchmark + version test # dist: trusty # install: # - sudo apt-get install -qq python3 libc6-dev-i386 gcc-multilib # script: # - make -C tests test-lz4c32 test-fullbench32 versionsTest # # - name: (Trusty) i386 frame + fuzzer test # dist: trusty # install: # - sudo apt-get install -qq libc6-dev-i386 gcc-multilib # - sudo sysctl -w vm.mmap_min_addr=4096 # script: # - make -C tests test-frametest32 test-fuzzer32 # # - name: (Trusty) gcc-6 standard C compilation # dist: trusty # addons: # apt: # sources: # - ubuntu-toolchain-r-test # packages: # - gcc-6 # env: # - CC=gcc-6 # script: # - make c_standards # - make -C tests test-lz4 MOREFLAGS=-Werror # # - name: (Trusty) arm + aarch64 compilation # dist: trusty # install: # - sudo apt-get install -qq # qemu-system-arm # qemu-user-static # gcc-arm-linux-gnueabi # libc6-dev-armel-cross # gcc-aarch64-linux-gnu # libc6-dev-arm64-cross # script: # - make platformTest CC=arm-linux-gnueabi-gcc QEMU_SYS=qemu-arm-static # - make platformTest CC=aarch64-linux-gnu-gcc QEMU_SYS=qemu-aarch64-static # - name: aarch64 real-hw tests arch: arm64 script: - make test - name: PPC64LE real-hw tests arch: ppc64le script: - make test - name: IBM s390x real-hw tests arch: s390x script: - make test # - name: (Xenial) gcc-5 compilation # dist: xenial # install: # - sudo apt-get install -qq libc6-dev-i386 gcc-multilib # script: # - make -C tests test-lz4 clean test-lz4c32 MOREFLAGS=-Werror # # - name: (Trusty) clang-3.8 compilation # dist: trusty # addons: # apt: # sources: # - ubuntu-toolchain-r-test # - llvm-toolchain-precise-3.8 # packages: # - clang-3.8 # script: # - make -C tests test-lz4 CC=clang-3.8 # # - name: (Trusty) PowerPC + PPC64 compilation # dist: trusty # install: # - sudo apt-get install -qq qemu-system-ppc qemu-user-static gcc-powerpc-linux-gnu # script: # - make platformTest CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc-static # - make platformTest CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc64-static MOREFLAGS=-m64 # # - name: (Trusty) scan-build + cppcheck # dist: trusty # compiler: clang # install: # - sudo apt-get install -qq cppcheck # script: # - make staticAnalyze # - make cppcheck # # - name: (Trusty) gcc-4.4 compilation # dist: trusty # addons: # apt: # sources: # - ubuntu-toolchain-r-test # packages: # - libc6-dev-i386 # - gcc-multilib # - gcc-4.4 # script: # - make clean all CC=gcc-4.4 MOREFLAGS=-Werror # - make clean # - CFLAGS=-fPIC LDFLAGS='-pie -fPIE -D_FORTIFY_SOURCE=2' make -C programs # tag-specific test - name: tag build if: tag =~ ^v[0-9]\.[0-9] os: linux script: - make -C tests checkTag - tests/checkTag "$TRAVIS_BRANCH" # - name: (Xenial) Meson + clang build # #env: ALLOW_FAILURES=true # dist: xenial # language: cpp # compiler: clang # install: # - sudo apt-get install -qq python3 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 'https://bootstrap.pypa.io/get-pip.py' && # python3 ~/get-pip.py --user && # pip3 install --user meson # script: # - | # meson setup \ # --buildtype=debug \ # -Db_lundef=false \ # -Dauto_features=enabled \ # -Ddefault_library=both \ # -Dbin_programs=true \ # -Dbin_contrib=true \ # -Dbin_tests=true \ # -Dbin_examples=true \ # contrib/meson build # - pushd build # - DESTDIR=./staging ninja install # - tree ./staging # oss-fuzz compilation test - name: Compile OSS-Fuzz targets script: - ./ossfuzz/travisoss.sh # Unicode lint # See https://github.com/lz4/lz4/issues/1018 - name: Run Unicode lint script: - ./tests/unicode_lint.sh allow_failures: - env: ALLOW_FAILURES=true