Bash · 1123 bytes Raw Blame History
1 #!/usr/bin/env bash
2 set -euo pipefail
3
4 repo_root="$(cd "$(dirname "$0")/.." && pwd)"
5
6 runtime_dir="$(mktemp -d)"
7 log_file="$(mktemp)"
8 status_file="$(mktemp)"
9
10 cleanup() {
11 rm -f "$log_file" "$status_file"
12 rm -rf "$runtime_dir"
13 }
14 trap cleanup EXIT
15
16 mkdir -p "$runtime_dir/garwarp"
17 cat > "$runtime_dir/garwarp/requests.state" <<STORE
18 id=req-1 sender=:1.2 state=bogus
19 STORE
20
21 DBUS_FATAL_WARNINGS=0 dbus-run-session -- bash -lc '
22 set -euo pipefail
23 export XDG_RUNTIME_DIR="'"$runtime_dir"'"
24 cd "'"$repo_root"'"
25
26 cargo run -q -p garwarp -- daemon >"'"$log_file"'" 2>&1 &
27 pid=$!
28
29 for _ in $(seq 1 200); do
30 [ -S "$XDG_RUNTIME_DIR/garwarp/control.sock" ] && break
31 sleep 0.05
32 done
33
34 [ -S "$XDG_RUNTIME_DIR/garwarp/control.sock" ]
35
36 cargo run -q -p garwarpctl -- status >"'"$status_file"'"
37 cargo run -q -p garwarpctl -- stop >/dev/null
38 wait "$pid"
39 '
40
41 ls "$runtime_dir/garwarp"/requests.state.corrupt-* >/dev/null
42 [ -f "$runtime_dir/garwarp/requests.state" ]
43 rg -q "request_store_load_failed" "$log_file"
44 rg -q "request_store_quarantined" "$log_file"
45 rg -q "health=" "$status_file"
46
47 echo "request-store fallback smoke test passed"