summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@dtucker.net>2021-02-21 22:09:27 +0100
committerDarren Tucker <dtucker@dtucker.net>2021-02-23 01:18:49 +0100
commitffcdd3d90e74176b3bb22937ad1f65a6c1cd3f9d (patch)
tree67ced06b6eb28e251ba3581cd36ca8f7fca5cb2d
parentupstream: warn when the user specifies a ForwardAgent path that does (diff)
downloadopenssh-ffcdd3d90e74176b3bb22937ad1f65a6c1cd3f9d.tar.xz
openssh-ffcdd3d90e74176b3bb22937ad1f65a6c1cd3f9d.zip
Valgrind test: split and move up list.
Since the valgrind test takes so long it approaches the limit allowed by github, move it to the head of the list so it's the first one started and split the longest tests out into a second instance that runs concurrently with the first.
Diffstat (limited to '')
-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 280775e1f..1c06e00d1 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 f698996d4..66fd52603 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 831203cfd..e53a351c5 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 5e79c0739..2279e109e 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