pqc/.travis.yml
Kris Kwiatkowski eb4d7cb69a Enable address and UB sanitizers
This enables address sanitizer and undefined behaviour sanitizer,
but disables leak detection sanitizer.
It seema there is an issue in qemu that we are using, which prevents
spawning leaksanitizer's tracer thread. But as leak detection is
already done by valgrind on x86 build, this functionality is not
absolute need at the moment.
2019-02-19 10:39:44 +00:00

105 lines
3.1 KiB
YAML

language: c
dist: xenial
matrix:
include:
- name: "Linux + GCC + Linting"
os: linux
compiler: gcc
env:
- MAKETARGET="test-all tidy-all check-format"
addons:
apt:
packages: &xenial-packages
- astyle
- python3-yaml
- python3-nose
- python3-rednose
- valgrind
- name: "Linux + Clang"
os: linux
compiler: clang
env:
- MAKETARGET=test-all
addons:
apt:
packages: *xenial-packages
- name: "Linux 32-bit GCC"
os: linux
compiler: gcc # Clang has i386-libasan problems on xenial
addons:
apt:
packages: # no way to re-use xenial-packages with lists :(
- astyle
- gcc-multilib
- python3-yaml
- python3-nose
- python3-rednose
- valgrind
before_install:
- sudo dpkg --add-architecture i386
- sudo apt update -qq && sudo apt-get install -qqy libc6-dbg:i386
env:
- MAKETARGET=test-all
- EXTRAFLAGS=-m32
- name: "Run tests on qemu-ppc (GCC)"
os: linux
services: docker
env:
- MAKETARGET="run-functest-all run-sanitizer-all"
script:
- docker run --rm --privileged multiarch/qemu-user-static:register --reset
- docker run --rm -v `pwd`:`pwd` -w `pwd` "pqclean/debian-unstable-ppc" /bin/bash -c "uname -a &&
make ${MAKETARGET} &&
cd test && python3 -m nose --rednose --verbose"
- name: "Run tests on qemu-arm32 (GCC)"
os: linux
services: docker
env:
- MAKETARGET="run-functest-all run-sanitizer-all"
script:
- docker run --rm --privileged multiarch/qemu-user-static:register --reset
- docker run --rm -v `pwd`:`pwd` -w `pwd` "pqclean/debian-buster-arm" /bin/bash -c "uname -a &&
ASAN_OPTIONS=detect_leaks=0 make ${MAKETARGET} &&
cd test && python3 -m nose --rednose --verbose"
- name: "Run tests on qemu-aarch64 (GCC)"
os: linux
services: docker
env:
- MAKETARGET="run-functest-all run-sanitizer-all"
script:
- docker run --rm --privileged multiarch/qemu-user-static:register --reset
- docker run --rm -v `pwd`:`pwd` -w `pwd` "pqclean/debian-buster-aarch64" /bin/bash -c "uname -a &&
ASAN_OPTIONS=detect_leaks=0 make ${MAKETARGET} &&
cd test && python3 -m nose --rednose --verbose"
- name: "MacOS + Clang"
os: osx
osx_image: xcode10.1
compiler: clang
before_install:
- pip3 install -r requirements.txt
env:
- MAKETARGET=test-all
- name: "MacOS + GCC8"
os: osx
osx_image: xcode10.1
compiler: gcc
addons:
homebrew:
packages:
- gcc@8
before_install:
- pip3 install -r requirements.txt
- gcc --version
env:
- MAKETARGET=test-all
script:
- make ${MAKETARGET}
- cd test && python3 -m nose --rednose --verbose
cache: pip
# vim: set ft=yaml ts=2 sw=2 tw=0 et :