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 ; Build lz4-wlib (CLI linked to dynamic library) script: - MOREFLAGS=-DLZ4_DISTANCE_MAX=8000 make check - make clean - make -C programs lz4-wlib - name: (Precise) g++ and clang CMake test dist: precise script: - make gpptest - 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 allow_failures: - env: ALLOW_FAILURES=true