Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CORS system test: clean up #24068

Merged
merged 1 commit into from
Sep 27, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 24 additions & 9 deletions test/system/271-tcp-cors-server.bats
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,28 @@ load helpers.network

SERVICE_NAME="podman_test_$(random_string)"

SERVICE_TCP_HOST="localhost"
SERVICE_TCP_HOST="127.0.0.1"

SERVICE_FILE="$UNIT_DIR/$SERVICE_NAME.service"
SOCKET_FILE="$UNIT_DIR/$SERVICE_NAME.socket"

# bats test_tags=ci:parallel
@test "podman system service - tcp CORS" {
skip_if_remote "system service tests are meaningless over remote"
PORT=$(random_free_port 63000-64999)
PORT=$(random_free_port)

log=${PODMAN_TMPDIR}/system-service.log
$PODMAN system service --cors="*" tcp:$SERVICE_TCP_HOST:$PORT -t 20 2> $log &
podman_pid="$!"
sleep 5s
run curl -s --max-time 10 -vvv $SERVICE_TCP_HOST:$PORT/_ping 2>&1
is "$output" ".*< Access-Control-Allow-Origin: \*.*" "access-control-allow-origin verifies CORS is set"

wait_for_port $SERVICE_TCP_HOST $PORT
cmd="curl -s --max-time 10 -vvv $SERVICE_TCP_HOST:$PORT/_ping"
echo "$_LOG_PROMPT $cmd"
run -0 $cmd
echo "$output"
assert "$output" =~ " Access-Control-Allow-Origin: \*" \
"access-control-allow-origin verifies CORS is set"

kill $podman_pid
wait $podman_pid || true

Expand All @@ -34,11 +41,19 @@ SOCKET_FILE="$UNIT_DIR/$SERVICE_NAME.socket"
# bats test_tags=ci:parallel
@test "podman system service - tcp without CORS" {
skip_if_remote "system service tests are meaningless over remote"
PORT=$(random_free_port 63000-64999)
PORT=$(random_free_port)
$PODMAN system service tcp:$SERVICE_TCP_HOST:$PORT -t 20 &
podman_pid="$!"
sleep 5s
(curl -s --max-time 10 -vvv $SERVICE_TCP_HOST:$PORT/_ping 2>&1 | grep -Eq "Access-Control-Allow-Origin:") && false || true

wait_for_port $SERVICE_TCP_HOST $PORT
cmd="curl -s --max-time 10 -vvv $SERVICE_TCP_HOST:$PORT/_ping"
echo "$_LOG_PROMPT $cmd"
run -0 $cmd
echo "$output"

assert "$output" !~ "Access-Control-Allow-Origin:" \
"CORS header should not be present"

kill $podman_pid
wait $podman_pid || true
}
Expand All @@ -47,7 +62,7 @@ SOCKET_FILE="$UNIT_DIR/$SERVICE_NAME.socket"
@test "podman system service - CORS enabled in logs" {
skip_if_remote "system service tests are meaningless over remote"

PORT=$(random_free_port 63000-64999)
PORT=$(random_free_port)
run_podman 0+w system service --log-level="debug" --cors="*" -t 1 tcp:$SERVICE_TCP_HOST:$PORT
is "$output" ".*CORS Headers were set to ..\*...*" "debug log confirms CORS headers set"
assert "$output" =~ "level=warning msg=\"Using the Podman API service with TCP sockets is not recommended" \
Expand Down