Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/.travis.yml
language: c | language: c | ||||
os: linux | os: | ||||
dist: xenial | - linux | ||||
- osx | |||||
dist: bionic | |||||
# Valgrind currently supports upto macOS 10.13, the latest xcode of that version is 10.1 | |||||
osx_image: xcode10.1 | |||||
addons: | addons: | ||||
apt: | apt: | ||||
packages: | packages: | ||||
- gcc-multilib | - gcc-multilib | ||||
- libc6-dbg:i386 | - libc6-dbg:i386 | ||||
- libgmp-dev | - libgmp-dev | ||||
- libgmp-dev:i386 | - libgmp-dev:i386 | ||||
- libtool-bin | - libtool-bin | ||||
- ninja-build | - ninja-build | ||||
- valgrind | - valgrind | ||||
homebrew: | |||||
packages: | |||||
- cmake | |||||
- gcc@9 | |||||
- gmp | |||||
- ninja | |||||
- valgrind | |||||
update: true | |||||
install: | install: | ||||
- ./travis/install_cmake.sh | - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then ./travis/install_cmake.sh; fi | ||||
cache: | cache: | ||||
directories: | directories: | ||||
- /opt/cmake | - /opt/cmake | ||||
compiler: | compiler: | ||||
- clang | - clang | ||||
- gcc | - gcc | ||||
env: | env: | ||||
global: | global: | ||||
Show All 13 Lines | global: | ||||
- RECOVERY=no | - RECOVERY=no | ||||
- SCHNORR=yes | - SCHNORR=yes | ||||
- EXPERIMENTAL=no | - EXPERIMENTAL=no | ||||
- JNI=no | - JNI=no | ||||
- OPENSSL_TESTS=auto | - OPENSSL_TESTS=auto | ||||
- MULTISET=no | - MULTISET=no | ||||
- CTIMETEST=yes | - CTIMETEST=yes | ||||
- BENCH=yes | - BENCH=yes | ||||
- SECP256K1_BENCH_ITERS=2 | - ITERS=2 | ||||
jobs: | jobs: | ||||
- SCALAR=32bit RECOVERY=yes | - SCALAR=32bit RECOVERY=yes | ||||
- SCALAR=32bit FIELD=32bit ECDH=yes EXPERIMENTAL=yes MULTISET=yes | - SCALAR=32bit FIELD=32bit ECDH=yes EXPERIMENTAL=yes MULTISET=yes | ||||
- SCALAR=64bit | - SCALAR=64bit | ||||
- FIELD=64bit RECOVERY=yes | - FIELD=64bit RECOVERY=yes | ||||
- FIELD=64bit ENDOMORPHISM=yes | - FIELD=64bit ENDOMORPHISM=yes | ||||
- FIELD=64bit ENDOMORPHISM=yes ECDH=yes EXPERIMENTAL=yes MULTISET=yes | - FIELD=64bit ENDOMORPHISM=yes ECDH=yes EXPERIMENTAL=yes MULTISET=yes | ||||
- FIELD=64bit ASM=x86_64 | - FIELD=64bit ASM=x86_64 | ||||
- FIELD=64bit ENDOMORPHISM=yes ASM=x86_64 | - FIELD=64bit ENDOMORPHISM=yes ASM=x86_64 | ||||
- FIELD=32bit ENDOMORPHISM=yes | - FIELD=32bit ENDOMORPHISM=yes | ||||
- BIGNUM=no | - BIGNUM=no | ||||
- BIGNUM=no ENDOMORPHISM=yes RECOVERY=yes EXPERIMENTAL=yes MULTISET=yes | - BIGNUM=no ENDOMORPHISM=yes RECOVERY=yes EXPERIMENTAL=yes MULTISET=yes | ||||
- BIGNUM=no STATICPRECOMPUTATION=no | - BIGNUM=no STATICPRECOMPUTATION=no | ||||
- AUTOTOOLS_TARGET=distcheck CMAKE_TARGET=install CTIMETEST= BENCH= | - AUTOTOOLS_TARGET=distcheck CMAKE_TARGET=install CTIMETEST= BENCH= | ||||
- AUTOTOOLS_EXTRA_FLAGS=CPPFLAGS=-DDETERMINISTIC CMAKE_EXTRA_FLAGS=-DCMAKE_C_FLAGS=-DDETERMINISTIC | - AUTOTOOLS_EXTRA_FLAGS=CPPFLAGS=-DDETERMINISTIC CMAKE_EXTRA_FLAGS=-DCMAKE_C_FLAGS=-DDETERMINISTIC | ||||
- AUTOTOOLS_EXTRA_FLAGS=CFLAGS=-O0 CMAKE_EXTRA_FLAGS=-DCMAKE_BUILD_TYPE=Debug | - AUTOTOOLS_EXTRA_FLAGS=CFLAGS=-O0 CMAKE_EXTRA_FLAGS=-DCMAKE_BUILD_TYPE=Debug CTIMETEST= | ||||
- AUTOTOOLS_TARGET=check-java CMAKE_TARGET=check-secp256k1-java JNI=yes ECDH=yes EXPERIMENTAL=yes CTIMETEST= BENCH= | - AUTOTOOLS_TARGET=check-java CMAKE_TARGET=check-secp256k1-java JNI=yes ECDH=yes EXPERIMENTAL=yes CTIMETEST= BENCH= | ||||
- ECMULTGENPRECISION=2 | - ECMULTGENPRECISION=2 | ||||
- ECMULTGENPRECISION=8 | - ECMULTGENPRECISION=8 | ||||
- VALGRIND=yes | |||||
BIGNUM=no ENDOMORPHISM=yes ASM=x86_64 EXPERIMENTAL=yes ECDH=yes RECOVERY=yes OPENSSL_TESTS=no MULTISET=yes | |||||
AUTOTOOLS_EXTRA_FLAGS=CPPFLAGS=-DVALGRIND AUTOTOOLS_TARGET= | |||||
CMAKE_EXTRA_FLAGS=-DCMAKE_C_FLAGS=-DVALGRIND CMAKE_TARGET="secp256k1-tests secp256k1-exhaustive_tests" | |||||
# The same as above but without endomorphism. | |||||
- VALGRIND=yes | |||||
BIGNUM=no ASM=x86_64 EXPERIMENTAL=yes ECDH=yes RECOVERY=yes OPENSSL_TESTS=no MULTISET=yes | |||||
AUTOTOOLS_EXTRA_FLAGS=CPPFLAGS=-DVALGRIND AUTOTOOLS_TARGET= | |||||
CMAKE_EXTRA_FLAGS=-DCMAKE_C_FLAGS=-DVALGRIND CMAKE_TARGET="secp256k1-tests secp256k1-exhaustive_tests" | |||||
- SCHNORR=no | - SCHNORR=no | ||||
jobs: | jobs: | ||||
fast_finish: true | fast_finish: true | ||||
include: | include: | ||||
- compiler: clang | - compiler: clang | ||||
os: linux | |||||
env: HOST=i686-linux-gnu ENDOMORPHISM=yes OPENSSL_TESTS=no | env: HOST=i686-linux-gnu ENDOMORPHISM=yes OPENSSL_TESTS=no | ||||
- compiler: clang | - compiler: clang | ||||
os: linux | |||||
env: HOST=i686-linux-gnu BIGNUM=no OPENSSL_TESTS=no | env: HOST=i686-linux-gnu BIGNUM=no OPENSSL_TESTS=no | ||||
- compiler: gcc | - compiler: gcc | ||||
os: linux | |||||
env: HOST=i686-linux-gnu ENDOMORPHISM=yes BIGNUM=no OPENSSL_TESTS=no | env: HOST=i686-linux-gnu ENDOMORPHISM=yes BIGNUM=no OPENSSL_TESTS=no | ||||
- compiler: gcc | - compiler: gcc | ||||
os: linux | |||||
env: HOST=i686-linux-gnu OPENSSL_TESTS=no | env: HOST=i686-linux-gnu OPENSSL_TESTS=no | ||||
- compiler: gcc | |||||
env: | |||||
- VALGRIND=yes | |||||
- BIGNUM=no ENDOMORPHISM=yes ASM=x86_64 EXPERIMENTAL=yes ECDH=yes RECOVERY=yes OPENSSL_TESTS=no MULTISET=yes | |||||
- AUTOTOOLS_EXTRA_FLAGS=CPPFLAGS=-DVALGRIND AUTOTOOLS_TARGET= | |||||
- CMAKE_EXTRA_FLAGS=-DCMAKE_C_FLAGS=-DVALGRIND CMAKE_TARGET="secp256k1-tests secp256k1-exhaustive_tests" | |||||
- compiler: gcc | |||||
env: # The same as above but without endomorphism. | |||||
- VALGRIND=yes | |||||
- BIGNUM=no ENDOMORPHISM=no ASM=x86_64 EXPERIMENTAL=yes ECDH=yes RECOVERY=yes OPENSSL_TESTS=no MULTISET=yes | |||||
- AUTOTOOLS_EXTRA_FLAGS=CPPFLAGS=-DVALGRIND AUTOTOOLS_TARGET= | |||||
- CMAKE_EXTRA_FLAGS=-DCMAKE_C_FLAGS=-DVALGRIND CMAKE_TARGET="secp256k1-tests secp256k1-exhaustive_tests" | |||||
before_script: | |||||
# This limits the iterations in the benchmarks below to ITER iterations. | |||||
- export SECP256K1_BENCH_ITERS="$ITERS" | |||||
# travis auto terminates jobs that go for 10 minutes without printing to stdout, | |||||
# but travis_wait doesn't work well with forking programs like valgrind | |||||
# (https://docs.travis-ci.com/user/common-build-problems/#build-times-out-because-no-output-was-received https://github.com/bitcoin-core/secp256k1/pull/750#issuecomment-623476860) | |||||
script: | script: | ||||
- function keep_alive() { while true; do echo -en "\a"; sleep 60; done } | |||||
- keep_alive & | |||||
- ./travis/build_autotools.sh | - ./travis/build_autotools.sh | ||||
- ./travis/build_cmake.sh | - ./travis/build_cmake.sh | ||||
- # travis_wait extends the 10 minutes without output allowed (https://docs.travis-ci.com/user/common-build-problems/#build-times-out-because-no-output-was-received) | - kill %keep_alive | ||||
- # the `--error-exitcode` is required to make the test fail if valgrind found errors, otherwise it'll return 0 (http://valgrind.org/docs/manual/manual-core.html) | |||||
- if [ -n "$VALGRIND" ]; then | after_script: | ||||
travis_wait 30 valgrind --error-exitcode=42 ./buildautotools/tests 16 && | - valgrind --version | ||||
travis_wait 30 valgrind --error-exitcode=42 ./buildautotools/exhaustive_tests; | |||||
fi | |||||
- if [ -n "$VALGRIND" ]; then | |||||
travis_wait 30 valgrind --error-exitcode=42 ./buildcmake/secp256k1-tests 16 && | |||||
travis_wait 30 valgrind --error-exitcode=42 ./buildcmake/secp256k1-exhaustive_tests; | |||||
fi |