mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-06-09 01:35:18 +02:00
66 lines
2 KiB
Bash
66 lines
2 KiB
Bash
|
|
#!/bin/sh
|
||
|
|
# Self-contained test for docker/entrypoint.sh argument composition.
|
||
|
|
# Runs the entrypoint against a stub server that echoes its args, and
|
||
|
|
# asserts the forwarded argv for each startup mode. No Docker required.
|
||
|
|
#
|
||
|
|
# sh docker/entrypoint_test.sh
|
||
|
|
#
|
||
|
|
# Exits 0 on success, 1 on the first mismatch.
|
||
|
|
set -eu
|
||
|
|
|
||
|
|
here=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||
|
|
entrypoint="$here/entrypoint.sh"
|
||
|
|
|
||
|
|
work=$(mktemp -d)
|
||
|
|
trap 'rm -rf "$work"' EXIT
|
||
|
|
mkdir -p "$work/bin"
|
||
|
|
cat > "$work/bin/omnigraph-server" <<'EOF'
|
||
|
|
#!/bin/sh
|
||
|
|
echo "ARGS: $*"
|
||
|
|
EOF
|
||
|
|
chmod +x "$work/bin/omnigraph-server"
|
||
|
|
|
||
|
|
# Run the real entrypoint with SERVER_BIN pointed at the stub.
|
||
|
|
ep="$work/entrypoint.sh"
|
||
|
|
sed "s#SERVER_BIN=\"/usr/local/bin/omnigraph-server\"#SERVER_BIN=\"$work/bin/omnigraph-server\"#" \
|
||
|
|
"$entrypoint" > "$ep"
|
||
|
|
|
||
|
|
fail=0
|
||
|
|
check() {
|
||
|
|
desc=$1; want=$2; got=$3
|
||
|
|
if [ "$got" != "$want" ]; then
|
||
|
|
echo "FAIL: $desc"
|
||
|
|
echo " want: $want"
|
||
|
|
echo " got: $got"
|
||
|
|
fail=1
|
||
|
|
else
|
||
|
|
echo "ok: $desc"
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
got=$(OMNIGRAPH_TARGET_URI="s3://b/g" OMNIGRAPH_BIND="0.0.0.0:8080" sh "$ep")
|
||
|
|
check "TARGET_URI only (legacy)" \
|
||
|
|
"ARGS: s3://b/g --bind 0.0.0.0:8080" "$got"
|
||
|
|
|
||
|
|
got=$(OMNIGRAPH_TARGET_URI="s3://b/g" OMNIGRAPH_CONFIG="/etc/omnigraph/omnigraph.yaml" OMNIGRAPH_BIND="0.0.0.0:8080" sh "$ep")
|
||
|
|
check "TARGET_URI + CONFIG composes (policy)" \
|
||
|
|
"ARGS: s3://b/g --config /etc/omnigraph/omnigraph.yaml --bind 0.0.0.0:8080" "$got"
|
||
|
|
|
||
|
|
got=$(OMNIGRAPH_CONFIG="/etc/omnigraph/omnigraph.yaml" OMNIGRAPH_BIND="0.0.0.0:8080" sh "$ep")
|
||
|
|
check "CONFIG only" \
|
||
|
|
"ARGS: --config /etc/omnigraph/omnigraph.yaml --bind 0.0.0.0:8080" "$got"
|
||
|
|
|
||
|
|
got=$(OMNIGRAPH_CONFIG="/etc/omnigraph/omnigraph.yaml" OMNIGRAPH_TARGET="active" OMNIGRAPH_BIND="0.0.0.0:8080" sh "$ep")
|
||
|
|
check "CONFIG + TARGET" \
|
||
|
|
"ARGS: --config /etc/omnigraph/omnigraph.yaml --target active --bind 0.0.0.0:8080" "$got"
|
||
|
|
|
||
|
|
got=$(sh "$ep" some-uri --bind 1.2.3.4:9 --extra)
|
||
|
|
check "explicit args passthrough" \
|
||
|
|
"ARGS: some-uri --bind 1.2.3.4:9 --extra" "$got"
|
||
|
|
|
||
|
|
if [ "$fail" -ne 0 ]; then
|
||
|
|
echo "entrypoint_test: FAILED"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo "entrypoint_test: all cases passed"
|