mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00

Avoid a couple of redundant rebuilds and compile with 2 threads since travis gives 2vCPUs. Also enable -O1 optimization for valgrind and sanitizers, it should be safe withouth false positives and it gives a very sensible speed up, especially with valgrind. The spee dup allow us to increase testing to depth 10, useful for thread sanitizer. No functional change.
71 lines
2.4 KiB
YAML
71 lines
2.4 KiB
YAML
language: cpp
|
|
sudo: required
|
|
dist: trusty
|
|
|
|
matrix:
|
|
include:
|
|
- os: linux
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
sources: ['ubuntu-toolchain-r-test']
|
|
packages: ['g++-6', 'g++-6-multilib', 'g++-multilib', 'valgrind', 'expect']
|
|
env:
|
|
- COMPILER=g++-6
|
|
- COMP=gcc
|
|
|
|
- os: linux
|
|
compiler: clang
|
|
addons:
|
|
apt:
|
|
sources: ['ubuntu-toolchain-r-test']
|
|
packages: ['clang', 'g++-multilib', 'valgrind', 'expect']
|
|
env:
|
|
- COMPILER=clang++
|
|
- COMP=clang
|
|
|
|
- os: osx
|
|
compiler: gcc
|
|
env:
|
|
- COMPILER=g++
|
|
- COMP=gcc
|
|
|
|
- os: osx
|
|
compiler: clang
|
|
env:
|
|
- COMPILER=clang++ V='Apple LLVM 6.0' # Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
|
|
- COMP=clang
|
|
|
|
branches:
|
|
only:
|
|
- master
|
|
|
|
before_script:
|
|
- cd src
|
|
|
|
script:
|
|
# Obtain bench reference from git log
|
|
- git log HEAD | grep "\b[Bb]ench[ :]\+[0-9]\{7\}" | head -n 1 | sed "s/[^0-9]*\([0-9][0-9]*\)/\1/g" > git_sig
|
|
- export benchref=$(cat git_sig)
|
|
- echo "Reference bench:" $benchref
|
|
#
|
|
# Verify bench number against various builds
|
|
- make clean && make -j2 ARCH=x86-64 optimize=no debug=yes build > /dev/null && ../tests/signature.sh $benchref
|
|
- make clean && make -j2 ARCH=x86-32 optimize=no debug=yes build > /dev/null && ../tests/signature.sh $benchref
|
|
- make clean && make -j2 ARCH=x86-32 build > /dev/null && ../tests/signature.sh $benchref
|
|
- make clean && make -j2 ARCH=x86-64 build > /dev/null && ../tests/signature.sh $benchref
|
|
#
|
|
# Check perft and reproducible search
|
|
- ../tests/perft.sh
|
|
- ../tests/reprosearch.sh
|
|
#
|
|
# Valgrind
|
|
#
|
|
- export CXXFLAGS=-O1
|
|
- if [ -x "$(command -v valgrind )" ]; then make clean && make -j2 ARCH=x86-64 debug=yes optimize=no build > /dev/null && ../tests/instrumented.sh --valgrind; fi
|
|
#
|
|
# Sanitizer
|
|
#
|
|
# Use g++-6 as a proxy for having sanitizers, might need revision as they become available for more recent versions of clang/gcc
|
|
- if [[ "$COMPILER" == "g++-6" ]]; then make clean && make -j2 ARCH=x86-64 sanitize=undefined optimize=no debug=yes build > /dev/null && ../tests/instrumented.sh --sanitizer-undefined; fi
|
|
- if [[ "$COMPILER" == "g++-6" ]]; then make clean && make -j2 ARCH=x86-64 sanitize=thread optimize=no debug=yes build > /dev/null && ../tests/instrumented.sh --sanitizer-thread; fi
|