49 lines
1.4 KiB
Bash
Executable File
49 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
DATADIR="${DATADIR:-$(mktemp -d /tmp/agrarian-qt-smoke.XXXXXX)}"
|
|
LOGFILE="${LOGFILE:-/tmp/agrarian-qt-smoke.log}"
|
|
WAIT_SECONDS="${WAIT_SECONDS:-25}"
|
|
AGRARIAN_QT="${AGRARIAN_QT:-$ROOT/src/qt/agrarian-qt}"
|
|
|
|
require_path() {
|
|
if [[ ! -x "$1" ]]; then
|
|
echo "Missing executable: $1" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
require_path "$AGRARIAN_QT"
|
|
mkdir -p "$DATADIR"
|
|
rm -f "$LOGFILE"
|
|
|
|
set +e
|
|
timeout --kill-after=5s "${WAIT_SECONDS}s" xvfb-run -a "$AGRARIAN_QT" \
|
|
-regtest -datadir="$DATADIR" -choosedatadir=0 -debug=qt -debug=rpc \
|
|
-printtoconsole -server=0 -listen=0 -dnsseed=0 -connect=0 >"$LOGFILE" 2>&1
|
|
exit_code=$?
|
|
set -e
|
|
|
|
if [[ "$exit_code" -ne 124 ]]; then
|
|
echo "Expected Qt wallet to keep running until timeout, got exit code $exit_code" >&2
|
|
tail -n 80 "$LOGFILE" >&2 || true
|
|
exit 1
|
|
fi
|
|
|
|
if ! grep -q "init message: Done loading" "$LOGFILE"; then
|
|
echo "Qt wallet did not reach Done loading" >&2
|
|
tail -n 120 "$LOGFILE" >&2 || true
|
|
exit 1
|
|
fi
|
|
|
|
if grep -E "No functional TLS|No such signal|Unknown property" "$LOGFILE" >/dev/null; then
|
|
echo "Qt wallet logged a Qt6 runtime compatibility warning" >&2
|
|
grep -E "No functional TLS|No such signal|Unknown property" "$LOGFILE" >&2 || true
|
|
exit 1
|
|
fi
|
|
|
|
echo "Agrarian Qt smoke test passed"
|
|
echo " datadir: $DATADIR"
|
|
echo " log: $LOGFILE"
|