diff options
author | Alex Jia <chuanchang.jia@gmail.com> | 2020-05-28 09:55:12 +0000 |
---|---|---|
committer | Alex Jia <chuanchang.jia@gmail.com> | 2020-05-28 10:00:13 +0000 |
commit | 7e03d277f7a08e127190a4ffd052e91ffc077f3b (patch) | |
tree | 98dcae2b38fecfa2274d008d903bc5419614aefd | |
parent | adca437d03bc74edcf3ef9b60ea55360157f893c (diff) | |
download | podman-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.at | 23 | ||||
-rwxr-xr-x | test/apiv2/test-apiv2 | 19 |
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 |