]> Git Repo - secp256k1.git/blob - .travis.yml
Merge #710: Eliminate harmless non-constant time operations on secret data.
[secp256k1.git] / .travis.yml
1 language: c
2 os: linux
3 addons:
4   apt:
5     packages:
6       - libgmp-dev
7       - valgrind
8 compiler:
9   - clang
10   - gcc
11 env:
12   global:
13     - FIELD=auto  BIGNUM=auto  SCALAR=auto  ENDOMORPHISM=no  STATICPRECOMPUTATION=yes  ECMULTGENPRECISION=auto  ASM=no  BUILD=check  EXTRAFLAGS=  HOST=  ECDH=no  RECOVERY=no  EXPERIMENTAL=no
14   matrix:
15     - SCALAR=32bit    RECOVERY=yes
16     - SCALAR=32bit    FIELD=32bit       ECDH=yes  EXPERIMENTAL=yes
17     - SCALAR=64bit
18     - FIELD=64bit     RECOVERY=yes
19     - FIELD=64bit     ENDOMORPHISM=yes
20     - FIELD=64bit     ENDOMORPHISM=yes  ECDH=yes EXPERIMENTAL=yes
21     - FIELD=64bit                       ASM=x86_64
22     - FIELD=64bit     ENDOMORPHISM=yes  ASM=x86_64
23     - FIELD=32bit     ENDOMORPHISM=yes
24     - BIGNUM=no
25     - BIGNUM=no       ENDOMORPHISM=yes RECOVERY=yes EXPERIMENTAL=yes
26     - BIGNUM=no       STATICPRECOMPUTATION=no
27     - BUILD=distcheck
28     - EXTRAFLAGS=CPPFLAGS=-DDETERMINISTIC
29     - EXTRAFLAGS=CFLAGS=-O0
30     - ECMULTGENPRECISION=2
31     - ECMULTGENPRECISION=8
32 matrix:
33   fast_finish: true
34   include:
35     - compiler: clang
36       env: HOST=i686-linux-gnu ENDOMORPHISM=yes
37       addons:
38         apt:
39           packages:
40             - gcc-multilib
41             - libgmp-dev:i386
42     - compiler: clang
43       env: HOST=i686-linux-gnu
44       addons:
45         apt:
46           packages:
47             - gcc-multilib
48     - compiler: gcc
49       env: HOST=i686-linux-gnu ENDOMORPHISM=yes
50       addons:
51         apt:
52           packages:
53             - gcc-multilib
54     - compiler: gcc
55       env: HOST=i686-linux-gnu
56       addons:
57         apt:
58           packages:
59             - gcc-multilib
60             - libgmp-dev:i386
61     - compiler: gcc
62       env:
63         - BIGNUM=no  ENDOMORPHISM=yes  ASM=x86_64 EXPERIMENTAL=yes ECDH=yes  RECOVERY=yes
64         - VALGRIND=yes EXTRAFLAGS="--disable-openssl-tests CPPFLAGS=-DVALGRIND" BUILD=
65     - compiler: gcc
66       env: # The same as above but without endomorphism.
67         - BIGNUM=no  ENDOMORPHISM=no  ASM=x86_64 EXPERIMENTAL=yes ECDH=yes  RECOVERY=yes
68         - VALGRIND=yes EXTRAFLAGS="--disable-openssl-tests CPPFLAGS=-DVALGRIND" BUILD=
69
70 before_script: ./autogen.sh
71
72 script:
73  - if [ -n "$HOST" ]; then export USE_HOST="--host=$HOST"; fi
74  - if [ "x$HOST" = "xi686-linux-gnu" ]; then export CC="$CC -m32"; fi
75  - ./configure --enable-experimental=$EXPERIMENTAL --enable-endomorphism=$ENDOMORPHISM --with-field=$FIELD --with-bignum=$BIGNUM --with-asm=$ASM --with-scalar=$SCALAR --enable-ecmult-static-precomputation=$STATICPRECOMPUTATION --with-ecmult-gen-precision=$ECMULTGENPRECISION --enable-module-ecdh=$ECDH --enable-module-recovery=$RECOVERY $EXTRAFLAGS $USE_HOST
76  - if [ -n "$BUILD" ]; then make -j2 $BUILD; fi
77  - # 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)
78  - # 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)
79  - if [ -n "$VALGRIND" ]; then
80    make -j2 &&
81    travis_wait 30 valgrind --error-exitcode=42 ./tests 16 &&
82    travis_wait 30 valgrind --error-exitcode=42 ./exhaustive_tests;
83    fi
84
85 after_script:
86     - cat ./tests.log
87     - cat ./exhaustive_tests.log
This page took 0.027553 seconds and 4 git commands to generate.