Skip to content

Commit

Permalink
system tests: cleanup
Browse files Browse the repository at this point in the history
- run tests: better "skip" message for docker-archive test;
  remove FIXME, document that podman-remote doesn't support it

- run tests: instrument the --conmon-pidfile test in hopes
  of tracking down flake containers#7580: cross-check pidfile against
  output of 'podman inspect', and add some debug messages
  that will only be seen on test failure.

- load tests: the pipe test: save and load a temporary tag,
  not $IMAGE. Primary reason is because of containers#7371, in which
  'podman load' assigns a new image ID (instead of preserving
  the saved one). This messes with our image management, and
  it turns out to be nonfixable.

Signed-off-by: Ed Santiago <[email protected]>
  • Loading branch information
edsantiago committed Sep 10, 2020
1 parent 96bc5eb commit 1cb7bdc
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 12 deletions.
18 changes: 14 additions & 4 deletions test/system/030-run.bats
Original file line number Diff line number Diff line change
Expand Up @@ -189,9 +189,19 @@ echo $rand | 0 | $rand

is "$(< $cidfile)" "$cid" "contents of cidfile == container ID"

conmon_pid=$(< $pidfile)
is "$(readlink /proc/$conmon_pid/exe)" ".*/conmon" \
"conmon pidfile (= PID $conmon_pid) points to conmon process"
# Cross-check --conmon-pidfile against 'podman inspect'
local conmon_pid_from_file=$(< $pidfile)
run_podman inspect --format '{{.State.ConmonPid}}' $cid
local conmon_pid_from_inspect="$output"
is "$conmon_pid_from_file" "$conmon_pid_from_inspect" \
"Conmon pid in pidfile matches what 'podman inspect' claims"

# /proc/PID/exe should be a symlink to a conmon executable
# FIXME: 'echo' and 'ls' are to help debug #7580, a CI flake
echo "conmon pid = $conmon_pid_from_file"
ls -l /proc/$conmon_pid_from_file
is "$(readlink /proc/$conmon_pid_from_file/exe)" ".*/conmon" \
"conmon pidfile (= PID $conmon_pid_from_file) points to conmon process"

# All OK. Kill container.
run_podman rm -f $cid
Expand All @@ -204,7 +214,7 @@ echo $rand | 0 | $rand
}

@test "podman run docker-archive" {
skip_if_remote "FIXME: pending #7116"
skip_if_remote "podman-remote does not support docker-archive (#7116)"

# Create an image that, when run, outputs a random magic string
expect=$(random_string 20)
Expand Down
34 changes: 26 additions & 8 deletions test/system/120-load.bats
Original file line number Diff line number Diff line change
Expand Up @@ -27,25 +27,43 @@ verify_iid_and_name() {
}

@test "podman save to pipe and load" {
get_iid_and_name
# Generate a random name and tag (must be lower-case)
local random_name=x$(random_string 12 | tr A-Z a-z)
local random_tag=t$(random_string 7 | tr A-Z a-z)
local fqin=localhost/$random_name:$random_tag
run_podman tag $IMAGE $fqin

archive=$PODMAN_TMPDIR/myimage-$(random_string 8).tar

# We can't use run_podman because that uses the BATS 'run' function
# which redirects stdout and stderr. Here we need to guarantee
# that podman's stdout is a pipe, not any other form of redirection
$PODMAN save --format oci-archive $IMAGE | cat >$archive
$PODMAN save --format oci-archive $fqin | cat >$archive
if [ "$status" -ne 0 ]; then
die "Command failed: podman save ... | cat"
fi

# Make sure we can reload it
# FIXME: when/if 7337 gets fixed, add a random tag instead of rmi'ing
# FIXME: when/if 7371 gets fixed, use verify_iid_and_name()
run_podman rmi $iid
run_podman rmi $fqin
run_podman load -i $archive

# FIXME: cannot compare IID, see #7371
run_podman images -a --format '{{.Repository}}:{{.Tag}}'
is "$output" "$IMAGE" "image preserves name across save/load"
# FIXME: cannot compare IID, see #7371, so we check only the tag
run_podman images $fqin --format '{{.Repository}}:{{.Tag}}'
is "$output" "$fqin" "image preserves name across save/load"

# FIXME: when/if 7337 gets fixed, load with a new tag
if false; then
local new_name=x$(random_string 14 | tr A-Z a-z)
local new_tag=t$(random_string 6 | tr A-Z a-z)
run_podman rmi $fqin
fqin=localhost/$new_name:$new_tag
run_podman load -i $archive $fqin
run_podman images $fqin --format '{{.Repository}}:{{.Tag}}'
is "$output" "$fqin" "image can be loaded with new name:tag"
fi

# Clean up
run_podman rmi $fqin
}


Expand Down

0 comments on commit 1cb7bdc

Please sign in to comment.