summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Jia <chuanchang.jia@gmail.com>2020-05-28 09:55:12 +0000
committerAlex Jia <chuanchang.jia@gmail.com>2020-05-28 10:00:13 +0000
commit7e03d277f7a08e127190a4ffd052e91ffc077f3b (patch)
tree98dcae2b38fecfa2274d008d903bc5419614aefd
parentadca437d03bc74edcf3ef9b60ea55360157f893c (diff)
downloadpodman-7e03d277f7a08e127190a4ffd052e91ffc077f3b.tar.gz
podman-7e03d277f7a08e127190a4ffd052e91ffc077f3b.tar.bz2
podman-7e03d277f7a08e127190a4ffd052e91ffc077f3b.zip
test.apiv2: add testing for image and deal with API returning binary
Add testing for displaying image history and exporting image Deal with API returning binary (Content-Type =~ 'octet'). When so, set $output to the output of 'file'. Bug fix: in 't' helper, declare loop var $i as local to avoid contaminating caller Signed-off-by: Ed Santiago <santiago@redhat.com> Signed-off-by: Alex Jia <chuanchang.jia@gmail.com>
-rw-r--r--test/apiv2/10-images.at23
-rwxr-xr-xtest/apiv2/test-apiv219
2 files changed, 37 insertions, 5 deletions
diff --git a/test/apiv2/10-images.at b/test/apiv2/10-images.at
index 1c8da0c2f..2a1eaf8be 100644
--- a/test/apiv2/10-images.at
+++ b/test/apiv2/10-images.at
@@ -33,4 +33,27 @@ t GET images/$iid/json 200 \
#t POST images/create fromImage=alpine 201 foo
+# Display the image history
+t GET libpod/images/nonesuch/history 404
+
+for i in $iid ${iid:0:12} $PODMAN_TEST_IMAGE_NAME; do
+ t GET libpod/images/$i/history 200 \
+ .[0].Id=$iid \
+ .[0].Created~[0-9]\\{10\\} \
+ .[0].Tags=null \
+ .[0].Size=0 \
+ .[0].Comment=
+done
+
+# Export an image on the local
+t GET libpod/images/nonesuch/get 404
+t GET libpod/images/$iid/get?format=foo 500
+t GET libpod/images/$PODMAN_TEST_IMAGE_NAME/get?compress=bar 400
+
+for i in $iid ${iid:0:12} $PODMAN_TEST_IMAGE_NAME; do
+ t GET "libpod/images/$i/get" 200 '[POSIX tar archive]'
+ t GET "libpod/images/$i/get?compress=true" 200 '[POSIX tar archive]'
+ t GET "libpod/images/$i/get?compress=false" 200 '[POSIX tar archive]'
+done
+
# vim: filetype=sh
diff --git a/test/apiv2/test-apiv2 b/test/apiv2/test-apiv2
index 11c914704..7a3518df2 100755
--- a/test/apiv2/test-apiv2
+++ b/test/apiv2/test-apiv2
@@ -207,13 +207,21 @@ function t() {
fi
cat $WORKDIR/curl.headers.out >>$LOG 2>/dev/null || true
- output=$(< $WORKDIR/curl.result.out)
- # Log results. If JSON, filter through jq for readability
- if egrep -qi '^Content-Type: application/json' $WORKDIR/curl.headers.out; then
- jq . <<<"$output" >>$LOG
- else
+ # Log results, if text. If JSON, filter through jq for readability.
+ content_type=$(sed -ne 's/^Content-Type:[ ]\+//pi' <$WORKDIR/curl.headers.out)
+
+ if [[ $content_type =~ /octet ]]; then
+ output="[$(file --brief $WORKDIR/curl.result.out)]"
echo "$output" >>$LOG
+ else
+ output=$(< $WORKDIR/curl.result.out)
+
+ if [[ $content_type =~ application/json ]]; then
+ jq . <<<"$output" >>$LOG
+ else
+ echo "$output" >>$LOG
+ fi
fi
# Test return code
@@ -232,6 +240,7 @@ function t() {
return
fi
+ local i
for i; do
case "$i" in
# Exact match on json field