mirror of https://github.com/containers/podman.git
Merge pull request #14600 from edsantiago/argh
system tests: avoid rmi -a ... plus cleanup
This commit is contained in:
commit
e6fe06f591
|
@ -762,7 +762,7 @@ EOF
|
||||||
is "$output" "[no instance of 'Using cache']" "no cache used"
|
is "$output" "[no instance of 'Using cache']" "no cache used"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
run_podman rmi -a --force
|
run_podman rmi -f build_test
|
||||||
}
|
}
|
||||||
|
|
||||||
# Caveat lector: this test was mostly copy-pasted from buildah in #9275.
|
# Caveat lector: this test was mostly copy-pasted from buildah in #9275.
|
||||||
|
|
|
@ -27,7 +27,6 @@ function teardown() {
|
||||||
rm -f "$UNIT_FILE"
|
rm -f "$UNIT_FILE"
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
fi
|
fi
|
||||||
run_podman rmi -a
|
|
||||||
|
|
||||||
basic_teardown
|
basic_teardown
|
||||||
}
|
}
|
||||||
|
@ -53,10 +52,17 @@ function service_setup() {
|
||||||
|
|
||||||
# Helper to stop a systemd service running a container
|
# Helper to stop a systemd service running a container
|
||||||
function service_cleanup() {
|
function service_cleanup() {
|
||||||
local status=$1
|
|
||||||
run systemctl stop "$SERVICE_NAME"
|
run systemctl stop "$SERVICE_NAME"
|
||||||
assert $status -eq 0 "Error stopping systemd unit $SERVICE_NAME: $output"
|
assert $status -eq 0 "Error stopping systemd unit $SERVICE_NAME: $output"
|
||||||
|
|
||||||
|
# Regression test for #11304: confirm that unit stops into correct state
|
||||||
|
local expected_state="$1"
|
||||||
|
if [[ -n "$expected_state" ]]; then
|
||||||
|
run systemctl show --property=ActiveState "$SERVICE_NAME"
|
||||||
|
assert "$output" = "ActiveState=$expected_state" \
|
||||||
|
"state of service after systemctl stop"
|
||||||
|
fi
|
||||||
|
|
||||||
run systemctl disable "$SERVICE_NAME"
|
run systemctl disable "$SERVICE_NAME"
|
||||||
assert $status -eq 0 "Error disabling systemd unit $SERVICE_NAME: $output"
|
assert $status -eq 0 "Error disabling systemd unit $SERVICE_NAME: $output"
|
||||||
|
|
||||||
|
@ -88,26 +94,28 @@ function service_cleanup() {
|
||||||
@test "podman autoupdate local" {
|
@test "podman autoupdate local" {
|
||||||
# Note that the entrypoint may be a JSON string which requires preserving the quotes (see #12477)
|
# Note that the entrypoint may be a JSON string which requires preserving the quotes (see #12477)
|
||||||
cname=$(random_string)
|
cname=$(random_string)
|
||||||
run_podman create --name $cname --label "io.containers.autoupdate=local" --entrypoint '["top"]' $IMAGE
|
|
||||||
|
# Create a scratch image (copy of our regular one)
|
||||||
|
image_copy=base$(random_string | tr A-Z a-z)
|
||||||
|
run_podman tag $IMAGE $image_copy
|
||||||
|
|
||||||
|
# Create a container based on that
|
||||||
|
run_podman create --name $cname --label "io.containers.autoupdate=local" --entrypoint '["top"]' $image_copy
|
||||||
|
|
||||||
# Start systemd service to run this container
|
# Start systemd service to run this container
|
||||||
service_setup
|
service_setup
|
||||||
|
|
||||||
# Give container time to start; make sure output looks top-like
|
# Give container time to start; make sure output looks top-like
|
||||||
sleep 2
|
wait_for_output 'Load average' $cname
|
||||||
run_podman logs $cname
|
|
||||||
is "$output" ".*Load average:.*" "running container 'top'-like output"
|
|
||||||
|
|
||||||
# Save the container id before updating
|
|
||||||
run_podman ps --format '{{.ID}}'
|
|
||||||
|
|
||||||
# Run auto-update and check that it restarted the container
|
# Run auto-update and check that it restarted the container
|
||||||
run_podman commit --change "CMD=/bin/bash" $cname $IMAGE
|
run_podman commit --change "CMD=/bin/bash" $cname $image_copy
|
||||||
run_podman auto-update
|
run_podman auto-update
|
||||||
is "$output" ".*$SERVICE_NAME.*" "autoupdate local restarted container"
|
is "$output" ".*$SERVICE_NAME.*" "autoupdate local restarted container"
|
||||||
|
|
||||||
# All good. Stop service, clean up.
|
# All good. Stop service, clean up.
|
||||||
service_cleanup
|
service_cleanup
|
||||||
|
run_podman rmi $image_copy
|
||||||
}
|
}
|
||||||
|
|
||||||
# These tests can fail in dev. environment because of SELinux.
|
# These tests can fail in dev. environment because of SELinux.
|
||||||
|
@ -235,6 +243,7 @@ LISTEN_FDNAMES=listen_fdnames" | sort)
|
||||||
|
|
||||||
run_podman rm -f $cname
|
run_podman rm -f $cname
|
||||||
run_podman pod rm -f $podname
|
run_podman pod rm -f $podname
|
||||||
|
run_podman rmi $(pause_image)
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "podman generate - systemd template only used on --new" {
|
@test "podman generate - systemd template only used on --new" {
|
||||||
|
@ -295,6 +304,8 @@ LISTEN_FDNAMES=listen_fdnames" | sort)
|
||||||
unit_file="contrib/systemd/system/${unit_name}"
|
unit_file="contrib/systemd/system/${unit_name}"
|
||||||
if [[ -e ${unit_file}.in ]]; then
|
if [[ -e ${unit_file}.in ]]; then
|
||||||
echo "# [Building & using $unit_name from source]" >&3
|
echo "# [Building & using $unit_name from source]" >&3
|
||||||
|
# Force regenerating unit file (existing one may have /usr/bin path)
|
||||||
|
rm -f $unit_file
|
||||||
BINDIR=$(dirname $PODMAN) make $unit_file
|
BINDIR=$(dirname $PODMAN) make $unit_file
|
||||||
cp $unit_file $UNIT_DIR/$unit_name
|
cp $unit_file $UNIT_DIR/$unit_name
|
||||||
fi
|
fi
|
||||||
|
@ -360,6 +371,8 @@ EOF
|
||||||
systemctl stop $service_name
|
systemctl stop $service_name
|
||||||
run_podman 1 container exists $service_container
|
run_podman 1 container exists $service_container
|
||||||
run_podman 1 pod exists test_pod
|
run_podman 1 pod exists test_pod
|
||||||
|
run_podman rmi $(pause_image)
|
||||||
|
rm -f $UNIT_DIR/$unit_name
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "podman-system-service containers survive service stop" {
|
@test "podman-system-service containers survive service stop" {
|
||||||
|
|
Loading…
Reference in New Issue