blob: 4656cbbc61f04b0746ade0294986aa323b9ff2cc [file] [log] [blame]
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