e2e-key-server (955B)
1 #!/bin/sh 2 set -eu 3 4 repo=$(CDPATH= cd -- "$(dirname "$0")/.." && pwd) 5 server_repo=$(CDPATH= cd -- "$repo/../gotextlog-srv" && pwd) 6 tmp=$(mktemp -d) 7 pid= 8 cleanup() { 9 if [ -n "$pid" ]; then 10 kill "$pid" 2>/dev/null || true 11 wait "$pid" 2>/dev/null || true 12 fi 13 rm -rf "$tmp" 14 } 15 trap cleanup EXIT INT TERM 16 17 port=18937 18 url="http://127.0.0.1:$port" 19 ( 20 cd "$server_repo" 21 CGO_ENABLED=1 go build -mod=vendor -o "$tmp/gotextlog-srv" ./cmd/gotextlog-srv 22 ) 23 "$tmp/gotextlog-srv" -listen "127.0.0.1:$port" -public-origin "$url" -database "$tmp/textlog.db" >"$tmp/server.log" 2>&1 & 24 pid=$! 25 26 attempt=0 27 while ! curl -fsS "$url/api/v1/feeds/latest?limit=1" >/dev/null 2>&1; do 28 attempt=$((attempt + 1)) 29 if [ "$attempt" -ge 100 ]; then 30 cat "$tmp/server.log" >&2 31 exit 1 32 fi 33 sleep 0.05 34 done 35 36 cd "$repo" 37 GOTEXTLOG_TEST_SERVER_URL="$url" go test -race ./internal/tui -run TestServerEndToEndWithTwoTUIBackends -count=1