mirror of https://github.com/containers/podman.git
103 lines
3.2 KiB
Bash
103 lines
3.2 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load helpers
|
|
|
|
function teardown() {
|
|
cleanup_test
|
|
}
|
|
|
|
function setup() {
|
|
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 ${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 ${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 ${PODMAN_BINARY} $PODMAN_OPTIONS rmi $ALPINE
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
}
|
|
|
|
@test "podman push without signatures" {
|
|
mkdir /tmp/busybox
|
|
run ${PODMAN_BINARY} $PODMAN_OPTIONS push --remove-signatures $ALPINE dir:/tmp/busybox
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
rm -rf /tmp/busybox
|
|
run ${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 ${PODMAN_BINARY} $PODMAN_OPTIONS push --format oci "${BB}" dir:my-dir
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
run grep "application/vnd.oci.image.config.v1+json" my-dir/manifest.json
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
run ${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
|
|
}
|