mirror of
https://github.com/containers/skopeo.git
synced 2026-07-14 13:48:32 +00:00
In commit 47ac96155f the image name that is used
for setting the container name is taken from the resolved image
unless it is empty.
The image has the "Names" field and right now the first name is
taken. However, when the image is a tagged image, the container name
will end up using the original name instead of the given one.
For example:
$ buildah tag busybox busybox1
$ buildah from busybox1
Will set the name of the container as "busybox-working-container"
while it was expected to be "busybox1-working-container".
This patch fixes this particular issue.
Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
Closes: #399
Approved by: rhatdan
29 lines
849 B
Go
29 lines
849 B
Go
package buildah
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/containers/storage"
|
|
)
|
|
|
|
func TestGetImageName(t *testing.T) {
|
|
tt := []struct {
|
|
caseName string
|
|
name string
|
|
names []string
|
|
expected string
|
|
}{
|
|
{"tagged image", "busybox1", []string{"docker.io/library/busybox:latest", "docker.io/library/busybox1:latest"}, "docker.io/library/busybox1:latest"},
|
|
{"image name not in the resolved image names", "image1", []string{"docker.io/library/busybox:latest", "docker.io/library/busybox1:latest"}, "docker.io/library/busybox:latest"},
|
|
{"resolved image with empty name list", "image1", []string{}, "image1"},
|
|
}
|
|
|
|
for _, tc := range tt {
|
|
img := &storage.Image{Names: tc.names}
|
|
res := getImageName(tc.name, img)
|
|
if res != tc.expected {
|
|
t.Errorf("test case '%s' failed: expected %#v but got %#v", tc.caseName, tc.expected, res)
|
|
}
|
|
}
|
|
}
|