tests for exit status on podman run --rm
...and on a container killed by 'podman rm -f'. See #3795 Disable when testing podman-remote; see #3808 Signed-off-by: Ed Santiago <santiago@redhat.com>
This commit is contained in:
parent
bf9e801f11
commit
4fb7036ca1
|
|
@ -43,4 +43,17 @@ echo $rand | 0 | $rand
|
|||
is "$output" "" "unwanted /sys/kernel in 'mount' output (with --net=host)"
|
||||
}
|
||||
|
||||
# 'run --rm' goes through different code paths and may lose exit status.
|
||||
# See https://github.com/containers/libpod/issues/3795
|
||||
@test "podman run --rm" {
|
||||
skip_if_remote "podman-remote does not handle exit codes"
|
||||
|
||||
run_podman 0 run --rm $IMAGE /bin/true
|
||||
run_podman 1 run --rm $IMAGE /bin/false
|
||||
|
||||
# Believe it or not, 'sh -c' resulted in different behavior
|
||||
run_podman 0 run --rm $IMAGE sh -c /bin/true
|
||||
run_podman 1 run --rm $IMAGE sh -c /bin/false
|
||||
}
|
||||
|
||||
# vim: filetype=sh
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env bats -*- bats -*-
|
||||
#
|
||||
# tests for podman rm
|
||||
#
|
||||
|
||||
load helpers
|
||||
|
||||
@test "podman rm" {
|
||||
rand=$(random_string 30)
|
||||
run_podman run --name $rand $IMAGE /bin/true
|
||||
|
||||
# Don't care about output, just check exit status (it should exist)
|
||||
run_podman 0 inspect $rand
|
||||
|
||||
# container should be in output of 'ps -a'
|
||||
run_podman ps -a
|
||||
is "$output" ".* $IMAGE .*/true .* $rand" "Container present in 'ps -a'"
|
||||
|
||||
# Remove container; now 'inspect' should fail
|
||||
run_podman rm $rand
|
||||
run_podman 125 inspect $rand
|
||||
}
|
||||
|
||||
# I'm sorry! This test takes 13 seconds. There's not much I can do about it,
|
||||
# please know that I think it's justified: podman 1.5.0 had a strange bug
|
||||
# in with exit status was not preserved on some code paths with 'rm -f'
|
||||
# or 'podman run --rm' (see also 030-run.bats). The test below is a bit
|
||||
# kludgy: what we care about is the exit status of the killed container,
|
||||
# not 'podman rm', but BATS has no provision (that I know of) for forking,
|
||||
# so what we do is start the 'rm' beforehand and monitor the exit status
|
||||
# of the 'sleep' container.
|
||||
#
|
||||
# See https://github.com/containers/libpod/issues/3795
|
||||
@test "podman rm -f" {
|
||||
skip_if_remote "podman-remote does not handle exit codes"
|
||||
|
||||
rand=$(random_string 30)
|
||||
( sleep 3; run_podman rm -f $rand ) &
|
||||
run_podman 137 run --name $rand $IMAGE sleep 30
|
||||
}
|
||||
|
||||
# vim: filetype=sh
|
||||
Loading…
Reference in New Issue