Skip to content

Commit 09d8222

Browse files
committed
[WIP] Artifact with empty json layer
Signed-off-by: Brandon Mitchell <[email protected]>
1 parent 697953e commit 09d8222

File tree

2 files changed

+41
-5
lines changed

2 files changed

+41
-5
lines changed

conformance2/run.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,25 @@ func (r *runner) GenerateData() error {
232232
return fmt.Errorf("failed to generate test data: %w", err)
233233
}
234234
}
235+
// artifact without layers
236+
if r.Config.Data.Artifact {
237+
tdName = "artifact-without-layers"
238+
r.State.Data[tdName] = newTestData("Artifact without Layers")
239+
r.State.DataStatus[tdName] = statusUnknown
240+
dataTests = append(dataTests, tdName)
241+
_, err = r.State.Data[tdName].genManifestFull(
242+
genWithTag("artifact-without-layers"),
243+
genWithArtifactType(mtExampleConf),
244+
genWithConfigMediaType(mtOCIEmptyJSON),
245+
genWithConfigBytes([]byte("{}")),
246+
genWithLayerCount(1),
247+
genWithLayerBytes([]byte("{}")),
248+
genWithLayerMediaType(mtOCIEmptyJSON),
249+
)
250+
if err != nil {
251+
return fmt.Errorf("failed to generate test data: %w", err)
252+
}
253+
}
235254
// image and two referrers
236255
if r.Config.Data.Subject {
237256
tdName = "artifacts-with-subject"

conformance2/testdata.go

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ type genOptS struct {
7373
configMediaType string
7474
descriptorMediaType string
7575
extraField bool
76+
layerBytes []byte
7677
layerCount int
7778
layerMediaType string
7879
platform image.Platform
@@ -149,6 +150,13 @@ func genWithExtraField() genOpt {
149150
opt.extraField = true
150151
}
151152
}
153+
154+
func genWithLayerBytes(b []byte) genOpt {
155+
return func(opt *genOptS) {
156+
opt.layerBytes = b
157+
}
158+
}
159+
152160
func genWithLayerCount(count int) genOpt {
153161
return func(opt *genOptS) {
154162
opt.layerCount = count
@@ -437,12 +445,21 @@ func (td *testData) genManifestFull(opts ...genOpt) (digest.Digest, error) {
437445
genWithDescriptorMediaType(gOpt.layerMediaType),
438446
}
439447
lOpts = append(lOpts, opts...)
440-
dig, _, err := td.genBlob(lOpts...)
441-
if err != nil {
442-
return "", fmt.Errorf("failed to generate test artifact blob: %w", err)
448+
if gOpt.layerBytes != nil {
449+
dig, err := td.addBlob(gOpt.layerBytes, lOpts...)
450+
if err != nil {
451+
return "", fmt.Errorf("failed to generate test artifact layer: %w", err)
452+
}
453+
digCList = append(digCList, dig)
454+
digUCList = append(digUCList, dig)
455+
} else {
456+
dig, _, err := td.genBlob(lOpts...)
457+
if err != nil {
458+
return "", fmt.Errorf("failed to generate test artifact blob: %w", err)
459+
}
460+
digCList = append(digCList, dig)
461+
digUCList = append(digUCList, dig)
443462
}
444-
digCList = append(digCList, dig)
445-
digUCList = append(digUCList, dig)
446463
}
447464
}
448465
cDig := digest.Digest("")

0 commit comments

Comments
 (0)