160 lines
5.1 KiB
YAML
160 lines
5.1 KiB
YAML
language: generic
|
|
|
|
sudo: false
|
|
|
|
matrix:
|
|
include:
|
|
# clang++ 4.0 via mason with -flto and -fsanitize=cfi
|
|
- os: linux
|
|
compiler: "clang++-40-mason"
|
|
env: CXX=clang++-4.0 CXXFLAGS="-flto -fsanitize=cfi -fvisibility=hidden" LDFLAGS="-flto -fsanitize=cfi -fvisibility=hidden"
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test' ]
|
|
packages: [ 'libstdc++-4.9-dev' ]
|
|
before_install:
|
|
- git submodule update --init
|
|
- ./.mason/mason install clang++ 4.0.1
|
|
- export PATH=$(./.mason/mason prefix clang++ 4.0.1)/bin:${PATH}
|
|
- ./.mason/mason install binutils 2.27
|
|
- export PATH=$(./.mason/mason prefix binutils 2.27)/bin:${PATH}
|
|
# clang++ 4.0 via mason with -fsanitize=address
|
|
- os: linux
|
|
compiler: "clang++-40-mason"
|
|
env: CXX=clang++-4.0 CXXFLAGS="-fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer -fno-common" LDFLAGS="-fsanitize=address" ASAN_OPTIONS=check_initialization_order=1:detect_stack_use_after_return=1
|
|
sudo: required
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test' ]
|
|
packages: [ 'libstdc++-4.9-dev' ]
|
|
before_install:
|
|
- git submodule update --init
|
|
- ./.mason/mason install clang++ 4.0.1
|
|
- export PATH=$(./.mason/mason prefix clang++ 4.0.1)/bin:${PATH}
|
|
# clang++ 4.0 via mason with -fsanitize=undefined
|
|
- os: linux
|
|
compiler: "clang++-40-mason"
|
|
env: CXX=clang++-4.0 CXXFLAGS="-fsanitize=undefined" LDFLAGS="-fsanitize=undefined"
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test' ]
|
|
packages: [ 'libstdc++-4.9-dev' ]
|
|
before_install:
|
|
- git submodule update --init
|
|
- ./.mason/mason install clang++ 4.0.1
|
|
- export PATH=$(./.mason/mason prefix clang++ 4.0.1)/bin:${PATH}
|
|
# clang++ 4.0 via mason with -fsanitize=integer
|
|
- os: linux
|
|
compiler: "clang++-40-mason"
|
|
env: CXX=clang++-4.0 CXXFLAGS="-fsanitize=integer" LDFLAGS="-fsanitize=integer"
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test' ]
|
|
packages: [ 'libstdc++-4.9-dev' ]
|
|
before_install:
|
|
- git submodule update --init
|
|
- ./.mason/mason install clang++ 4.0.1
|
|
- export PATH=$(./.mason/mason prefix clang++ 4.0.1)/bin:${PATH}
|
|
# clang++ 4.0 via mason with -fsanitize=safe-stack
|
|
- os: linux
|
|
compiler: "clang++-40-mason"
|
|
env: CXX=clang++-4.0 CXXFLAGS="-fsanitize=safe-stack" LDFLAGS="-fsanitize=safe-stack"
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test' ]
|
|
packages: [ 'libstdc++-4.9-dev' ]
|
|
before_install:
|
|
- git submodule update --init
|
|
- ./.mason/mason install clang++ 4.0.1
|
|
- export PATH=$(./.mason/mason prefix clang++ 4.0.1)/bin:${PATH}
|
|
- os: osx
|
|
osx_image: xcode8
|
|
env: OSX_OLDEST_SUPPORTED=10.7 TEST_GYP_BUILD=True
|
|
compiler: clang
|
|
- os: osx
|
|
osx_image: xcode8
|
|
env: OSX_OLDEST_SUPPORTED=10.12
|
|
compiler: clang
|
|
- os: linux
|
|
compiler: "clang35"
|
|
env: CXX=clang++-3.5 COVERAGE=True
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.5' ]
|
|
packages: [ 'clang-3.5', 'libstdc++-4.9-dev' ]
|
|
- os: linux
|
|
compiler: "clang36"
|
|
env: CXX=clang++-3.6
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6' ]
|
|
packages: [ 'clang-3.6' ]
|
|
- os: linux
|
|
compiler: "gcc48"
|
|
env: CXX=g++-4.8
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test' ]
|
|
packages: [ 'g++-4.8' ]
|
|
- os: linux
|
|
compiler: "gcc49"
|
|
env: CXX=g++-4.9
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test' ]
|
|
packages: [ 'g++-4.9' ]
|
|
- os: linux
|
|
compiler: "gcc5"
|
|
env: CXX=g++-5
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test' ]
|
|
packages: [ 'g++-5' ]
|
|
- os: linux
|
|
compiler: "gcc6"
|
|
env: CXX=g++-6 CXX_STD=c++14
|
|
addons:
|
|
apt:
|
|
sources: [ 'ubuntu-toolchain-r-test' ]
|
|
packages: [ 'g++-6' ]
|
|
|
|
install:
|
|
- echo ${CXX}
|
|
- if [[ $(uname -s) == 'Linux' ]]; then
|
|
export PYTHONPATH=$(pwd)/.local/lib/python2.7/site-packages;
|
|
else
|
|
export PYTHONPATH=$(pwd)/.local/lib/python/site-packages;
|
|
fi
|
|
- if [[ ${COVERAGE:-0} == 'True' ]]; then
|
|
PYTHONUSERBASE=$(pwd)/.local pip install --user cpp-coveralls;
|
|
fi
|
|
|
|
script:
|
|
# Build in Release
|
|
- make
|
|
- make test
|
|
- make bench
|
|
- make sizes
|
|
- scripts/run_compilation_failure_tests.sh
|
|
- make clean;
|
|
# Build in Debug
|
|
- export BUILDTYPE=Debug
|
|
- make
|
|
- make test
|
|
- make bench
|
|
- make sizes
|
|
- scripts/run_compilation_failure_tests.sh
|
|
- if [[ ${TEST_GYP_BUILD:-0} == 'True' ]]; then
|
|
make clean;
|
|
make gyp;
|
|
fi
|
|
|
|
after_script:
|
|
- if [[ ${COVERAGE:-0} == 'True' ]]; then
|
|
make clean;
|
|
make coverage;
|
|
./out/cov-test;
|
|
cp unit*gc* test/;
|
|
./.local/bin/cpp-coveralls --gcov /usr/bin/llvm-cov-3.5 --gcov-options '\-lp' -i optional.hpp -i recursive_wrapper.hpp -i variant.hpp -i variant_io.hpp variant_cast.hpp;
|
|
fi
|