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.
This commit is contained in:
53
scripts/run-policy-test.sh
Executable file
53
scripts/run-policy-test.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user