AtlatestRepositorysigil-wm
1
#!/usr/bin/env bash2
set -euo pipefail3
cd "$(dirname "$0")/.."4
make -j2 all build/protocol-client5
mkdir -p build/receipts/transaction-pixels6
out=$PWD/build/receipts/transaction-pixels7
runtime_dir=$(mktemp -d /tmp/sigil-wm-transaction-pixels.XXXXXX)8
export XDG_RUNTIME_DIR="$runtime_dir" WLR_BACKENDS=headless WLR_RENDERER=pixman WLR_HEADLESS_OUTPUTS=19
unset WAYLAND_DISPLAY DISPLAY10
server_pid=11
clients=()12
cleanup() {13
for child in "${clients[@]}" "$server_pid"; do14
[[ -z $child ]] || kill "$child" 2>/dev/null || true15
[[ -z $child ]] || wait "$child" 2>/dev/null || true16
done17
rm -rf "$runtime_dir"18
}19
trap cleanup EXIT20
timeout 40 bash scripts/run-sigil -L src eval -f test/transaction-pixels.sgl > "$out/server.log" 2>&1 &21
server_pid=$!22
for ((attempt=0; attempt<600; attempt++)); do23
grep -q '^WAYLAND_SOCKET=' "$out/server.log" && break24
kill -0 "$server_pid" 2>/dev/null || break25
sleep 0.0526
done27
export WAYLAND_DISPLAY28
WAYLAND_DISPLAY=$(sed -n 's/^WAYLAND_SOCKET=//p' "$out/server.log" | head -1)29
[[ -n $WAYLAND_DISPLAY ]] || { cat "$out/server.log"; exit 1; }30
index=031
for colour in green red; do32
index=$((index+1))33
SIGIL_WM_CLIENT_INPUT=1 SIGIL_WM_CLIENT_MARGIN=20,20,20,20 SIGIL_WM_CLIENT_RESIZE_DELAY_MS=500 timeout 35 build/protocol-client "$colour" 36000 > "$out/client-$index.log" 2>&1 &34
clients+=($!)35
for ((attempt=0; attempt<600; attempt++)); do36
grep -q "^TRANSACTION_MAPPED=$index$" "$out/server.log" && break37
kill -0 "$server_pid" 2>/dev/null || break38
sleep 0.0539
done40
grep -q "^TRANSACTION_MAPPED=$index$" "$out/server.log" || { cat "$out/server.log"; exit 1; }41
done42
result=043
wait "$server_pid" || result=$?44
server_pid=45
cat "$out/server.log"46
[[ $result == 0 ]]47
for child in "${clients[@]}"; do wait "$child"; done48
clients=()49
grep -q '^TRANSACTION_SNAPSHOT=PASS' "$out/server.log"50
grep -q '^PIXEL_PLAN_SCOPE=PASS' "$out/server.log"51
grep -q '^PIXEL_SCOPE=PASS' "$out/server.log"52
grep -q '^PIXEL_PLAN_CAPACITY=PASS' "$out/server.log"53
echo 'TRANSACTION_PIXELS=PASS snapshots scope ownership clean teardown'