summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x.github/configs13
-rwxr-xr-x.github/run_test.sh6
-rwxr-xr-x.github/setup_ci.sh2
-rw-r--r--.github/workflows/c-cpp.yml14
4 files changed, 26 insertions, 9 deletions
diff --git a/.github/configs b/.github/configs
index 280775e1..1c06e00d 100755
--- a/.github/configs
+++ b/.github/configs
@@ -12,6 +12,7 @@ config=$1
TEST_TARGET="tests"
LTESTS=""
+SKIP_LTESTS=""
SUDO=sudo # run with sudo by default
TEST_SSH_UNSAFE_PERMISSIONS=1
@@ -55,14 +56,22 @@ case "$config" in
LIBCRYPTOFLAGS="--without-openssl"
TEST_TARGET=t-exec
;;
- valgrind)
+ valgrind-1)
# rlimit sandbox and FORTIFY_SOURCE confuse Valgrind.
CONFIGFLAGS="--without-sandbox --without-hardening"
CONFIGFLAGS="$CONFIGFLAGS --with-cppflags=-D_FORTIFY_SOURCE=0"
# Valgrind slows things down enough that the agent timeout test
# won't reliably pass, and the unit tests run longer than allowed
# by github.
- TEST_TARGET="t-exec USE_VALGRIND=1 SKIP_LTESTS=agent-timeout"
+ TEST_TARGET="t-exec USE_VALGRIND=1"
+ SKIP_LTESTS="agent-timeout rekey try-ciphers cert-userkey integrity"
+ ;;
+ valgrind-2)
+ CONFIGFLAGS="--without-sandbox --without-hardening"
+ CONFIGFLAGS="$CONFIGFLAGS --with-cppflags=-D_FORTIFY_SOURCE=0"
+ # The rekey test takes >30 min so run separately.
+ TEST_TARGET="t-exec USE_VALGRIND=1"
+ LTESTS="rekey try-ciphers cert-userkey integrity"
;;
*)
echo "Unknown configuration $config"
diff --git a/.github/run_test.sh b/.github/run_test.sh
index f698996d..66fd5260 100755
--- a/.github/run_test.sh
+++ b/.github/run_test.sh
@@ -6,11 +6,11 @@
set -ex
-if [ -z "$LTESTS" ]; then
- make $TEST_TARGET
+if [ -z "${LTESTS}" ]; then
+ make ${TEST_TARGET} SKIP_LTESTS="${SKIP_LTESTS}"
result=$?
else
- make $TEST_TARGET LTESTS="$LTESTS"
+ make ${TEST_TARGET} SKIP_LTESTS="${SKIP_LTESTS}" LTESTS="${LTESTS}"
result=$?
fi
diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh
index 831203cf..e53a351c 100755
--- a/.github/setup_ci.sh
+++ b/.github/setup_ci.sh
@@ -53,7 +53,7 @@ for TARGET in $TARGETS; do
libressl-head)
INSTALL_LIBRESSL_HEAD=yes
;;
- valgrind)
+ valgrind*)
PACKAGES="$PACKAGES valgrind"
;;
*) echo "Invalid option '${TARGET}'"
diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml
index 5e79c073..2279e109 100644
--- a/.github/workflows/c-cpp.yml
+++ b/.github/workflows/c-cpp.yml
@@ -12,22 +12,30 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: [ubuntu-16.04, ubuntu-18.04, ubuntu-20.04, macos-10.15, macos-11.0]
- configs: [default, pam]
+ # First we test all OSes in the default configuration.
+ os: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04, macos-10.15, macos-11.0]
+ configs: [default]
# Then we include any extra configs we want to test for specific VMs.
+ # Valgrind slows things down quite a bit, so start them first.
include:
+ - { os: ubuntu-20.04, configs: valgrind-1 }
+ - { os: ubuntu-20.04, configs: valgrind-2 }
+ - { os: ubuntu-20.04, configs: pam }
- { os: ubuntu-20.04, configs: kitchensink }
- { os: ubuntu-20.04, configs: hardenedmalloc }
- { os: ubuntu-20.04, configs: libressl-head }
- { os: ubuntu-20.04, configs: openssl-head }
- - { os: ubuntu-20.04, configs: valgrind }
+ - { os: ubuntu-18.04, configs: pam }
- { os: ubuntu-18.04, configs: kerberos5 }
- { os: ubuntu-18.04, configs: libedit }
- { os: ubuntu-18.04, configs: sk }
- { os: ubuntu-18.04, configs: selinux }
- { os: ubuntu-18.04, configs: kitchensink }
- { os: ubuntu-18.04, configs: without-openssl }
+ - { os: ubuntu-16.04, configs: pam }
- { os: ubuntu-16.04, configs: kitchensink }
+ - { os: macos-10.15, configs: pam }
+ - { os: macos-11.0, configs: pam }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2