#!/bin/sh
-set -eu
+set -eux
bail() {
echo >&2 "@"
sudo pkill -KILL -x "$name" || true
done
- sudo git clean -dfx
- sudo chown -R "${USER:-$(whoami)}" .
+ if [ "$(id -u)" != 0 ]; then
+ sudo chown -R "${USER:-$(whoami)}" . || true
+ fi
mkdir -p sanitizer /tmp/logs
header "Running test flavor $flavor"
- autoreconf -fsi
-
- DISTCHECK_CONFIGURE_FLAGS=$(sh .ci/conf.sh "$@")
- export DISTCHECK_CONFIGURE_FLAGS
+ ./.ci/build.sh "$flavor" "$@"
- # shellcheck disable=SC2086
- ./configure $DISTCHECK_CONFIGURE_FLAGS
-
- make -j"$(nproc)" all extra
+ if [ "${HOST:-}" = mingw ]; then
+ echo >&2 "Integration tests cannot run under wine, skipping"
+ return 0
+ fi
- if [ "$(uname -s)" = Linux ]; then
- cmd=distcheck
+ if [ -n "${HOST:-}" ]; then
+ echo >&2 "Using higher test timeout for cross-compilation job $HOST"
+ timeout=10
else
- cmd=check
+ timeout=1
fi
code=0
- make $cmd -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"