]> git.proxmox.com Git - swtpm.git/blob - .travis.yml
Travis: Add asan build for non-openssl usage in libtpms
[swtpm.git] / .travis.yml
1 env:
2 global:
3 - secure: mcAXlw5k/1yOP2RMKWEtvU2SnsuHo5Idoi5zZ+hLj2CzdvT77Wh8HWQ7NRsiamL+3dMPxzzy60IYNZQ8F29y3rvN7gASVsYn31G5UkmfvpPLiucuPADM1rNm8FYNlia0GFW4keP+LwMrBo6KDK9k0T8w4lquXBwMmNzhvCYVwkBIM5YwhXW5nk1dOJtf6zAb6gDH/VNEYTXXRKjA5Jvln7+EVHY61pEx6rJGa2GU0A49ms5UMJVzv85FraiHwlCPnNhQWGJ6sStqxsd5i6VBTCrkwMqnnA+ZBosqIJkBXp4OkudfPWE9vsn7TtuYdbheOkUIv6GRPFJNG3Vm3Wh/IwvSOILS5xAmsB3MxyK3BlILOYcsywiSzV5J4+s5Vnih4FaRQ3xx46Fq2ldatuk7npIxfdd3Co5V1KZh1pq3ckAdKlY2PEsQc0Kh72Lxf2N0XVw4s0H7gzrFk4/ghIvoCmAWBRSrN+R7wleEcmxDRgUZHP6Qc2ZNP+kljhBLqzinW2jyxPAqQS17g5Tb01+WfqkG/T5jboyIIe/OEQ5XbQp3/d8rUA8STpJxD25lwKKqlIqU3ZFWYfRT+pA0x83AdiTm53CJSQqFyCLtZCqK0XSZbLfmFzjZJ7I8FQxZoF2o03DDkL1Xs0z0sj87i3UnsYzxGdSrcU2JDK7qRIn39sM=
4 sudo: required
5 language: c
6 dist: xenial
7 addons:
8 apt:
9 packages:
10 - pep8
11 - automake
12 - autoconf
13 - libtool
14 - libssl-dev
15 - sed
16 - make
17 - gawk
18 - sed
19 - bash
20 - dh-exec
21 - python-twisted
22 - libfuse-dev
23 - libglib2.0-dev
24 - libgmp-dev
25 - expect
26 - libtasn1-dev
27 - socat
28 - findutils
29 - tpm-tools
30 - gnutls-dev
31 - gnutls-bin
32 - libasan2
33 - softhsm2
34 - libseccomp-dev
35 coverity_scan:
36 project:
37 name: swtpm
38 description: Build submitted via Travis CI
39 notification_email: stefanb@linux.vnet.ibm.com
40 build_command_prepend: "git clone https://github.com/stefanberger/libtpms && cd libtpms && ./autogen.sh --with-openssl --prefix=/usr --with-tpm2 && make -j$(${NPROC:-nproc}) && sudo make install && cd .. && ./autogen.sh --with-openssl"
41 build_command: make -j$(${NPROC:-nproc})
42 branch_pattern: coverity_scan
43 before_install:
44 - test $TRAVIS_BRANCH != coverity_scan -o ${TRAVIS_JOB_NUMBER##*.} = 1 || exit 0
45 script:
46 - if [ ! -d libtpms ]; then git clone https://github.com/stefanberger/libtpms; fi
47 - cd libtpms
48 - CFLAGS="${LIBTPMS_CFLAGS:--g -O2}" LDFLAGS="${LIBTPMS_LDFLAGS}"
49 ./autogen.sh --with-openssl --prefix=${LIBTPMS_PREFIX:-/usr} --with-tpm2 ${LIBTPMS_CONFIG}
50 && make -j$(${NPROC:-nproc})
51 && sudo make install
52 - cd ..
53 - ./autogen.sh ${CONFIG}
54 && ${SUDO} make clean
55 && export SWTPM_TEST_EXPENSIVE=${SWTPM_TEST_EXPENSIVE:-1}
56 && ${SUDO} make -j$(${NPROC:-nproc}) ${CHECK}
57 - if [ -n "${RUN_TEST}" ]; then
58 sudo make install
59 && sudo ${PREFIX}/bin/swtpm_setup
60 --tpmstate /tmp --create-ek-cert --create-platform-cert
61 --runas ${TSS_USER:-tss} --tpm2
62 || { exit 1; };
63 fi
64 after_failure:
65 - for f in tests/*.log; do echo ">>>>>>> $f <<<<<<<"; cat $f; done
66 matrix:
67 include:
68 - env: PREFIX="/usr"
69 CONFIG="--with-openssl --prefix=${PREFIX}"
70 CHECK="distcheck"
71 RUN_TEST="1"
72 before_script:
73 - pep8 $(find . -type f | grep -E "\.py$")
74 - env: PREFIX="/usr"
75 CONFIG="--with-openssl --prefix=/usr --enable-test-coverage"
76 SUDO="sudo"
77 CHECK="check"
78 before_script:
79 - sudo pip install cpp-coveralls
80 - p=$PWD; while [ "$PWD" != "/" ]; do chmod o+x . &>/dev/null ; cd .. ; done; cd $p
81 && sudo mkdir src/swtpm/.libs
82 && sudo chown nobody src/swtpm src/swtpm/.libs
83 after_success:
84 - uidgid="$(id -nu):$(id -ng)" &&
85 sudo chown -R ${uidgid} ./ &&
86 cpp-coveralls --gcov-options '\-lp' -e libtpms
87 - env: CFLAGS="-fsanitize=address -g -fno-omit-frame-pointer -fno-sanitize-recover"
88 LIBTPMS_CFLAGS="-fsanitize=address -g -fno-omit-frame-pointer -fno-sanitize-recover"
89 LIBS="-lasan"
90 ASAN_OPTIONS="halt_on_error=1"
91 PREFIX="/usr"
92 CONFIG="--with-openssl --prefix=${PREFIX} --without-seccomp"
93 SUDO="sudo"
94 CHECK="check"
95 before_script:
96 # Tspi_NV_WriteValue has an I/O error when using asan
97 - echo -e '#!/usr/bin/env bash\nexit 0' > tests/test_parameters
98 - env: CFLAGS="-fsanitize=address -g -fno-omit-frame-pointer -fno-sanitize-recover"
99 LIBTPMS_CFLAGS="-fsanitize=address -g -fno-omit-frame-pointer -fno-sanitize-recover"
100 LIBTPMS_CONFIG="--disable-use-openssl-functions"
101 LIBS="-lasan"
102 ASAN_OPTIONS="halt_on_error=1"
103 PREFIX="/usr"
104 CONFIG="--with-openssl --prefix=${PREFIX} --without-seccomp"
105 SUDO="sudo"
106 CHECK="check"
107 before_script:
108 # Tspi_NV_WriteValue has an I/O error when using asan
109 - echo -e '#!/usr/bin/env bash\nexit 0' > tests/test_parameters
110 - env: CFLAGS="-fsanitize=undefined -g -fno-omit-frame-pointer -fno-sanitize-recover"
111 LIBTPMS_CFLAGS="-fsanitize=undefined -g -fno-omit-frame-pointer -fno-sanitize-recover"
112 LIBS="-lubsan"
113 UBSAN_OPTIONS="halt_on_error=1"
114 PREFIX="/usr"
115 CONFIG="--with-openssl --prefix=${PREFIX}"
116 SUDO="sudo"
117 CHECK="check"
118 - env: NPROC="sysctl -n hw.ncpu"
119 LIBTPMS_CFLAGS="-I/usr/local/opt/openssl/include"
120 LIBTPMS_LDFLAGS="-L/usr/local/opt/openssl/lib"
121 LIBTPMS_PREFIX="${HOME}"
122 CFLAGS="-I/usr/local/opt/openssl/include -I${HOME}/include"
123 LDFLAGS="-L/usr/local/opt/openssl/lib -L${HOME}/lib"
124 PKG_CONFIG_PATH="${HOME}/lib/pkgconfig"
125 PREFIX="${HOME}"
126 TSS_USER=$(id -u -n)
127 CONFIG="--with-openssl --prefix=${PREFIX} --with-tss-user=${TSS_USER} --with-tss-group=$(id -g -n)"
128 SWTPM_TEST_EXPENSIVE=0
129 CHECK="check"
130 LD_LIBRARY_PATH=${PREFIX}/lib:${PREFIX}/lib/swtpm
131 RUN_TEST="1"
132 SUDO="sudo"
133 os: osx
134 compiler: clang
135 before_script:
136 - HOMEBREW_NO_AUTO_UPDATE=1 brew upgrade gnutls || true
137 - HOMEBREW_NO_AUTO_UPDATE=1 brew install expect
138 - HOMEBREW_NO_AUTO_UPDATE=1 brew install libtasn
139 - HOMEBREW_NO_AUTO_UPDATE=1 brew install glib
140 - HOMEBREW_NO_AUTO_UPDATE=1 brew install gawk
141 - HOMEBREW_NO_AUTO_UPDATE=1 brew install gmp
142 - HOMEBREW_NO_AUTO_UPDATE=1 brew tap discoteq/discoteq
143 - HOMEBREW_NO_AUTO_UPDATE=1 brew install flock
144 - HOMEBREW_NO_AUTO_UPDATE=1 brew install socat
145 # To run the pkcs11 test with softhsm we need SUDO (above)
146 - HOMEBREW_NO_AUTO_UPDATE=1 brew install softhsm