187db00399
Don't use an all.sh component because there isn't one that does what we want (modern Clang with ASan, and test everything). * We need to set CC explicitly or tweak PATH, because clang in $PATH on Travis focal instances is Clang 7 which is too old (we want Clang 10). * Travis lacks the array of versions of openssl and gnutls that we normally use for testing, so we need to exclude some tests (or build our own multiple versions of openssl and gnutls). The SSL test exclusions are ad hoc and based on what currently works. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
104 lines
3.7 KiB
YAML
104 lines
3.7 KiB
YAML
# Declare python as our language. This way we get our chosen Python version,
|
|
# and pip is available. Gcc and clang are available anyway.
|
|
language: python
|
|
python: 3.5
|
|
sudo: false
|
|
cache: ccache
|
|
|
|
jobs:
|
|
include:
|
|
- name: basic checks and reference configurations
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gnutls-bin
|
|
- doxygen
|
|
- graphviz
|
|
- gcc-arm-none-eabi
|
|
- libnewlib-arm-none-eabi
|
|
- gcc-arm-linux-gnueabi
|
|
- libc6-dev-armel-cross
|
|
script:
|
|
- tests/scripts/all.sh -k 'check_*'
|
|
- tests/scripts/all.sh -k test_default_out_of_box
|
|
- tests/scripts/all.sh -k test_ref_configs
|
|
- tests/scripts/all.sh -k build_arm_linux_gnueabi_gcc_arm5vte build_arm_none_eabi_gcc_m0plus
|
|
|
|
- name: full configuration
|
|
os: linux
|
|
dist: focal
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-10
|
|
- gnutls-bin
|
|
script:
|
|
# Do a manual build+test sequence rather than using all.sh,
|
|
# because there's no all.sh component that does what we want,
|
|
# which is a build with Clang >= 10 and ASan, running all the SSL
|
|
# testing.
|
|
# - The clang executable in the default PATH is Clang 7 on
|
|
# Travis's focal instances, but we want Clang >= 10.
|
|
# - Running all the SSL testing requires a specific set of
|
|
# OpenSSL and GnuTLS versions and we don't want to bother
|
|
# with those on Travis.
|
|
# So we explicitly select clang-10 as the compiler, and we
|
|
# have ad hoc restrictions on SSL testing based on what is
|
|
# passing at the time of writing. We will remove these limitations
|
|
# gradually.
|
|
- make generated_files
|
|
- make CC=clang-10 CFLAGS='-Werror -Wall -Wextra -fsanitize=address,undefined -fno-sanitize-recover=all -O2' LDFLAGS='-Werror -Wall -Wextra -fsanitize=address,undefined -fno-sanitize-recover=all'
|
|
- make test
|
|
- programs/test/selftest
|
|
- tests/scripts/test_psa_constant_names.py
|
|
- tests/ssl-opt.sh
|
|
# Modern OpenSSL does not support fixed ECDH or null ciphers.
|
|
- tests/compat.sh -p OpenSSL -e 'NULL\|ECDH-'
|
|
- tests/scripts/travis-log-failure.sh
|
|
# GnuTLS supports CAMELLIA but compat.sh doesn't properly enable it.
|
|
- tests/compat.sh -p GnuTLS -e 'CAMELLIA'
|
|
- tests/scripts/travis-log-failure.sh
|
|
- tests/context-info.sh
|
|
|
|
- name: Windows
|
|
os: windows
|
|
# The language 'python' is currently unsupported on the
|
|
# Windows Build Environment. And 'generic' causes the job to get stuck
|
|
# on "Booting virtual machine".
|
|
language: c
|
|
before_install:
|
|
- choco install python --version=3.5.4
|
|
env:
|
|
# Add the directory where the Choco packages go
|
|
- PATH=/c/Python35:/c/Python35/Scripts:$PATH
|
|
- PYTHON=python.exe
|
|
script:
|
|
- type perl; perl --version
|
|
- type python; python --version
|
|
- scripts/make_generated_files.bat
|
|
# Logs appear out of sequence on Windows. Give time to catch up.
|
|
- sleep 5
|
|
- scripts/windows_msbuild.bat v141 # Visual Studio 2017
|
|
|
|
after_failure:
|
|
- tests/scripts/travis-log-failure.sh
|
|
|
|
env:
|
|
global:
|
|
- SEED=1
|
|
- secure: "JECCru6HASpKZ0OLfHh8f/KXhKkdrCwjquZghd/qbA4ksxsWImjR7KEPERcaPndXEilzhDbKwuFvJiQX2duVgTGoq745YGhLZIjzo1i8tySkceCVd48P8WceYGz+F/bmY7r+m6fFNuxDSoGGSVeA4Lnjvmm8PFUP45YodDV9no4="
|
|
|
|
install:
|
|
- $PYTHON scripts/min_requirements.py
|
|
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gnutls-bin
|
|
coverity_scan:
|
|
project:
|
|
name: "ARMmbed/mbedtls"
|
|
notification_email: support-mbedtls@arm.com
|
|
build_command_prepend:
|
|
build_command: make
|
|
branch_pattern: coverity_scan
|