185 lines
7.4 KiB
YAML
185 lines
7.4 KiB
YAML
#############################################################################
|
|
# #
|
|
# Travis-ci test-suite for LibTomMath #
|
|
# (https://github.com/libtom/libtommath.git) #
|
|
# #
|
|
#############################################################################
|
|
|
|
# Run the tests based on Ubuntu 16.04
|
|
dist: xenial
|
|
|
|
# Compilation failures are in gcc_errors_*.log
|
|
# Failed tests in test_*.log
|
|
# Files do not exist in case of success
|
|
after_failure:
|
|
- cat test_*.log
|
|
- cat valgrind_test.log
|
|
- cat gcc_errors_*.log
|
|
|
|
# In case of a Travis error a success might get signaled
|
|
# even without any test run. This file also keeps any notes
|
|
# printed from the tests which might come handy from time
|
|
# to time.
|
|
# Valgrid will print its output to stderr which will not show up
|
|
# in test_*.log. testme.sh accepts one additional option to
|
|
# valgrind and "--valgrind-options=--log-fd=1" sends the output
|
|
# of Valgrind to stdout instead.
|
|
after_success:
|
|
- cat test_*.log
|
|
|
|
# Tests restricted to the following branches of LTM.
|
|
branches:
|
|
only:
|
|
- master
|
|
- develop
|
|
- /^release/
|
|
- /^travis/
|
|
|
|
# Additional installs: Valgrind for memory tests.
|
|
install:
|
|
- sudo apt-get update -qq
|
|
- sudo apt-get install valgrind
|
|
- apt-cache search gcc | grep '^gcc-[0-9\.]* '
|
|
- apt-cache search clang | grep compiler
|
|
|
|
# The language is C and it will load the respective dependencies
|
|
language: c
|
|
|
|
# The actual workspace. Will run the individual jobs in parallel
|
|
# which also means that the jobs must be able to run in parallel.
|
|
# Either specify sets which will be combined or, as in this case,
|
|
# specify all builds individually. The number of jobs is currently
|
|
# restricted to 200 jobs at most.
|
|
matrix:
|
|
# Will mark as finished if all of the remaining tests are allowed to fail
|
|
# or one test has failed already.
|
|
fast_finish: true
|
|
|
|
# The individual jobs
|
|
include:
|
|
# The environment given to the programs in the build
|
|
# We have only one program and the variable $BUILDOPTIONS
|
|
# has only the options to that program: testme.sh
|
|
|
|
# Check c89 <-> c99 roundtrip
|
|
- env: BUILDOPTIONS='--c89-c99-roundtrip'
|
|
|
|
# Check source code format
|
|
- env: BUILDOPTIONS='--format'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- astyle
|
|
|
|
# Run always with valgrind (no sanitizer, but debug info)
|
|
- env: COMPILE_DEBUG=1 BUILDOPTIONS='--with-cc=gcc-4.9 --with-m64 --with-valgrind'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gcc-4.9
|
|
|
|
# GCC for the 32-bit architecture (no valgrind)
|
|
- env: BUILDOPTIONS='--with-cc=gcc-5 --with-m32'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- libc6-dev-i386
|
|
- gcc-multilib
|
|
|
|
# clang for the 32-bit architecture (no valgrind)
|
|
- env: BUILDOPTIONS='--with-cc=clang-7 --with-m32'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- libc6-dev-i386
|
|
- gcc-multilib
|
|
|
|
# RSA superclass with tests (no sanitizer, but debug info)
|
|
- env: COMPILE_DEBUG=1 BUILDOPTIONS='--with-cc=gcc-5 --with-m64 --cflags=-DLTM_NOTHING --cflags=-DSC_RSA_1_WITH_TESTS --with-travis-valgrind'
|
|
|
|
# Test "autotuning", the automatic evaluation and setting of the Toom-Cook cut-offs.
|
|
#- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_16BIT --with-travis-valgrind --make-option=tune'
|
|
#- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_32BIT --with-travis-valgrind --make-option=tune'
|
|
#- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --with-travis-valgrind --make-option=tune'
|
|
#- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_16BIT --with-travis-valgrind --make-option=tune'
|
|
#- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_32BIT --with-travis-valgrind --make-option=tune'
|
|
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --with-travis-valgrind --make-option=tune'
|
|
|
|
# GCC for the x86-64 architecture testing against a different Bigint-implementation
|
|
# with 333333 different inputs.
|
|
#- env: BUILDOPTIONS='--with-cc=gcc-5 --test-vs-mtest=333333 --with-travis-valgrind'
|
|
# ... and a better random source.
|
|
- env: BUILDOPTIONS='--with-cc=gcc-5 --test-vs-mtest=333333 --mtest-real-rand --with-travis-valgrind'
|
|
|
|
# clang for the x86-64 architecture testing against a different Bigint-implementation
|
|
# with 333333 different inputs
|
|
- env: BUILDOPTIONS='--with-cc=clang-7 --test-vs-mtest=333333 --with-travis-valgrind'
|
|
# ... and a better random source.
|
|
#- env: BUILDOPTIONS='--with-cc=clang-7 --test-vs-mtest=333333 --mtest-real-rand --with-travis-valgrind'
|
|
|
|
# GCC for the x64_32 architecture (32-bit longs and 32-bit pointers)
|
|
# TODO: Probably not possible to run anything in x32 in Travis
|
|
# but needs to be checked to be sure.
|
|
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --with-mx32'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- libc6-dev-x32
|
|
- gcc-multilib
|
|
|
|
# GCC for the x86-64 architecture (64-bit longs and 64-bit pointers)
|
|
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --with-m64 --with-travis-valgrind'
|
|
- env: BUILDOPTIONS='--with-cc=gcc-4.7 --with-m64 --with-travis-valgrind'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gcc-4.7
|
|
- env: BUILDOPTIONS='--with-cc=gcc-4.8 --with-m64 --with-travis-valgrind'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gcc-4.8
|
|
|
|
# clang for x86-64 architecture (64-bit longs and 64-bit pointers)
|
|
- env: SANITIZER=1 CONV_WARNINGS=relaxed BUILDOPTIONS='--with-cc=clang-7 --with-m64 --with-travis-valgrind'
|
|
- env: SANITIZER=1 CONV_WARNINGS=strict BUILDOPTIONS='--with-cc=clang-7 --with-m64 --with-travis-valgrind'
|
|
- env: SANITIZER=1 CONV_WARNINGS=strict BUILDOPTIONS='--with-cc=clang-7 --c89 --with-m64 --with-travis-valgrind'
|
|
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-6.0 --with-m64 --with-travis-valgrind'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-6.0
|
|
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-5.0 --with-m64 --with-travis-valgrind'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-5.0
|
|
- env: BUILDOPTIONS='--with-cc=clang-4.0 --with-m64 --with-travis-valgrind'
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-4.0
|
|
|
|
# GCC for the x86-64 architecture with restricted limb sizes
|
|
# formerly started with the option "--with-low-mp" to testme.sh
|
|
# but testing all three in one run took to long and timed out.
|
|
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_16BIT --with-travis-valgrind'
|
|
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_32BIT --with-travis-valgrind'
|
|
|
|
# clang for the x86-64 architecture with restricted limb sizes
|
|
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_16BIT --with-travis-valgrind'
|
|
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_32BIT --with-travis-valgrind'
|
|
|
|
# Notifications go to
|
|
# An email address is also possible.
|
|
notifications:
|
|
irc: "chat.freenode.net#libtom-notifications"
|
|
|
|
# The actual script the jobs run.
|
|
# Because of a default timeout of 10 minutes it was necessary to use
|
|
# a Travis tool to extend that timeout to 40 minutes. 50 minutes
|
|
# seem to be the max and 20 the default if travis_wait is called without
|
|
# any options.
|
|
script:
|
|
- ./testme.sh ${BUILDOPTIONS}
|