diff options
Diffstat (limited to '')
-rwxr-xr-x | .github/configs | 13 | ||||
-rwxr-xr-x | .github/run_test.sh | 6 | ||||
-rwxr-xr-x | .github/setup_ci.sh | 2 | ||||
-rw-r--r-- | .github/workflows/c-cpp.yml | 14 |
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 |