summaryrefslogtreecommitdiff
path: root/test/system/010-images.bats
diff options
context:
space:
mode:
authorEd Santiago <santiago@redhat.com>2019-02-20 13:19:20 -0700
committerEd Santiago <santiago@redhat.com>2019-03-07 13:09:54 -0700
commit681eae9bcc856f8dad107765a97c29d0fe093d4a (patch)
treea8224181c5b01ebfece7e309117b9bc1d4e5a9a0 /test/system/010-images.bats
parent1b253cf73a360557196213684cec63b37407ed7c (diff)
downloadpodman-681eae9bcc856f8dad107765a97c29d0fe093d4a.tar.gz
podman-681eae9bcc856f8dad107765a97c29d0fe093d4a.tar.bz2
podman-681eae9bcc856f8dad107765a97c29d0fe093d4a.zip
new system tests under BATS
Initial attempt at writing a framework for podman system tests. The idea is to define a useful set of primitives that will make it easy to write actual tests and to interpret results of failing ones. This is a proof-of-concept right now; only a small number of tests, by no means comprehensive. I am requesting review in order to find showstopper problems: reasons why this approach cannot work. Should there be none, we can work toward running these as gating tests for Fedora and RHEL8. Signed-off-by: Ed Santiago <santiago@redhat.com>
Diffstat (limited to 'test/system/010-images.bats')
-rw-r--r--test/system/010-images.bats46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/system/010-images.bats b/test/system/010-images.bats
new file mode 100644
index 000000000..b88f6c2e1
--- /dev/null
+++ b/test/system/010-images.bats
@@ -0,0 +1,46 @@
+#!/usr/bin/env bats
+
+load helpers
+
+@test "podman images - basic output" {
+ run_podman images -a
+
+ is "${lines[0]}" "REPOSITORY *TAG *IMAGE ID *CREATED *SIZE" "header line"
+ is "${lines[1]}" "$PODMAN_TEST_IMAGE_REGISTRY/$PODMAN_TEST_IMAGE_USER/$PODMAN_TEST_IMAGE_NAME *$PODMAN_TEST_IMAGE_TAG *[0-9a-f]\+" "podman images output"
+}
+
+@test "podman images - custom formats" {
+ tests="
+--format {{.ID}} | [0-9a-f]\\\{12\\\}
+--format {{.ID}} --no-trunc | sha256:[0-9a-f]\\\{64\\\}
+--format {{.Repository}}:{{.Tag}} | $PODMAN_TEST_IMAGE_FQN
+"
+
+ parse_table "$tests" | while read fmt expect; do
+ run_podman images $fmt
+ is "$output" "$expect\$" "podman images $fmt"
+ done
+
+}
+
+
+@test "podman images - json" {
+ type -path jq >/dev/null || die "FAIL: please 'dnf -y install jq'"
+
+ tests="
+names[0] | $PODMAN_TEST_IMAGE_FQN
+id | [0-9a-f]\\\{64\\\}
+digest | sha256:[0-9a-f]\\\{64\\\}
+created | [0-9-]\\\+T[0-9:]\\\+\\\.[0-9]\\\+Z
+size | [0-9]\\\+
+"
+
+ run_podman images -a --format json
+
+ parse_table "$tests" | while read field expect; do
+ actual=$(echo "$output" | jq -r ".[0].$field")
+ dprint "# actual=<$actual> expect=<$expect}>"
+ is "$actual" "$expect" "jq .$field"
+ done
+
+}