summaryrefslogtreecommitdiff
path: root/test/podman_push.bats
diff options
context:
space:
mode:
Diffstat (limited to 'test/podman_push.bats')
-rw-r--r--test/podman_push.bats103
1 files changed, 103 insertions, 0 deletions
diff --git a/test/podman_push.bats b/test/podman_push.bats
new file mode 100644
index 000000000..cc9220bfd
--- /dev/null
+++ b/test/podman_push.bats
@@ -0,0 +1,103 @@
+#!/usr/bin/env bats
+
+load helpers
+
+function teardown() {
+ cleanup_test
+}
+
+function setup() {
+ prepare_network_conf
+ copy_images
+}
+
+@test "podman push to containers/storage" {
+ skip "Issues with bash, skipping"
+ echo # Push the image right back into storage: it now has two names.
+ run bash -c ${PODMAN_BINARY} $PODMAN_OPTIONS --log-level=debug push $ALPINE containers-storage:busybox:test
+ echo "$output"
+ [ "$status" -eq 0 ]
+ echo # Try to remove it using the first name. Should be refused.
+ run bash -c ${PODMAN_BINARY} $PODMAN_OPTIONS --log-level=debug rmi $ALPINE
+ echo "$output"
+ [ "$status" -ne 0 ]
+ echo # Try to remove it using the second name. Should also be refused.
+ run bash -c ${PODMAN_BINARY} $PODMAN_OPTIONS --log-level=debug rmi busybox:test
+ echo "$output"
+ [ "$status" -ne 0 ]
+ echo # Force removal despite having multiple names. Should succeed.
+ run ${PODMAN_BINARY} $PODMAN_OPTIONS --log-level=debug rmi -f busybox:test
+ echo "$output"
+ [ "$status" -eq 0 ]
+}
+
+@test "podman push to directory" {
+ mkdir /tmp/busybox
+ run ${PODMAN_BINARY} $PODMAN_OPTIONS push $ALPINE dir:/tmp/busybox
+ echo "$output"
+ [ "$status" -eq 0 ]
+ rm -rf /tmp/busybox
+ run bash -c ${PODMAN_BINARY} $PODMAN_OPTIONS rmi $ALPINE
+ echo "$output"
+ [ "$status" -eq 0 ]
+}
+
+@test "podman push to docker archive" {
+ run ${PODMAN_BINARY} $PODMAN_OPTIONS push $ALPINE docker-archive:/tmp/busybox-archive:1.26
+ echo "$output"
+ echo "--->"
+ [ "$status" -eq 0 ]
+ rm /tmp/busybox-archive
+ run bash -c ${PODMAN_BINARY} $PODMAN_OPTIONS rmi $ALPINE
+ echo "$output"
+ [ "$status" -eq 0 ]
+}
+
+@test "podman push to oci-archive without compression" {
+ run ${PODMAN_BINARY} $PODMAN_OPTIONS push $ALPINE oci-archive:/tmp/oci-busybox.tar:alpine
+ echo "$output"
+ [ "$status" -eq 0 ]
+ rm -f /tmp/oci-busybox.tar
+ run bash -c ${PODMAN_BINARY} $PODMAN_OPTIONS rmi $ALPINE
+ echo "$output"
+ [ "$status" -eq 0 ]
+}
+
+@test "podman push without signatures" {
+ mkdir /tmp/busybox
+ run bash -c ${PODMAN_BINARY} $PODMAN_OPTIONS push --remove-signatures $ALPINE dir:/tmp/busybox
+ echo "$output"
+ [ "$status" -eq 0 ]
+ rm -rf /tmp/busybox
+ run bash -c ${PODMAN_BINARY} $PODMAN_OPTIONS rmi $ALPINE
+ echo "$output"
+ [ "$status" -eq 0 ]
+}
+
+@test "podman push without transport" {
+ run ${PODMAN_BINARY} $PODMAN_OPTIONS pull "$ALPINE"
+ echo "$output"
+ [ "$status" -eq 0 ]
+ # TODO: The following should fail until a registry is running in Travis CI.
+ run ${PODMAN_BINARY} $PODMAN_OPTIONS push "$ALPINE" localhost:5000/my-alpine
+ echo "$output"
+ [ "$status" -ne 0 ]
+ run ${PODMAN_BINARY} $PODMAN_OPTIONS rmi "$ALPINE"
+ echo "$output"
+}
+
+@test "push with manifest type conversion" {
+ run bash -c "${PODMAN_BINARY} $PODMAN_OPTIONS push --format oci "${BB}" dir:my-dir"
+ echo "$output"
+ [ "$status" -eq 0 ]
+ run bash -c "grep "application/vnd.oci.image.config.v1+json" my-dir/manifest.json"
+ echo "$output"
+ [ "$status" -eq 0 ]
+ run bash -c "${PODMAN_BINARY} $PODMAN_OPTIONS push --compress --format v2s2 "${BB}" dir:my-dir"
+ echo "$output"
+ [ "$status" -eq 0 ]
+ run bash -c "grep "application/vnd.docker.distribution.manifest.v2+json" my-dir/manifest.json"
+ echo "$output"
+ [ "$status" -eq 0 ]
+ rm -rf my-dir
+}