diff --git a/test/system/252-quadlet.bats b/test/system/252-quadlet.bats index bf60670dee..e0b4c4c773 100644 --- a/test/system/252-quadlet.bats +++ b/test/system/252-quadlet.bats @@ -1016,25 +1016,11 @@ EOF } @test "quadlet - image files" { - registry=localhost:${PODMAN_LOGIN_REGISTRY_PORT} - image_on_local_registry=$registry/quadlet_image_test:$(random_string) - authfile=$PODMAN_TMPDIR/authfile.json + local quadlet_tmpdir=$PODMAN_TMPDIR/quadlets - # First, start the registry and populate the authfile that we can use for the test. - start_registry - run_podman login --authfile=$authfile \ - --tls-verify=false \ - --username ${PODMAN_LOGIN_USER} \ - --password ${PODMAN_LOGIN_PASS} \ - $registry - - run_podman image tag $IMAGE $image_on_local_registry - run_podman image push --tls-verify=false --authfile=$authfile $image_on_local_registry - - local image_for_test=$image_on_local_registry - - # Remove the local image to make sure it will be pulled again - run_podman image rm --ignore $image_for_test + local registry=localhost:${PODMAN_LOGIN_REGISTRY_PORT} + local image_for_test=$registry/quadlet_image_test:$(random_string) + local authfile=$PODMAN_TMPDIR/authfile.json local quadlet_image_unit=image_test_$(random_string).image local quadlet_image_file=$PODMAN_TMPDIR/$quadlet_image_unit @@ -1045,29 +1031,15 @@ AuthFile=$authfile TLSVerify=false EOF - # Use the same directory for all quadlet files to make sure later steps access previous ones - local quadlet_tmpdir=$PODMAN_TMPDIR/quadlets - mkdir $quadlet_tmpdir - - # Have quadlet create the systemd unit file for the image unit - run_quadlet "$quadlet_image_file" "$quadlet_tmpdir" - # Save the image service name since the variable will be overwritten - local image_service=$QUADLET_SERVICE_NAME - local quadlet_volume_unit=image_test_$(random_string).volume local quadlet_volume_file=$PODMAN_TMPDIR/$quadlet_volume_unit + local volume_name=systemd-$(basename $quadlet_volume_file .volume) cat > $quadlet_volume_file <<EOF [Volume] Driver=image Image=$quadlet_image_unit EOF - # Have quadlet create the systemd unit file for the image unit - run_quadlet "$quadlet_volume_file" "$quadlet_tmpdir" - # Save the image service name since the variable will be overwritten - local volume_service=$QUADLET_SERVICE_NAME - local volume_name=systemd-$(basename $quadlet_volume_file .volume) - local quadlet_container_unit=image_test_$(random_string).container local quadlet_container_file=$PODMAN_TMPDIR/$quadlet_container_unit cat > $quadlet_container_file <<EOF @@ -1077,6 +1049,36 @@ Volume=$quadlet_volume_unit:/vol Exec=sh -c "echo STARTED CONTAINER; echo "READY=1" | socat -u STDIN unix-sendto:\$NOTIFY_SOCKET; sleep inf" EOF + # In order to test image pull but without possible Network issues, + # this test uses an additional registry. + # Start the registry and populate the authfile that we can use for the test. + start_registry + run_podman login --authfile=$authfile \ + --tls-verify=false \ + --username ${PODMAN_LOGIN_USER} \ + --password ${PODMAN_LOGIN_PASS} \ + $registry + + # Push the test image to the registry + run_podman image tag $IMAGE $image_for_test + run_podman image push --tls-verify=false --authfile=$authfile $image_for_test + + # Remove the local image to make sure it will be pulled again + run_podman image rm --ignore $image_for_test + + # Use the same directory for all quadlet files to make sure later steps access previous ones + mkdir $quadlet_tmpdir + + # Have quadlet create the systemd unit file for the image unit + run_quadlet "$quadlet_image_file" "$quadlet_tmpdir" + # Save the image service name since the variable will be overwritten + local image_service=$QUADLET_SERVICE_NAME + + # Have quadlet create the systemd unit file for the volume unit + run_quadlet "$quadlet_volume_file" "$quadlet_tmpdir" + # Save the image service name since the variable will be overwritten + local volume_service=$QUADLET_SERVICE_NAME + # Image should not exist run_podman 1 image exists ${image_for_test} # Volume should not exist @@ -1125,11 +1127,11 @@ EOF run_podman exec $QUADLET_CONTAINER_NAME cat /home/podman/testimage-id assert "$output" = $PODMAN_TEST_IMAGE_TAG \ - "quadlet - image files: incorrect testimage-id '$output' in root" + "quadlet - image files: incorrect testimage-id in root" run_podman exec $QUADLET_CONTAINER_NAME cat /vol/home/podman/testimage-id assert "$output" = $PODMAN_TEST_IMAGE_TAG \ - "quadlet - image files: incorrect testimage-id '$output' in bound volume" + "quadlet - image files: incorrect testimage-id in bound volume" # Shutdown the service and remove the volume service_cleanup $container_service failed