Skip to content

Commit e0a9961

Browse files
committed
WIP tests
Signed-off-by: Taylor Silva <dev@taydev.net>
1 parent 5ad6255 commit e0a9961

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

task_test.go

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,68 @@ func (s *TaskSuite) TestImageArgs() {
389389
}
390390
}
391391

392+
func (s *TaskSuite) TestImageArgsWithOCIImages() {
393+
imagesDir, err := os.MkdirTemp("", "preload-images")
394+
s.NoError(err)
395+
396+
defer os.RemoveAll(imagesDir)
397+
398+
firstImage := s.randomImageIndex(1024, 2, "linux", "amd64")
399+
firstPath := filepath.Join(imagesDir, "first")
400+
_, err = layout.Write(firstPath, firstImage)
401+
s.NoError(err)
402+
403+
secondImage := s.randomImageIndex(1024, 2, "linux", "amd64")
404+
secondPath := filepath.Join(imagesDir, "second")
405+
_, err = layout.Write(secondPath, secondImage)
406+
s.NoError(err)
407+
408+
s.req.Config.ContextDir = "testdata/image-args"
409+
s.req.Config.AdditionalTargets = []string{"first"}
410+
s.req.Config.ImageArgs = []string{
411+
"first_image=" + firstPath,
412+
"second_image=" + secondPath,
413+
}
414+
415+
err = os.Mkdir(s.outputPath("first"), 0755)
416+
s.NoError(err)
417+
418+
_, err = s.build()
419+
s.NoError(err)
420+
421+
firstBuiltImage, err := layout.FromPath(s.outputPath("first", "image"))
422+
s.NoError(err)
423+
_, err = firstBuiltImage.ImageIndex()
424+
s.NoError(err)
425+
426+
secondBuiltImage, err := layout.FromPath(s.outputPath("image", "image"))
427+
s.NoError(err)
428+
_, err = secondBuiltImage.ImageIndex()
429+
s.NoError(err)
430+
431+
// for image, builtImage := range map[v1.ImageIndex]v1.ImageIndex{
432+
// firstImage: firstBuiltIndex,
433+
// secondImage: secondBuiltIndex,
434+
// } {
435+
// layers, err := image.Layers()
436+
// s.NoError(err)
437+
438+
// builtLayers, err := builtImage.Layers()
439+
// s.NoError(err)
440+
// s.Len(builtLayers, len(layers)+1)
441+
442+
// for i := 0; i < len(layers); i++ {
443+
// digest, err := layers[i].Digest()
444+
// s.NoError(err)
445+
446+
// builtDigest, err := builtLayers[i].Digest()
447+
// s.NoError(err)
448+
449+
// s.Equal(digest, builtDigest)
450+
// }
451+
// }
452+
}
453+
392454
func (s *TaskSuite) TestImageArgsWithUppercaseName() {
393455
imagesDir, err := os.MkdirTemp("", "preload-images")
394456
s.NoError(err)
@@ -673,6 +735,36 @@ func (s *TaskSuite) randomImage(byteSize, layers int64, os, arch string) v1.Imag
673735
return image
674736
}
675737

738+
func (s *TaskSuite) randomImageIndex(byteSize, layers int64, os, arch string) v1.ImageIndex {
739+
index, err := random.Index(byteSize, layers, 1)
740+
s.NoError(err)
741+
manifest, err := index.IndexManifest()
742+
s.NoError(err)
743+
744+
var image v1.Image
745+
for _, m := range manifest.Manifests {
746+
if m.MediaType.IsImage() {
747+
image, err = index.Image(m.Digest)
748+
s.NoError(err)
749+
break
750+
}
751+
}
752+
753+
cf, err := image.ConfigFile()
754+
s.NoError(err)
755+
756+
cf = cf.DeepCopy()
757+
cf.OS = os
758+
cf.Architecture = arch
759+
760+
image, err = mutate.ConfigFile(image, cf)
761+
s.NoError(err)
762+
763+
//TODO I don't think the ImageIndex has the updated Image...
764+
765+
return index
766+
}
767+
676768
func TestSuite(t *testing.T) {
677769
suite.Run(t, &TaskSuite{
678770
Assertions: require.New(t),

0 commit comments

Comments
 (0)