Add test cases for Docker image name parsing and cleanup
The tests for Docker image name parsing are repetitive and do not cover enough test cases. Refactor the tests to use table testing and add additional test cases.
This commit is contained in:
@@ -1157,29 +1157,25 @@ func TestGetContainerInfoOnNonExistContainer(t *testing.T) {
|
|||||||
mockCadvisor.AssertExpectations(t)
|
mockCadvisor.AssertExpectations(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var parseImageNameTests = []struct {
|
||||||
|
imageName string
|
||||||
|
name string
|
||||||
|
tag string
|
||||||
|
}{
|
||||||
|
{"ubuntu", "ubuntu", ""},
|
||||||
|
{"ubuntu:2342", "ubuntu", "2342"},
|
||||||
|
{"ubuntu:latest", "ubuntu", "latest"},
|
||||||
|
{"foo/bar:445566", "foo/bar", "445566"},
|
||||||
|
{"registry.example.com:5000/foobar", "registry.example.com:5000/foobar", ""},
|
||||||
|
{"registry.example.com:5000/foobar:5342", "registry.example.com:5000/foobar", "5342"},
|
||||||
|
{"registry.example.com:5000/foobar:latest", "registry.example.com:5000/foobar", "latest"},
|
||||||
|
}
|
||||||
|
|
||||||
func TestParseImageName(t *testing.T) {
|
func TestParseImageName(t *testing.T) {
|
||||||
name, tag := parseImageName("ubuntu")
|
for _, tt := range parseImageNameTests {
|
||||||
if name != "ubuntu" || tag != "" {
|
name, tag := parseImageName(tt.imageName)
|
||||||
t.Fatal("Unexpected name/tag: %s/%s", name, tag)
|
if name != tt.name || tag != tt.tag {
|
||||||
}
|
t.Errorf("Expected name/tag: %s/%s, got %s/%s", tt.name, tt.tag, name, tag)
|
||||||
|
}
|
||||||
name, tag = parseImageName("ubuntu:2342")
|
|
||||||
if name != "ubuntu" || tag != "2342" {
|
|
||||||
t.Fatal("Unexpected name/tag: %s/%s", name, tag)
|
|
||||||
}
|
|
||||||
|
|
||||||
name, tag = parseImageName("foo/bar:445566")
|
|
||||||
if name != "foo/bar" || tag != "445566" {
|
|
||||||
t.Fatal("Unexpected name/tag: %s/%s", name, tag)
|
|
||||||
}
|
|
||||||
|
|
||||||
name, tag = parseImageName("registry.example.com:5000/foobar")
|
|
||||||
if name != "registry.example.com:5000/foobar" || tag != "" {
|
|
||||||
t.Fatal("Unexpected name/tag: %s/%s", name, tag)
|
|
||||||
}
|
|
||||||
|
|
||||||
name, tag = parseImageName("registry.example.com:5000/foobar:5342")
|
|
||||||
if name != "registry.example.com:5000/foobar" || tag != "5342" {
|
|
||||||
t.Fatal("Unexpected name/tag: %s/%s", name, tag)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user