Skip to content

Commit 877963f

Browse files
committed
Add getManifestDescriptor tests for the new code path.
Signed-off-by: Ayato Tokubi <[email protected]>
1 parent ef0ced7 commit 877963f

File tree

5 files changed

+126
-0
lines changed

5 files changed

+126
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"schemaVersion": 2,
3+
"manifests": [
4+
{
5+
"mediaType": "application/vnd.oci.image.manifest.v1+json",
6+
"digest": "sha256:eaa95f3cfaac07c8a5153eb77c933269586ad0226c83405776be08547e4d2a18",
7+
"size": 476,
8+
"annotations": {
9+
"org.opencontainers.image.ref.name": "latest"
10+
}
11+
},
12+
{
13+
"mediaType": "application/vnd.oci.image.manifest.v1+json",
14+
"digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
15+
"size": 704,
16+
"annotations": {
17+
"org.opencontainers.image.ref.name": "sha256-eaa95f3cfaac07c8a5153eb77c933269586ad0226c83405776be08547e4d2a18.sig"
18+
}
19+
},
20+
{
21+
"mediaType": "application/vnd.oci.image.manifest.v1+json",
22+
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
23+
"size": 476,
24+
"annotations": {
25+
"org.opencontainers.image.ref.name": "v1"
26+
}
27+
},
28+
{
29+
"mediaType": "application/vnd.oci.image.manifest.v1+json",
30+
"digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
31+
"size": 704,
32+
"annotations": {
33+
"org.opencontainers.image.ref.name": "sha256-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.sig"
34+
}
35+
}
36+
]
37+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"schemaVersion": 2,
3+
"manifests": [
4+
{
5+
"mediaType": "application/vnd.oci.image.manifest.v1+json",
6+
"digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
7+
"size": 704,
8+
"annotations": {
9+
"org.opencontainers.image.ref.name": "sha256-eaa95f3cfaac07c8a5153eb77c933269586ad0226c83405776be08547e4d2a18.sig"
10+
}
11+
},
12+
{
13+
"mediaType": "application/vnd.oci.image.manifest.v1+json",
14+
"digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
15+
"size": 704,
16+
"annotations": {
17+
"org.opencontainers.image.ref.name": "sha256-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.sig"
18+
}
19+
}
20+
]
21+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"schemaVersion": 2,
3+
"manifests": [
4+
{
5+
"mediaType": "application/vnd.oci.image.manifest.v1+json",
6+
"digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
7+
"size": 704,
8+
"annotations": {
9+
"org.opencontainers.image.ref.name": "sha256-eaa95f3cfaac07c8a5153eb77c933269586ad0226c83405776be08547e4d2a18.sig"
10+
}
11+
}
12+
]
13+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"schemaVersion": 2,
3+
"manifests": [
4+
{
5+
"mediaType": "application/vnd.oci.image.manifest.v1+json",
6+
"digest": "sha256:eaa95f3cfaac07c8a5153eb77c933269586ad0226c83405776be08547e4d2a18",
7+
"size": 476,
8+
"annotations": {
9+
"org.opencontainers.image.ref.name": "latest"
10+
}
11+
},
12+
{
13+
"mediaType": "application/vnd.oci.image.manifest.v1+json",
14+
"digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
15+
"size": 704,
16+
"annotations": {
17+
"org.opencontainers.image.ref.name": "sha256-eaa95f3cfaac07c8a5153eb77c933269586ad0226c83405776be08547e4d2a18.sig"
18+
}
19+
}
20+
]
21+
}

image/oci/layout/oci_transport_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,40 @@ func TestGetManifestDescriptor(t *testing.T) {
104104
image: "invalid-mime",
105105
expectedDescriptor: nil,
106106
},
107+
{ // Directory with an image with a signature should return only an image, not a signature
108+
dir: "fixtures/signature_single_image",
109+
image: "",
110+
expectedDescriptor: &imgspecv1.Descriptor{
111+
MediaType: "application/vnd.oci.image.manifest.v1+json",
112+
Digest: "sha256:eaa95f3cfaac07c8a5153eb77c933269586ad0226c83405776be08547e4d2a18",
113+
Size: 476,
114+
Annotations: map[string]string{
115+
"org.opencontainers.image.ref.name": "latest",
116+
},
117+
},
118+
},
119+
{ // Directory with only a signature should return a signature
120+
dir: "fixtures/signature_only_single_signature",
121+
image: "",
122+
expectedDescriptor: &imgspecv1.Descriptor{
123+
MediaType: "application/vnd.oci.image.manifest.v1+json",
124+
Digest: "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
125+
Size: 704,
126+
Annotations: map[string]string{
127+
"org.opencontainers.image.ref.name": "sha256-eaa95f3cfaac07c8a5153eb77c933269586ad0226c83405776be08547e4d2a18.sig",
128+
},
129+
},
130+
},
131+
{ // Directory with multiple images should return an error
132+
dir: "fixtures/signature_multiple_images",
133+
image: "",
134+
errorIs: ErrMoreThanOneImage,
135+
},
136+
{ // Directory with only multiple signatures should return an error
137+
dir: "fixtures/signature_only_multiple_signatures",
138+
image: "",
139+
errorIs: ErrMoreThanOneImage,
140+
},
107141
} {
108142
ref, err := NewReference(c.dir, c.image)
109143
require.NoError(t, err)

0 commit comments

Comments
 (0)