language: c sudo: false cache: directories: - $HOME/.cache/pip - $HOME/deps matrix: include: - os: linux compiler: gcc env: BUILD_TYPE=normal - os: linux compiler: clang env: BUILD_TYPE=normal - os: linux compiler: gcc env: BUILD_TYPE=coverage - os: linux compiler: clang env: BUILD_TYPE=ubsan - os: linux compiler: clang env: BUILD_TYPE=asan - os: linux compiler: clang env: BUILD_TYPE=lsan - os: linux compiler: clang env: BUILD_TYPE=msan - os: osx compiler: gcc env: BUILD_TYPE=normal - os: osx compiler: clang env: BUILD_TYPE=normal install: - pip install --user 'requests[security]' - pip install --user cpp-coveralls - | mkdir -p deps pushd deps export PREFIXDIR=`pwd` if [ ! -f "libtool-2.4.6.tar.xz" ]; then wget http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.xz fi if [ ! -f "automake-1.15.tar.xz" ]; then wget http://ftp.gnu.org/gnu/automake/automake-1.15.tar.xz fi if [ ! -d "libtool-2.4.6" ]; then tar xf libtool-2.4.6.tar.xz pushd libtool-2.4.6/ ./configure --prefix=$PREFIXDIR make && make install popd cp $PREFIXDIR/bin/libtool $PREFIXDIR/bin/glibtool cp $PREFIXDIR/bin/libtoolize $PREFIXDIR/bin/glibtoolize fi if [ ! -d "automake-1.15" ]; then tar xf automake-1.15.tar.xz pushd automake-1.15/ ./configure --prefix=$PREFIXDIR make && make install popd fi export PATH="$PREFIXDIR/bin:$PATH" popd before_script: - | if [ "$BUILD_TYPE" = "coverage" ]; then export CFLAGS="-fprofile-arcs -ftest-coverage" export LDFLAGS="-fprofile-arcs -ftest-coverage" fi - | if [ "$BUILD_TYPE" = "asan" ]; then export CFLAGS=-fsanitize=address export LDFLAGS=-fsanitize=address fi - | if [ "$BUILD_TYPE" = "lsan" ]; then export CFLAGS=-fsanitize=leak export LDFLAGS=-fsanitize=leak fi - | if [ "$BUILD_TYPE" = "msan" ]; then export CFLAGS=-fsanitize=memory export LDFLAGS=-fsanitize=memory fi - | if [ "$BUILD_TYPE" = "ubsan" ]; then export CFLAGS="-fsanitize=undefined -fno-sanitize-recover" export LDFLAGS="-fsanitize=undefined" fi script: - ./autogen.sh && ./configure && make && make check - | if [ "$BUILD_TYPE" = "coverage" ]; then cpp-coveralls --gcov-options '\-lp' fi