1dist: trusty 2sudo: required 3 4osx_image: xcode9.3 5 6language: c 7cache: ccache 8git: 9 submodules: false 10 quiet: true 11 12before_install: 13 - if [ -n "$COVERALLS" ]; then 14 pip install --user cpp-coveralls; 15 fi; 16 - if expr "$CONFIG_OPTS" ":" ".*enable-external-tests" > /dev/null; then 17 git submodule update --init --recursive; 18 fi; 19 - eval "${MATRIX_EVAL}" 20 21arch: 22 - amd64 23 - arm64 24 25os: 26 - linux 27 - osx 28 29compiler: 30 - clang 31 - gcc 32 33env: 34 - CONFIG_OPTS="" DESTDIR="_install" 35 - CONFIG_OPTS="no-asm -Werror --debug no-afalgeng no-shared enable-crypto-mdebug enable-rc5 enable-md2" 36 - CONFIG_OPTS="no-asm no-makedepend enable-buildtest-c++ --strict-warnings -D_DEFAULT_SOURCE" BUILDONLY="yes" CHECKDOCS="yes" GENERATE="yes" CPPFLAGS="-ansi" 37 38matrix: 39 include: 40 - os: linux 41 arch: arm64 42 dist: bionic 43 compiler: clang 44 env: CONFIG_OPTS="--strict-warnings -D__NO_STRING_INLINES no-deprecated" BUILDONLY="yes" 45 - os: linux 46 arch: arm64 47 compiler: clang 48 addons: 49 apt: 50 packages: 51 - clang-6.0 52 env: EXTENDED_TEST="yes" CONFIG_OPTS="enable-msan disable-afalgeng -D__NO_STRING_INLINES -Wno-unused-command-line-argument" MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" 53 - os: linux 54 arch: arm64 55 compiler: clang 56 addons: 57 apt: 58 packages: 59 - clang-6.0 60 env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 enable-ssl3 enable-ssl3-method enable-nextprotoneg no-shared enable-buildtest-c++ -fno-sanitize=alignment -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES -Wno-unused-command-line-argument" MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" 61 - os: linux 62 arch: s390x 63 compiler: gcc 64 env: CONFIG_OPTS="--strict-warnings" 65 - os: linux-ppc64le 66 sudo: false 67 compiler: clang 68 env: CONFIG_OPTS="--strict-warnings -D__NO_STRING_INLINES" 69 - os: linux 70 addons: 71 apt: 72 packages: 73 - gcc-5 74 - g++-5 75 sources: 76 - ubuntu-toolchain-r-test 77 compiler: gcc-5 78 env: CONFIG_OPTS="--strict-warnings no-ec enable-ssl-trace enable-zlib enable-zlib-dynamic enable-crypto-mdebug enable-crypto-mdebug-backtrace enable-egd" COMMENT="Move to the BORINGTEST build when interoperable" 79 - os: linux 80 compiler: clang 81 env: CONFIG_OPTS="--strict-warnings -D__NO_STRING_INLINES no-deprecated" 82 - os: linux 83 addons: 84 apt: 85 packages: 86 - binutils-mingw-w64 87 - gcc-mingw-w64 88 compiler: i686-w64-mingw32-gcc 89 env: CONFIG_OPTS="no-stdio" BUILDONLY="yes" DESTDIR="_install" 90 # Uncomment if there is reason to believe that PPC-specific problem 91 # can be diagnosed with this possibly >30 mins sanitizer build... 92 #- os: linux-ppc64le 93 # sudo: false 94 # compiler: gcc 95 # env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-asan enable-ubsan no-shared -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES" 96 - os: linux 97 addons: 98 apt: 99 packages: 100 - gcc-5 101 - g++-5 102 - golang-1.6 103 sources: 104 - ubuntu-toolchain-r-test 105 compiler: gcc-5 106 env: EXTENDED_TEST="yes" CONFIG_OPTS="--debug --coverage no-asm enable-rc5 enable-md2 enable-ec_nistp_64_gcc_128 enable-ssl3 enable-ssl3-method enable-nextprotoneg enable-weak-ssl-ciphers no-shared -DPEDANTIC -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" COVERALLS="yes" BORINGSSL_TESTS="yes" CXX="g++-5" 107 - os: linux 108 addons: 109 apt: 110 packages: 111 - gcc-5 112 - g++-5 113 - golang-1.6 114 sources: 115 - ubuntu-toolchain-r-test 116 compiler: gcc-5 117 # External test pyca-cryptography temporarily disabled due to long term travis failures 118 env: EXTENDED_TEST="yes" CONFIG_OPTS="--debug enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers enable-external-tests" BORINGSSL_TESTS="yes" CXX="g++-5" TESTS="test_external_boringssl test_external_krb5" 119 - os: linux 120 compiler: clang 121 env: EXTENDED_TEST="yes" CONFIG_OPTS="enable-msan -D__NO_STRING_INLINES -Wno-unused-command-line-argument" 122 - os: linux 123 compiler: clang 124 env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 enable-ssl3 enable-ssl3-method enable-nextprotoneg no-shared -fno-sanitize=alignment -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES -Wno-unused-command-line-argument" 125 - os: linux 126 compiler: clang 127 env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-asan enable-rc5 enable-md2 no-shared -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES -Wno-unused-command-line-argument" 128 - os: linux 129 addons: 130 apt: 131 packages: 132 - gcc-5 133 - g++-5 134 sources: 135 - ubuntu-toolchain-r-test 136 compiler: gcc-5 137 env: UBUNTU_GCC_HACK="yes" EXTENDED_TEST="yes" CONFIG_OPTS="--debug no-asm enable-ubsan enable-rc5 enable-md2 -DPEDANTIC" OPENSSL_TEST_RAND_ORDER=0 138 - os: linux 139 addons: 140 apt: 141 packages: 142 - binutils-mingw-w64 143 - gcc-mingw-w64 144 compiler: i686-w64-mingw32-gcc 145 env: EXTENDED_TEST="yes" CONFIG_OPTS="no-pic" 146 - os: linux 147 addons: 148 apt: 149 packages: 150 - binutils-mingw-w64 151 - gcc-mingw-w64 152 compiler: x86_64-w64-mingw32-gcc 153 env: EXTENDED_TEST="yes" CONFIG_OPTS="no-pic" 154 - os: linux 155 language: python 156 python: 3.7 157 dist: xenial # required for Python 3.7 (travis-ci/travis-ci#9069) 158 sudo: required # required for Python 3.7 (travis-ci/travis-ci#9069) 159 install: pip install flake8 160 before_script: 161 # stop the build if there are Python syntax errors or undefined names 162 - flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics 163 # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide 164 - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics 165 script: true 166 - os: linux 167 compiler: gcc 168 env: CONFIGURE_TARGET="linux-generic32" CONFIG_OPTS="--strict-warnings no-shared no-dso no-pic no-aria no-async no-autoload-config no-blake2 no-bf no-camellia no-cast no-chacha no-cmac no-cms no-comp no-ct no-des no-dgram no-dh no-dsa no-dtls no-ec2m no-engine no-filenames no-gost no-idea no-mdc2 no-md4 no-multiblock no-nextprotoneg no-ocsp no-ocb no-poly1305 no-psk no-rc2 no-rc4 no-rmd160 no-seed no-siphash no-sm2 no-sm3 no-sm4 no-srp no-srtp no-ssl3 no-ssl3-method no-ts no-ui-console no-whirlpool no-asm -DOPENSSL_NO_SECURE_MEMORY -DOPENSSL_SMALL_FOOTPRINT" 169 exclude: 170 - os: linux 171 compiler: clang 172 - os: osx 173 compiler: gcc 174 - arch: arm64 175 os: osx 176 177before_script: 178 - env 179 - if [ "$TRAVIS_PULL_REQUEST" != "false" -a -n "$EXTENDED_TEST" ]; then 180 (git log -1 $TRAVIS_COMMIT_RANGE | grep '\[extended tests\]' > /dev/null) || travis_terminate 0; 181 fi 182 - if [ -n "$DESTDIR" ]; then 183 sh .travis-create-release.sh $TRAVIS_OS_NAME; 184 tar -xzf _srcdist.tar.gz; 185 mkdir _build; 186 cd _build; 187 srcdir=../_srcdist; 188 top=..; 189 else 190 srcdir=.; 191 top=.; 192 fi 193 - if [ -n "$UBUNTU_GCC_HACK" ]; then 194 $CC -dumpspecs | sed "s/--push-state//g; s/--pop-state/--as-needed/g" > gcc-specs.txt; 195 CC="$CC -specs=gcc-specs.txt"; 196 fi 197 - if [ "$CC" = i686-w64-mingw32-gcc ]; then 198 export CROSS_COMPILE=${CC%%gcc}; unset CC; 199 $srcdir/Configure mingw $CONFIG_OPTS -Wno-pedantic-ms-format; 200 elif [ "$CC" = x86_64-w64-mingw32-gcc ]; then 201 export CROSS_COMPILE=${CC%%gcc}; unset CC; 202 $srcdir/Configure mingw64 $CONFIG_OPTS -Wno-pedantic-ms-format; 203 else 204 if [ "$CC" = clang-3.9 ]; then 205 sudo cp .travis-apt-pin.preferences /etc/apt/preferences.d/no-ubuntu-clang; 206 curl -sSL "http://apt.llvm.org/llvm-snapshot.gpg.key" | sudo -E apt-key add -; 207 echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main" | sudo tee -a /etc/apt/sources.list > /dev/null; 208 sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"; 209 sudo -E apt-get -yq update; 210 sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang-3.9; 211 elif which ccache >/dev/null; then 212 CC="ccache $CC"; 213 fi; 214 if [ -n "$CONFIGURE_TARGET" ]; then 215 $srcdir/Configure $CONFIGURE_TARGET $CONFIG_OPTS; 216 else 217 $srcdir/config -v $CONFIG_OPTS; 218 fi; 219 fi 220 - ./configdata.pm --dump 221 - cd $top 222 223script: 224 - if [ -z "$BUILDONLY" ]; then 225 make="make -s"; 226 else 227 make="make"; 228 fi 229 - if [ -n "$GENERATE" ]; then 230 make2="$make PERL=no-perl"; 231 else 232 make2="$make"; 233 fi 234 - top=${PWD} 235 - if [ -n "$DESTDIR" ]; then 236 cd _build; 237 fi 238 - if $make update; then 239 echo -e '+\057 MAKE UPDATE OK'; 240 else 241 echo -e '+\057 MAKE UPDATE FAILED'; 242 travis_terminate 1; 243 fi 244 - git diff --exit-code 245 - if [ -n "$CHECKDOCS" ]; then 246 if $make doc-nits; then 247 echo -e '+\057\057 MAKE DOC-NITS OK'; 248 else 249 echo -e '+\057\057 MAKE DOC-NITS FAILED'; 250 travis_terminate 1; 251 fi; 252 fi 253 - if [ -n "$GENERATE" ]; then 254 if $make build_all_generated; then 255 echo -e '+\057\057\057 MAKE BUILD_ALL_GENERATED OK'; 256 else 257 echo -e '+\057\057\057 MAKE BUILD_ALL_GENERATED FAILED'; 258 travis_terminate 1; 259 fi; 260 fi 261 - if $make2; then 262 echo -e '+\057\057\057\057 MAKE OK'; 263 else 264 echo -e '+\057\057\057\057 MAKE FAILED'; 265 travis_terminate 1; 266 fi; 267 - if [ -z "$BUILDONLY" ]; then 268 if [ -n "$CROSS_COMPILE" ]; then 269 sudo dpkg --add-architecture i386; 270 sudo apt-get update; 271 sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install wine; 272 export EXE_SHELL="wine" WINEPREFIX=`pwd`; 273 fi; 274 if [ -e krb5/src ]; then 275 sudo apt-get -yq install bison dejagnu gettext keyutils ldap-utils libldap2-dev libkeyutils-dev python-cjson python-paste python-pyrad slapd tcl-dev tcsh; 276 fi; 277 if HARNESS_VERBOSE=yes BORING_RUNNER_DIR=$top/boringssl/ssl/test/runner make test; then 278 echo -e '+\057\057\057\057\057 MAKE TEST OK'; 279 else 280 echo -e '+\057\057\057\057\057 MAKE TEST FAILED'; 281 travis_terminate 1; 282 fi; 283 else 284 if $make build_tests >~/build.log 2>&1; then 285 echo -e '+\057\057\057\057\057\057 MAKE BUILD_TESTS OK'; 286 else 287 echo -e '+\057\057\057\057\057\057 MAKE BUILD_TESTS FAILED'; 288 cat ~/build.log 289 travis_terminate 1; 290 fi; 291 fi 292 - if [ -n "$DESTDIR" ]; then 293 mkdir "$top/$DESTDIR"; 294 if $make install DESTDIR="$top/$DESTDIR" >~/install.log 2>&1 ; then 295 echo -e '+\057\057\057\057\057\057\057 MAKE INSTALL OK'; 296 else 297 echo -e '+\057\057\057\057\057\057\057 MAKE INSTALL FAILED'; 298 cat ~/install.log; 299 travis_terminate 1; 300 fi; 301 fi 302 - cd $top 303 304after_success: 305 - if [ -n "$COVERALLS" ]; then 306 coveralls -b . --gcov gcov-5 --gcov-options '\-lpbc'; 307 fi; 308 309notifications: 310 email: 311 secure: "xeGNgWO7aoaDgRvcZubposqMsj36aU8c6F0oHfw+rUqltCQ14IgYCUwzocmR2O+Pa7B3Cx5VjMfBFHbQaajZsfod8vu7g+aGq/zkjwbhsr/SR4dljJjFJXLGZjIalm9KgP6KInmVDuINfCqP+MHIY5lZkNI7DMcyHDhVc5nSKvCXV7xTDNgmstvh8rB/z51WfHDqGqfBtiuK5FDNxmvYK8OFJ5W94Lu9LDlizcxwK3GAj7arOui7Z5w8bQ6p4seUE3IvJL1Zbj0pZHxvNb6Zeb2Pn8QF1qLlN8YmBktD4aiw0ce4wYRiL87uLgcOxZY7SVXtv2XYFIYWapU/FKjCqa6vK93V/H9eZWEIYNMKnN3wXm2beqVdnKek3OeGJ8v0y7MbSfuLfRtBqbTSNYnpU1Zuo4MQAvHvEPuwCAYkYQajOSRplMH5sULFKptuVqNtOMfjL8jHb8AEoL1acYIk43ydxeYrzzas4fqgCDJ52573/u0RNdF1lkQBLkuM365OB8VRqtpnoxcdEIY/qBc/8TzZ24fxyrs5qdHFcxGSgpN2EP6cJMqpvkemnCNSdhxUqfzm22N7a3O8+4LFSBGOnHto/PwdsvF/01yGYL0LoZTnoO1i6x7AMJPBh+eyDU0ZjGhj/msjmqeb9C8vRqQ+1WjHrIS1iqCD0Czib8tUPD4=" 312