mirror of
https://github.com/containers/podman.git
synced 2025-12-05 12:52:12 +08:00
...and instrument with 'podman ps'es for debugging failures. Test flakes pretty regularly in Fedora gating. If the increased timeout doesn't help, at least we should be able to see if the container is stopping or failed or something. Signed-off-by: Ed Santiago <santiago@redhat.com>
82 lines
2.1 KiB
Bash
82 lines
2.1 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load helpers
|
|
|
|
# Command to run in each of the tests.
|
|
SLEEPLOOP='trap "echo BYE;exit 0" INT;echo READY;while :;do sleep 0.1;done'
|
|
|
|
# Main test code: wait for container to exist and be ready, send it a
|
|
# signal, wait for container to acknowledge and exit.
|
|
function _test_sigproxy() {
|
|
local cname=$1
|
|
local kidpid=$2
|
|
|
|
# Wait for container to appear
|
|
local timeout=10
|
|
while :;do
|
|
sleep 0.5
|
|
run_podman '?' container exists $cname
|
|
if [[ $status -eq 0 ]]; then
|
|
break
|
|
fi
|
|
timeout=$((timeout - 1))
|
|
if [[ $timeout -eq 0 ]]; then
|
|
run_podman ps -a
|
|
die "Timed out waiting for container $cname to start"
|
|
fi
|
|
done
|
|
|
|
# Now that container exists, wait for it to declare itself READY
|
|
wait_for_ready $cname
|
|
|
|
# Signal, and wait for container to exit
|
|
kill -INT $kidpid
|
|
timeout=20
|
|
while :;do
|
|
sleep 0.5
|
|
run_podman logs $cname
|
|
if [[ "$output" =~ BYE ]]; then
|
|
break
|
|
fi
|
|
timeout=$((timeout - 1))
|
|
if [[ $timeout -eq 0 ]]; then
|
|
run_podman ps -a
|
|
die "Timed out waiting for BYE from container"
|
|
fi
|
|
done
|
|
|
|
run_podman rm -f -t0 $cname
|
|
}
|
|
|
|
# Each of the tests below does some setup, then invokes the above helper.
|
|
|
|
@test "podman sigproxy test: run" {
|
|
# We're forced to use $PODMAN because run_podman cannot be backgrounded
|
|
$PODMAN run -i --name c_run $IMAGE sh -c "$SLEEPLOOP" &
|
|
local kidpid=$!
|
|
|
|
_test_sigproxy c_run $kidpid
|
|
}
|
|
|
|
@test "podman sigproxy test: start" {
|
|
run_podman create --name c_start $IMAGE sh -c "$SLEEPLOOP"
|
|
|
|
# See above comments regarding $PODMAN and backgrounding
|
|
$PODMAN start --attach c_start &
|
|
local kidpid=$!
|
|
|
|
_test_sigproxy c_start $kidpid
|
|
}
|
|
|
|
@test "podman sigproxy test: attach" {
|
|
run_podman run -d --name c_attach $IMAGE sh -c "$SLEEPLOOP"
|
|
|
|
# See above comments regarding $PODMAN and backgrounding
|
|
$PODMAN attach c_attach &
|
|
local kidpid=$!
|
|
|
|
_test_sigproxy c_attach $kidpid
|
|
}
|
|
|
|
# vim: filetype=sh
|