mirror of
https://github.com/containers/podman.git
synced 2025-08-06 19:44:14 +08:00
CI: format test: make parallel-safe
Use safename instead of hardcoded object names. Requires moving a test table down, into the function itself instead of global, because the table needs to know object names. Also: sneak in a workaround for dealing with quay flakes (in image search). The local registry is allowing almost all tests to pass even when quay is down, but this one test still needs to hit quay. Signed-off-by: Ed Santiago <santiago@redhat.com>
This commit is contained in:
@ -7,41 +7,15 @@
|
|||||||
load helpers
|
load helpers
|
||||||
|
|
||||||
function teardown() {
|
function teardown() {
|
||||||
# In case test fails: standard teardown does not wipe machines or secrets
|
# In case test fails: clean up all the entities we created
|
||||||
run_podman '?' machine rm -f mymachine
|
run_podman '?' machine rm -f "m-$(safename)"
|
||||||
run_podman '?' secret rm mysecret
|
run_podman '?' secret rm "s-$(safename)"
|
||||||
|
run_podman '?' pod rm -f "p-$(safename)"
|
||||||
|
run_podman '?' rm -f -t0 "c-$(safename)"
|
||||||
|
|
||||||
basic_teardown
|
basic_teardown
|
||||||
}
|
}
|
||||||
|
|
||||||
# Most commands can't just be run with --format; they need an argument or
|
|
||||||
# option. This table defines what those are.
|
|
||||||
#
|
|
||||||
# FIXME: once you've finished fixing them all, remove the SKIPs (just
|
|
||||||
# remove the entire lines, except for pod-inspect, just remove the SKIP
|
|
||||||
# but leave "mypod")
|
|
||||||
extra_args_table="
|
|
||||||
history | $IMAGE
|
|
||||||
image history | $IMAGE
|
|
||||||
image inspect | $IMAGE
|
|
||||||
container inspect | mycontainer
|
|
||||||
inspect | mycontainer
|
|
||||||
|
|
||||||
|
|
||||||
volume inspect | -a
|
|
||||||
secret inspect | mysecret
|
|
||||||
network inspect | podman
|
|
||||||
ps | -a
|
|
||||||
|
|
||||||
image search | $IMAGE
|
|
||||||
search | $IMAGE
|
|
||||||
|
|
||||||
pod inspect | mypod
|
|
||||||
|
|
||||||
events | --stream=false --events-backend=file
|
|
||||||
system events | --stream=false --events-backend=file
|
|
||||||
"
|
|
||||||
|
|
||||||
# podman machine is finicky. Assume we can't run it, but see below for more.
|
# podman machine is finicky. Assume we can't run it, but see below for more.
|
||||||
can_run_podman_machine=
|
can_run_podman_machine=
|
||||||
|
|
||||||
@ -118,6 +92,12 @@ function check_subcommand() {
|
|||||||
# better error messages than just "exited with error status".
|
# better error messages than just "exited with error status".
|
||||||
run_podman '?' "$@" "$cmd" $extra --format '{{"\n"}}'
|
run_podman '?' "$@" "$cmd" $extra --format '{{"\n"}}'
|
||||||
|
|
||||||
|
# Special-case workaround for quay flakes
|
||||||
|
if [[ "$status" -ne 0 ]] && [[ "$*" =~ search ]] && [[ "$output" =~ quay.io ]]; then
|
||||||
|
echo "# Ignoring probable quay flake: $output" >&3
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
# Output must always be empty.
|
# Output must always be empty.
|
||||||
#
|
#
|
||||||
# - If you see "unterminated quoted string" here, there's a
|
# - If you see "unterminated quoted string" here, there's a
|
||||||
@ -126,7 +106,7 @@ function check_subcommand() {
|
|||||||
# - If you see any other error, it probably means that someone
|
# - If you see any other error, it probably means that someone
|
||||||
# added a new podman subcommand that supports --format but
|
# added a new podman subcommand that supports --format but
|
||||||
# needs some sort of option or argument to actually run.
|
# needs some sort of option or argument to actually run.
|
||||||
# See 'extra_args_table' at the top of this script.
|
# See 'extra_args_table' below.
|
||||||
#
|
#
|
||||||
assert "$output" = "" "$command_string --format '{{\"\n\"}}'"
|
assert "$output" = "" "$command_string --format '{{\"\n\"}}'"
|
||||||
|
|
||||||
@ -138,22 +118,53 @@ function check_subcommand() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Test entry point
|
# Test entry point
|
||||||
|
# bats test_tags=ci:parallel
|
||||||
@test "check Go template formatting" {
|
@test "check Go template formatting" {
|
||||||
skip_if_remote
|
skip_if_remote
|
||||||
|
|
||||||
|
ctrname="c-$(safename)"
|
||||||
|
podname="p-$(safename)"
|
||||||
|
secretname="s-$(safename)"
|
||||||
# Setup: some commands need a container, pod, secret, ...
|
# Setup: some commands need a container, pod, secret, ...
|
||||||
run_podman run -d --name mycontainer $IMAGE top
|
run_podman run -d --name $ctrname $IMAGE top
|
||||||
run_podman pod create mypod
|
run_podman pod create $podname
|
||||||
run_podman secret create mysecret /etc/hosts
|
run_podman secret create $secretname /etc/hosts
|
||||||
|
|
||||||
|
# Most commands can't just be run with --format; they need an argument or
|
||||||
|
# option. This table defines what those are.
|
||||||
|
extra_args_table="
|
||||||
|
history | $IMAGE
|
||||||
|
image history | $IMAGE
|
||||||
|
image inspect | $IMAGE
|
||||||
|
container inspect | $ctrname
|
||||||
|
inspect | $ctrname
|
||||||
|
|
||||||
|
|
||||||
|
volume inspect | -a
|
||||||
|
secret inspect | $secretname
|
||||||
|
network inspect | podman
|
||||||
|
ps | -a
|
||||||
|
|
||||||
|
image search | $IMAGE
|
||||||
|
search | $IMAGE
|
||||||
|
|
||||||
|
pod inspect | $podname
|
||||||
|
|
||||||
|
events | --stream=false --events-backend=file
|
||||||
|
system events | --stream=false --events-backend=file
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ...or machine. But podman machine is ultra-finicky, it fails as root
|
# ...or machine. But podman machine is ultra-finicky, it fails as root
|
||||||
# or if qemu is missing. Instead of checking for all the possible ways
|
# or if qemu is missing. Instead of checking for all the possible ways
|
||||||
# to skip it, just try running init. If it works, we can test it.
|
# to skip it, just try running init. If it works, we can test it.
|
||||||
run_podman '?' machine init --image=/dev/null mymachine
|
machinename="m-$(safename)"
|
||||||
|
run_podman '?' machine init --image=/dev/null $machinename
|
||||||
if [[ $status -eq 0 ]]; then
|
if [[ $status -eq 0 ]]; then
|
||||||
can_run_podman_machine=true
|
can_run_podman_machine=true
|
||||||
extra_args_table+="
|
extra_args_table+="
|
||||||
machine inspect | mymachine
|
machine inspect | $machinename
|
||||||
"
|
"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -177,11 +188,10 @@ stats | --no-stream
|
|||||||
check_subcommand
|
check_subcommand
|
||||||
|
|
||||||
# Clean up
|
# Clean up
|
||||||
run_podman pod rm mypod
|
run_podman pod rm $podname
|
||||||
run_podman rmi $(pause_image)
|
run_podman rm -f -t0 $ctrname
|
||||||
run_podman rm -f -t0 mycontainer
|
run_podman secret rm $secretname
|
||||||
run_podman secret rm mysecret
|
run_podman '?' machine rm -f $machinename
|
||||||
run_podman '?' machine rm -f mymachine
|
|
||||||
|
|
||||||
# Make sure there are no leftover commands in our table - this would
|
# Make sure there are no leftover commands in our table - this would
|
||||||
# indicate a typo in the table, or a flaw in our logic such that
|
# indicate a typo in the table, or a flaw in our logic such that
|
||||||
|
Reference in New Issue
Block a user