@@ -44,47 +44,48 @@ func TestFilterReference(t *testing.T) {
44
44
for _ , test := range []struct {
45
45
filters []string
46
46
matches int
47
+ names []string
47
48
}{
48
- {[]string {"image" }, 2 },
49
- {[]string {"*mage*" }, 2 },
50
- {[]string {"image:*" }, 2 },
51
- {[]string {"image:tag" }, 1 },
52
- {[]string {"image:another-tag" }, 1 },
53
- {[]string {"localhost/image" }, 1 },
54
- {[]string {"localhost/image:tag" }, 1 },
55
- {[]string {"library/image" }, 1 },
56
- {[]string {"docker.io/library/image*" }, 1 },
57
- {[]string {"docker.io/library/image:*" }, 1 },
58
- {[]string {"docker.io/library/image:another-tag" }, 1 },
59
- {[]string {"localhost/*" }, 2 },
60
- {[]string {"localhost/image:*tag" }, 1 },
61
- {[]string {"localhost/*mage:*ag" }, 2 },
62
- {[]string {"quay.io/libpod/busybox" }, 1 },
63
- {[]string {"quay.io/libpod/alpine" }, 1 },
64
- {[]string {"quay.io/libpod" }, 0 },
65
- {[]string {"quay.io/libpod/*" }, 2 },
66
- {[]string {"busybox" }, 1 },
67
- {[]string {"alpine" }, 1 },
68
- {[]string {"alpine@" + alpine .Digest ().String ()}, 1 },
69
- {[]string {"alpine:latest@" + alpine .Digest ().String ()}, 1 },
70
- {[]string {"quay.io/libpod/alpine@" + alpine .Digest ().String ()}, 1 },
71
- {[]string {"quay.io/libpod/alpine:latest@" + alpine .Digest ().String ()}, 1 },
49
+ {[]string {"image" }, 2 , [] string { "localhost/image:tag" , "docker.io/library/image:another-tag" } },
50
+ {[]string {"*mage*" }, 2 , [] string { "localhost/image:tag" , "localhost/another-image:tag" , "docker.io/library/image:another-tag" } },
51
+ {[]string {"image:*" }, 2 , [] string { "localhost/image:tag" , "docker.io/library/image:another-tag" } },
52
+ {[]string {"image:tag" }, 1 , [] string { "localhost/image:tag" } },
53
+ {[]string {"image:another-tag" }, 1 , [] string { "docker.io/library/image:another-tag" } },
54
+ {[]string {"localhost/image" }, 1 , [] string { "localhost/image:tag" } },
55
+ {[]string {"localhost/image:tag" }, 1 , [] string { "localhost/image:tag" } },
56
+ {[]string {"library/image" }, 1 , [] string { "docker.io/library/image:another-tag" } },
57
+ {[]string {"docker.io/library/image*" }, 1 , [] string { "docker.io/library/image:another-tag" } },
58
+ {[]string {"docker.io/library/image:*" }, 1 , [] string { "docker.io/library/image:another-tag" } },
59
+ {[]string {"docker.io/library/image:another-tag" }, 1 , [] string { "docker.io/library/image:another-tag" } },
60
+ {[]string {"localhost/*" }, 2 , [] string { "localhost/image:tag" , "localhost/another-image:tag" } },
61
+ {[]string {"localhost/image:*tag" }, 1 , [] string { "localhost/image:tag" } },
62
+ {[]string {"localhost/*mage:*ag" }, 2 , [] string { "localhost/image:tag" , "localhost/another-image:tag" } },
63
+ {[]string {"quay.io/libpod/busybox" }, 1 , [] string { "quay.io/libpod/busybox:latest" } },
64
+ {[]string {"quay.io/libpod/alpine" }, 1 , [] string { "quay.io/libpod/alpine:latest" } },
65
+ {[]string {"quay.io/libpod" }, 0 , [] string {} },
66
+ {[]string {"quay.io/libpod/*" }, 2 , [] string { "quay.io/libpod/busybox:latest" , "quay.io/libpod/alpine:latest" } },
67
+ {[]string {"busybox" }, 1 , [] string { "quay.io/libpod/busybox:latest" } },
68
+ {[]string {"alpine" }, 1 , [] string { "quay.io/libpod/alpine:latest" } },
69
+ {[]string {"alpine@" + alpine .Digest ().String ()}, 1 , [] string { "quay.io/libpod/alpine:latest" } },
70
+ {[]string {"alpine:latest@" + alpine .Digest ().String ()}, 1 , [] string { "quay.io/libpod/alpine:latest" } },
71
+ {[]string {"quay.io/libpod/alpine@" + alpine .Digest ().String ()}, 1 , [] string { "quay.io/libpod/alpine:latest" } },
72
+ {[]string {"quay.io/libpod/alpine:latest@" + alpine .Digest ().String ()}, 1 , [] string { "quay.io/libpod/alpine:latest" } },
72
73
// Make sure negate works as expected
73
- {[]string {"!alpine" }, 1 },
74
- {[]string {"!alpine" , "!busybox" }, 0 },
75
- {[]string {"!alpine" , "busybox" }, 1 },
76
- {[]string {"alpine" , "busybox" }, 2 },
77
- {[]string {"*test" , "!*box" }, 1 },
74
+ {[]string {"!alpine" }, 1 , [] string { "quay.io/libpod/busybox:latest" , "localhost/image:tag" } },
75
+ {[]string {"!alpine" , "!busybox" }, 0 , [] string {} },
76
+ {[]string {"!alpine" , "busybox" }, 1 , [] string { "quay.io/libpod/busybox:latest" } },
77
+ {[]string {"alpine" , "busybox" }, 2 , [] string { "quay.io/libpod/busybox:latest" , "quay.io/libpod/alpine:latest" } },
78
+ {[]string {"*test" , "!*box" }, 1 , [] string { "quay.io/libpod/alpine:latest" } },
78
79
// Make sure that tags are ignored
79
- {[]string {"alpine:ignoreme@" + alpine .Digest ().String ()}, 1 },
80
- {[]string {"alpine:123@" + alpine .Digest ().String ()}, 1 },
81
- {[]string {"quay.io/libpod/alpine:hurz@" + alpine .Digest ().String ()}, 1 },
82
- {[]string {"quay.io/libpod/alpine:456@" + alpine .Digest ().String ()}, 1 },
80
+ {[]string {"alpine:ignoreme@" + alpine .Digest ().String ()}, 1 , [] string { "quay.io/libpod/alpine:latest" } },
81
+ {[]string {"alpine:123@" + alpine .Digest ().String ()}, 1 , [] string { "quay.io/libpod/alpine:latest" } },
82
+ {[]string {"quay.io/libpod/alpine:hurz@" + alpine .Digest ().String ()}, 1 , [] string { "quay.io/libpod/alpine:latest" } },
83
+ {[]string {"quay.io/libpod/alpine:456@" + alpine .Digest ().String ()}, 1 , [] string { "quay.io/libpod/alpine:latest" } },
83
84
// Make sure that repo and digest must match
84
- {[]string {"alpine:busyboxdigest@" + busybox .Digest ().String ()}, 0 },
85
- {[]string {"alpine:busyboxdigest@" + busybox .Digest ().String ()}, 0 },
86
- {[]string {"quay.io/libpod/alpine:busyboxdigest@" + busybox .Digest ().String ()}, 0 },
87
- {[]string {"quay.io/libpod/alpine:busyboxdigest@" + busybox .Digest ().String ()}, 0 },
85
+ {[]string {"alpine:busyboxdigest@" + busybox .Digest ().String ()}, 0 , [] string {} },
86
+ {[]string {"alpine:busyboxdigest@" + busybox .Digest ().String ()}, 0 , [] string {} },
87
+ {[]string {"quay.io/libpod/alpine:busyboxdigest@" + busybox .Digest ().String ()}, 0 , [] string {} },
88
+ {[]string {"quay.io/libpod/alpine:busyboxdigest@" + busybox .Digest ().String ()}, 0 , [] string {} },
88
89
} {
89
90
var filters []string
90
91
for _ , filter := range test .filters {
@@ -94,12 +95,20 @@ func TestFilterReference(t *testing.T) {
94
95
filters = append (filters , "reference=" + filter )
95
96
}
96
97
}
98
+
97
99
listOptions := & ListImagesOptions {
98
100
Filters : filters ,
99
101
}
100
102
listedImages , err := runtime .ListImages (ctx , listOptions )
103
+
101
104
require .NoError (t , err , "%v" , test )
102
105
require .Len (t , listedImages , test .matches , "%s -> %v" , test .filters , listedImages )
106
+
107
+ resultNames := []string {}
108
+ for _ , image := range listedImages {
109
+ resultNames = append (resultNames , image .Names ()... )
110
+ }
111
+ require .ElementsMatch (t , test .names , resultNames , "filters: %s " , test .filters )
103
112
}
104
113
}
105
114
0 commit comments