mirror of
https://github.com/containers/podman
synced 2024-10-21 01:34:37 +00:00
a9dbd2b3de
CI and system tests currently pull some images from docker.io. Eliminate that, by: - building a custom image containing much of what we need for testing; and - copying other needed images to quay.io (Reason: effective 2020-11-01 docker.io will limit the number of image pulls). The principal change is to create a new quay.io/libpod/testimage, using the new test/system/build-testimage script, instead of relying on quay.io/libpod/alpine_labels. We also switch to using a hardcoded :YYYYMMDD tag, instead of :latest, in an attempt to futureproof our CI. This image includes 'httpd' from busybox-extras, which we use in our networking test (previously we had to pull and run busybox from docker.io). The testimage can and should be extended as needed for future tests, e.g. adding test file content or other useful tools. For the '--pull' tests which require actually pulling from the registry, I've created an image with the same name but tagged :00000000 so it will never be pulled by default. Since this image is only used minimally, it's just busybox. Unfortunately there remain two cases we cannot solve in this tiny alpine-based image: 1) docker registry 2) systemd For those, I've (manually) run: podman pull [ docker.io/library/registry:2.7 | registry.fedoraproject.org/fedora:31 ] podman tag !$ quay.io/... podman push !$ ...and amended the calling tests accordingly. I've tried to make the the smallest reasonable diff, not the smallest possible one. I hope it's a reasonable tradeoff. Signed-off-by: Ed Santiago <santiago@redhat.com>
51 lines
1.4 KiB
Bash
51 lines
1.4 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load helpers
|
|
|
|
@test "podman history - basic tests" {
|
|
tests="
|
|
| .*[0-9a-f]\\\{12\\\} .* CMD .* LABEL
|
|
--format '{{.ID}} {{.Created}}' | .*[0-9a-f]\\\{12\\\} .* ago
|
|
--human=false | .*[0-9a-f]\\\{12\\\} *[0-9-]\\\+T[0-9:]\\\+Z
|
|
-qH | .*[0-9a-f]\\\{12\\\}
|
|
--no-trunc | .*[0-9a-f]\\\{64\\\}
|
|
"
|
|
|
|
parse_table "$tests" | while read options expect; do
|
|
if [ "$options" = "''" ]; then options=; fi
|
|
|
|
eval set -- "$options"
|
|
|
|
run_podman history "$@" $IMAGE
|
|
is "$output" "$expect" "podman history $options"
|
|
done
|
|
}
|
|
|
|
@test "podman history - json" {
|
|
# Sigh. Timestamp in .created can be '...Z' or '...-06:00'
|
|
tests="
|
|
id | [0-9a-f]\\\{64\\\}
|
|
created | [0-9-]\\\+T[0-9:.]\\\+[Z0-9:+-]\\\+
|
|
size | -\\\?[0-9]\\\+
|
|
"
|
|
|
|
run_podman history --format json $IMAGE
|
|
|
|
parse_table "$tests" | while read field expect; do
|
|
# HACK: we can't include '|' in the table
|
|
if [ "$field" = "id" ]; then expect="$expect\|<missing>";fi
|
|
|
|
# output is an array of dicts; check each one
|
|
count=$(echo "$output" | jq '. | length')
|
|
i=0
|
|
while [ $i -lt $count ]; do
|
|
actual=$(echo "$output" | jq -r ".[$i].$field")
|
|
is "$actual" "$expect\$" "jq .[$i].$field"
|
|
i=$(expr $i + 1)
|
|
done
|
|
done
|
|
|
|
}
|
|
|
|
# vim: filetype=sh
|