blob: fab28664f9f520e4bb3ba1b3ea503ee75484d98d [file] [log] [blame]
language: c
matrix:
fast_finish: true
include:
- name: General linux tests (Xenial)
dist: xenial
before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq clang
- sudo apt-get install -qq g++-multilib
- sudo apt-get install -qq gcc-multilib
- sudo apt-get install -qq cppcheck
script:
- make -B test-all
- name: Check results consistency on x64
script:
- CPPFLAGS=-DXXH_VECTOR=0 make check # Scalar code path
- make clean
- CPPFLAGS=-DXXH_VECTOR=1 make check # SSE2 code path
- make clean
- CPPFLAGS="-mavx2 -DXXH_VECTOR=2" make check # AVX2 code path
- name: ARM + aarch64 compilation and consistency checks
dist: xenial
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:
# arm (32-bit)
- CC=arm-linux-gnueabi-gcc CPPFLAGS=-DXXH_VECTOR=0 LDFLAGS=-static RUN_ENV=qemu-arm-static make check # Scalar code path
- make clean
# Note : the following test (ARM 32-bit + NEON) is disabled for the time being.
# I haven't yet found a way to make it link on Travis CI using gcc cross-compilation.
# NEON code path is fortunately validated through `aarch64` below.
# - CC=arm-linux-gnueabi-gcc CPPFLAGS=-DXXH_VECTOR=3 CFLAGS="-O3 -march=armv7-a -mfloat-abi=hard -mfpu=neon" LDFLAGS=-static RUN_ENV=qemu-arm-static make check # NEON code path
- make clean
# aarch64
- CC=aarch64-linux-gnu-gcc CPPFLAGS=-DXXH_VECTOR=0 LDFLAGS=-static RUN_ENV=qemu-aarch64-static make check # Scalar code path
- make clean
- CC=aarch64-linux-gnu-gcc CPPFLAGS=-DXXH_VECTOR=3 LDFLAGS=-static RUN_ENV=qemu-aarch64-static make check # NEON code path
- make clean
- name: PowerPC + PPC64 compilation and consistency checks
install:
- sudo apt-get install -qq qemu-system-ppc qemu-user-static gcc-powerpc-linux-gnu
script:
- CC=powerpc-linux-gnu-gcc RUN_ENV=qemu-ppc-static CPPFLAGS=-m32 LDFLAGS=-static make check # Only scalar code path available
- make clean
- CC=powerpc-linux-gnu-gcc RUN_ENV=qemu-ppc64-static CFLAGS="-O3 -m64" LDFLAGS="-static -m64" make check # Only scalar code path available
- make clean