Files
next.orly.dev/scripts/run-policy-test.sh
mleku 65e8ab4fbe
Some checks failed
Go / build (push) Has been cancelled
Go / release (push) Has been cancelled
Enhance logging and add policy test client
- Refactored logOutput function to trace-log stdout and stderr lines for better debugging.
- Introduced a new policy test client in cmd/policytest/main.go to publish events and check policy responses.
- Added a script to run the policy test, ensuring proper cleanup and error handling.
- Updated policy event processing to ensure newline-terminated JSON for compatibility with shell-readers.
2025-10-20 16:30:39 +01:00

54 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# Config
PORT=${PORT:-34567}
URL=${URL:-ws://127.0.0.1:${PORT}}
LOG=/tmp/orly-policy.out
PID=/tmp/orly-policy.pid
DATADIR=$(mktemp -d)
cleanup() {
trap - EXIT
if [[ -f "$PID" ]]; then
kill -INT "$(cat "$PID")" 2>/dev/null || true
rm -f "$PID"
fi
rm -rf "$DATADIR"
}
trap cleanup EXIT
echo "Building relay and test client..."
go build -o orly .
go build -o cmd/policytest/policytest ./cmd/policytest
echo "Starting relay on ${URL} with policy enabled (data dir: ${DATADIR})..."
ORLY_DATA_DIR="$DATADIR" \
ORLY_PORT=${PORT} \
ORLY_POLICY_ENABLED=true \
ORLY_ACL_MODE=none \
ORLY_LOG_LEVEL=trace \
./orly >"$LOG" 2>&1 & echo $! >"$PID"
sleep 1
if ! ps -p "$(cat "$PID")" >/dev/null 2>&1; then
echo "Relay failed to start; logs:" >&2
sed -n '1,200p' "$LOG" >&2
exit 1
fi
echo "Running policy test against ${URL}..."
set +e
out=$(cmd/policytest/policytest -url "${URL}" 2>&1)
rc=$?
set -e
echo "$out"
# Expect rejection; return 0 if we saw REJECT, else forward exit code
if grep -q '^REJECT:' <<<"$out"; then
exit 0
fi
exit $rc