mirror of https://github.com/containers/podman.git
fix system upgrade tests
Fix many FIXMEs in the upgrade tests. Also add a basic test for pods. Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
This commit is contained in:
parent
59dd357509
commit
5992c76f8f
|
@ -109,6 +109,8 @@ podman \$opts run -d --name myrunningcontainer --label mylabel=$LABEL_RUNNING \
|
||||||
-w /var/www \
|
-w /var/www \
|
||||||
$IMAGE /bin/busybox-extras httpd -f -p 80
|
$IMAGE /bin/busybox-extras httpd -f -p 80
|
||||||
|
|
||||||
|
podman \$opts pod create --name mypod
|
||||||
|
|
||||||
echo READY
|
echo READY
|
||||||
while :;do
|
while :;do
|
||||||
if [ -e /stop ]; then
|
if [ -e /stop ]; then
|
||||||
|
@ -136,12 +138,18 @@ EOF
|
||||||
# pollute it for use by old-podman. We must keep that pristine
|
# pollute it for use by old-podman. We must keep that pristine
|
||||||
# so old-podman is the first to write to it.
|
# so old-podman is the first to write to it.
|
||||||
#
|
#
|
||||||
|
# mount /etc/containers/storage.conf to use the same storage settings as on the host
|
||||||
|
# mount /dev/shm because the container locks are stored there
|
||||||
|
#
|
||||||
$PODMAN run -d --name podman_parent --pid=host \
|
$PODMAN run -d --name podman_parent --pid=host \
|
||||||
--privileged \
|
--privileged \
|
||||||
--net=host \
|
--net=host \
|
||||||
--cgroupns=host \
|
--cgroupns=host \
|
||||||
|
--pid=host \
|
||||||
|
-v /etc/containers/storage.conf:/etc/containers/storage.conf \
|
||||||
-v /dev/fuse:/dev/fuse \
|
-v /dev/fuse:/dev/fuse \
|
||||||
-v /run/crun:/run/crun \
|
-v /run/crun:/run/crun \
|
||||||
|
-v /dev/shm:/dev/shm \
|
||||||
-v $pmroot:$pmroot \
|
-v $pmroot:$pmroot \
|
||||||
$OLD_PODMAN $pmroot/setup
|
$OLD_PODMAN $pmroot/setup
|
||||||
|
|
||||||
|
@ -175,10 +183,11 @@ EOF
|
||||||
run_podman ps -a \
|
run_podman ps -a \
|
||||||
--format '{{.Names}}--{{.Status}}--{{.Ports}}--{{.Labels.mylabel}}' \
|
--format '{{.Names}}--{{.Status}}--{{.Ports}}--{{.Labels.mylabel}}' \
|
||||||
--sort=names
|
--sort=names
|
||||||
is "${lines[0]}" "mycreatedcontainer--Created----$LABEL_CREATED" "created"
|
is "${lines[0]}" ".*-infra--Created----<no value>" "infra container"
|
||||||
is "${lines[1]}" "mydonecontainer--Exited (0).*----<no value>" "done"
|
is "${lines[1]}" "mycreatedcontainer--Created----$LABEL_CREATED" "created"
|
||||||
is "${lines[2]}" "myfailedcontainer--Exited (17) .*----$LABEL_FAILED" "fail"
|
is "${lines[2]}" "mydonecontainer--Exited (0).*----<no value>" "done"
|
||||||
is "${lines[3]}" "myrunningcontainer--Up .*----$LABEL_RUNNING" "running"
|
is "${lines[3]}" "myfailedcontainer--Exited (17) .*----$LABEL_FAILED" "fail"
|
||||||
|
is "${lines[4]}" "myrunningcontainer--Up .*----$LABEL_RUNNING" "running"
|
||||||
|
|
||||||
# For debugging: dump containers and IDs
|
# For debugging: dump containers and IDs
|
||||||
if [[ -n "$PODMAN_UPGRADE_TEST_DEBUG" ]]; then
|
if [[ -n "$PODMAN_UPGRADE_TEST_DEBUG" ]]; then
|
||||||
|
@ -206,9 +215,6 @@ failed | exited | 17
|
||||||
@test "logs" {
|
@test "logs" {
|
||||||
run_podman logs mydonecontainer
|
run_podman logs mydonecontainer
|
||||||
is "$output" "++$RANDOM_STRING_1++" "podman logs on stopped container"
|
is "$output" "++$RANDOM_STRING_1++" "podman logs on stopped container"
|
||||||
|
|
||||||
# run_podman logs myrunningcontainer
|
|
||||||
# is "$output" "READY" "podman logs on running container"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "exec" {
|
@test "exec" {
|
||||||
|
@ -226,45 +232,36 @@ failed | exited | 17
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "pods" {
|
@test "pods" {
|
||||||
skip "TBI"
|
run_podman pod inspect mypod
|
||||||
|
is "$output" ".*mypod.*"
|
||||||
|
|
||||||
|
run_podman --cgroup-manager=cgroupfs pod start mypod
|
||||||
|
is "$output" "[0-9a-f]\\{64\\}" "podman pod start"
|
||||||
|
|
||||||
|
run_podman pod ps
|
||||||
|
is "$output" ".*mypod.*" "podman pod ps shows name"
|
||||||
|
is "$output" ".*Running.*" "podman pod ps shows running state"
|
||||||
|
|
||||||
|
run_podman pod stop mypod
|
||||||
|
is "$output" "[0-9a-f]\\{64\\}" "podman pod stop"
|
||||||
|
|
||||||
|
run_podman --cgroup-manager=cgroupfs pod rm mypod
|
||||||
|
# FIXME: CI runs show this (non fatal) error:
|
||||||
|
# Error updating pod <ID> conmon cgroup PID limit: open /sys/fs/cgroup/libpod_parent/<ID>/conmon/pids.max: no such file or directory
|
||||||
|
# Investigate how to fix this (likely a race condition)
|
||||||
|
# Let's ignore the logrus messages for now
|
||||||
|
is "$output" ".*[0-9a-f]\\{64\\}" "podman pod rm"
|
||||||
}
|
}
|
||||||
|
|
||||||
# FIXME: commit? kill? network? pause? restart? top? volumes? What else?
|
# FIXME: commit? kill? network? pause? restart? top? volumes? What else?
|
||||||
|
|
||||||
|
|
||||||
@test "start" {
|
@test "start" {
|
||||||
skip "FIXME: this leaves a mount behind: root/overlay/sha/merged"
|
|
||||||
run_podman --cgroup-manager=cgroupfs start -a mydonecontainer
|
run_podman --cgroup-manager=cgroupfs start -a mydonecontainer
|
||||||
is "$output" "++$RANDOM_STRING_1++" "start on already-run container"
|
is "$output" "++$RANDOM_STRING_1++" "start on already-run container"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "rm a stopped container" {
|
@test "rm a stopped container" {
|
||||||
# FIXME FIXME FIXME!
|
|
||||||
#
|
|
||||||
# I have no idea what's going on here. For most of my testing in this
|
|
||||||
# section, the code here was simply 'podman rm myfailedcontainer', and
|
|
||||||
# it would succeed, but then way down, in 'cleanup' below, the 'rm -f'
|
|
||||||
# step would fail:
|
|
||||||
#
|
|
||||||
# # podman rm -f podman_parent
|
|
||||||
# error freeing lock for container <sha>: no such file or directory
|
|
||||||
# ...where <sha> is the ID of the podman_parent container.
|
|
||||||
#
|
|
||||||
# I started playing with this section, by adding 'rm mydonecontainer',
|
|
||||||
# and now it always fails, the same way, but with the container we're
|
|
||||||
# removing right here:
|
|
||||||
#
|
|
||||||
# error freeing lock for container <sha>: no such file or directory
|
|
||||||
# ...where <sha> is the ID of mydonecontainer.
|
|
||||||
#
|
|
||||||
# I don't know. I give up for now, and am skip'ing the whole thing.
|
|
||||||
# If you want to play with it, try commenting out the 'myfailed' lines,
|
|
||||||
# or just the 'mydone' ones, or, I don't know.
|
|
||||||
skip "FIXME: error freeing lock for container <sha>: no such file or dir"
|
|
||||||
|
|
||||||
# For debugging, so we can see what 'error freeing lock' refers to
|
|
||||||
run_podman ps -a
|
|
||||||
|
|
||||||
run_podman rm myfailedcontainer
|
run_podman rm myfailedcontainer
|
||||||
is "$output" "[0-9a-f]\\{64\\}" "podman rm myfailedcontainer"
|
is "$output" "[0-9a-f]\\{64\\}" "podman rm myfailedcontainer"
|
||||||
|
|
||||||
|
@ -274,12 +271,6 @@ failed | exited | 17
|
||||||
|
|
||||||
|
|
||||||
@test "stop and rm" {
|
@test "stop and rm" {
|
||||||
# About a ten-second pause, then:
|
|
||||||
# Error: timed out waiting for file /tmp/pu.nf747w/tmp/exits/<sha>: internal libpod error
|
|
||||||
# It doesn't seem to be a socket-length issue: the paths are ~80-88 chars.
|
|
||||||
# Leaving podman_parent running, and exec'ing into it, it doesn't look
|
|
||||||
# like the file is being written to the wrong place.
|
|
||||||
skip "FIXME: this doesn't work: timed out waiting for file tmpdir/exits/sha"
|
|
||||||
run_podman stop myrunningcontainer
|
run_podman stop myrunningcontainer
|
||||||
run_podman rm myrunningcontainer
|
run_podman rm myrunningcontainer
|
||||||
}
|
}
|
||||||
|
@ -304,7 +295,6 @@ failed | exited | 17
|
||||||
run_podman logs podman_parent
|
run_podman logs podman_parent
|
||||||
run_podman rm -f podman_parent
|
run_podman rm -f podman_parent
|
||||||
|
|
||||||
# FIXME: why does this remain mounted?
|
|
||||||
umount $PODMAN_UPGRADE_WORKDIR/root/overlay || true
|
umount $PODMAN_UPGRADE_WORKDIR/root/overlay || true
|
||||||
|
|
||||||
rm -rf $PODMAN_UPGRADE_WORKDIR
|
rm -rf $PODMAN_UPGRADE_WORKDIR
|
||||||
|
|
Loading…
Reference in New Issue