6654c2cd3b
It's now possible to select a custom LZ4_DISTANCE_MAX at compile time, provided it's <= 65535. However, in some cases (when compressing in byU16 mode), the new distance wasn't respected, as it used to implied that it was necessarily within range. Added a distance check for this case. Also : added a new TravisCI test which ensures that custom LZ4_DISTANCE_MAX compiles correctly and compresses correctly (relying on `assert()` to find outsized offsets).
221 lines
6.1 KiB
YAML
221 lines
6.1 KiB
YAML
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 -C tests test-lz4 MOREFLAGS='-Werror -Wconversion -Wno-sign-conversion' | tee # test scenario where `stdout` is not the console
|
|
- make clean
|
|
- CFLAGS=-m32 make -C tests test-lz4-contentSize
|
|
|
|
# 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
|
|
script:
|
|
- MOREFLAGS=-DLZ4_DISTANCE_MAX=8000 make check
|
|
|
|
- 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
|
|
|
|
|
|
# 14.04 LTS Server Edition 64 bit
|
|
- name: (Trusty) i386 gcc test
|
|
dist: trusty
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- libc6-dev-i386
|
|
- gcc-multilib
|
|
script:
|
|
- make -C tests test MOREFLAGS=-mx32
|
|
|
|
# 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: (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
|