X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=.ci%2Ftest%2Frun.sh;h=89a5d370ef420790f4c132e7f1b5c09b39ad20d7;hb=28be4baae016a5a771d0d9ec6e97ef38a4fc9e46;hp=b17d2de7875ee9d6207679ba3fd85191100cc1bf;hpb=53b239863ea0a44270d877945fa2014ec626ad01;p=tinc diff --git a/.ci/test/run.sh b/.ci/test/run.sh index b17d2de7..89a5d370 100644 --- a/.ci/test/run.sh +++ b/.ci/test/run.sh @@ -1,6 +1,6 @@ #!/bin/sh -set -eu +set -eux bail() { echo >&2 "@" @@ -24,56 +24,57 @@ run_tests() { sudo pkill -KILL -x "$name" || true done - sudo git clean -dfx - sudo chown -R "${USER:-$(whoami)}" . + sudo chown -R "${USER:-$(whoami)}" . || true mkdir -p sanitizer /tmp/logs header "Running test flavor $flavor" - autoreconf -fsi - # shellcheck disable=SC2046 - ./configure $(sh .ci/conf.sh "$@") - make -j"$(nproc)" all extra + ./.ci/build.sh "$flavor" "$@" + + if [ "${HOST:-}" = mingw ]; then + echo >&2 "Integration tests cannot run under wine, skipping" + return 0 + fi + + if [ -n "${HOST:-}" ]; then + echo >&2 "Using higher test timeout for cross-compilation job $HOST" + timeout=10 + else + timeout=1 + fi code=0 - make check -j2 VERBOSE=1 || code=$? + meson test -C "$flavor" --timeout-multiplier $timeout --verbose || code=$? - sudo tar -c -z -f "/tmp/logs/tests.$flavor.tar.gz" test/ sanitizer/ + sudo tar -c -z -f "/tmp/logs/tests.$flavor.tar.gz" "$flavor" sanitizer/ || true return $code } case "$(uname -s)" in -Linux) - if [ -n "${HOST:-}" ]; then - # Needed for cross-compilation for 32-bit targets. - export CPPFLAGS="${CPPFLAGS:-} -D_FILE_OFFSET_BITS=64" - fi - ;; - -MINGW*) - # No-op. - sudo() { "$@"; } - ;; - -Darwin) - nproc() { sysctl -n hw.ncpu; } - gcrypt=$(brew --prefix libgcrypt) - openssl=$(brew --prefix openssl) - export CPPFLAGS="${CPPFLAGS:-} -I/usr/local/include -I$gcrypt/include -I$openssl/include -I$gcrypt/include" - ;; +MINGW* | Darwin) sudo() { "$@"; } ;; esac -case "$1" in +flavor=$1 +shift + +case "$flavor" in default) - run_tests default + run_tests default "$@" ;; nolegacy) - run_tests nolegacy --disable-legacy-protocol + run_tests nolegacy -Dcrypto=nolegacy "$@" ;; gcrypt) - run_tests gcrypt --with-libgcrypt + run_tests gcrypt -Dcrypto=gcrypt "$@" + ;; +openssl3) + if [ -d /opt/ssl3 ]; then + run_tests openssl3 -Dpkg_config_path=/opt/ssl3/lib64/pkgconfig "$@" + else + echo >&2 "OpenSSL 3 not installed, skipping test" + fi ;; *) bail "unknown test flavor $1"