#!/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
- # 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=$?
- mkdir -p /tmp/logs
- sudo tar -c -z -f "/tmp/logs/tests.$flavor.tar.gz" test/
+ sudo tar -c -z -f "/tmp/logs/tests.$flavor.tar.gz" "$flavor" sanitizer/ || true
return $code
}
-echo "system name $(uname -s)"
-echo "full $(uname -a)"
-echo "o $(uname -o)"
-
case "$(uname -s)" in
-Linux)
- if [ -n "${HOST:-}" ]; then
- # Needed for cross-compilation for 32-bit targets.
- export 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="-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"