Skip to content

Commit 6b41ae9

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

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

task_test.go

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ import (
1515
"github.com/google/go-containerregistry/pkg/registry"
1616
v1 "github.com/google/go-containerregistry/pkg/v1"
1717
"github.com/google/go-containerregistry/pkg/v1/layout"
18+
"github.com/google/go-containerregistry/pkg/v1/match"
1819
"github.com/google/go-containerregistry/pkg/v1/mutate"
1920
"github.com/google/go-containerregistry/pkg/v1/random"
2021
"github.com/google/go-containerregistry/pkg/v1/remote"
2122
"github.com/google/go-containerregistry/pkg/v1/tarball"
23+
"github.com/google/go-containerregistry/pkg/v1/types"
2224
"github.com/stretchr/testify/require"
2325
"github.com/stretchr/testify/suite"
2426
)
@@ -389,6 +391,68 @@ func (s *TaskSuite) TestImageArgs() {
389391
}
390392
}
391393

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

740+
func (s *TaskSuite) randomImageIndex(byteSize, layers int64, os, arch string) v1.ImageIndex {
741+
index, err := random.Index(byteSize, layers, 1)
742+
s.NoError(err)
743+
manifest, err := index.IndexManifest()
744+
s.NoError(err)
745+
746+
var image v1.Image
747+
for _, m := range manifest.Manifests {
748+
if m.MediaType.IsImage() {
749+
image, err = index.Image(m.Digest)
750+
s.NoError(err)
751+
break
752+
}
753+
}
754+
755+
index = mutate.RemoveManifests(index, match.MediaTypes(string(types.OCIManifestSchema1), string(types.DockerManifestSchema2)))
756+
757+
cf, err := image.ConfigFile()
758+
s.NoError(err)
759+
760+
cf = cf.DeepCopy()
761+
cf.OS = os
762+
cf.Architecture = arch
763+
764+
image, err = mutate.ConfigFile(image, cf)
765+
s.NoError(err)
766+
767+
index = mutate.AppendManifests(index, mutate.IndexAddendum{Add: image})
768+
769+
return index
770+
}
771+
676772
func TestSuite(t *testing.T) {
677773
suite.Run(t, &TaskSuite{
678774
Assertions: require.New(t),

0 commit comments

Comments
 (0)