MCPcopy
hub / github.com/google/go-containerregistry / TestLegacyWrite

Function TestLegacyWrite

pkg/v1/partial/uncompressed_test.go:112–175  ·  view source on GitHub ↗

legacy/tarball.Write + tarball.Image leverages a lot of uncompressed partials. This is cribbed from pkg/legacy/tarball just to get intra-package coverage.

(t *testing.T)

Source from the content-addressed store, hash-verified

110//
111// This is cribbed from pkg/legacy/tarball just to get intra-package coverage.
112func TestLegacyWrite(t *testing.T) {
113 // Make a tempfile for tarball writes.
114 fp, err := os.CreateTemp("", "")
115 if err != nil {
116 t.Fatalf("Error creating temp file.")
117 }
118 t.Log(fp.Name())
119 defer fp.Close()
120 defer os.Remove(fp.Name())
121
122 // Make a random image + layer with Descriptor().
123 randImage, err := random.Image(256, 2)
124 if err != nil {
125 t.Fatalf("Error creating random image: %v", err)
126 }
127 randLayer, err := random.Layer(1024, types.DockerForeignLayer)
128 if err != nil {
129 t.Fatal(err)
130 }
131 l, err := partial.UncompressedToLayer(&foreignLayer{randLayer})
132 if err != nil {
133 t.Fatal(err)
134 }
135 img, err := mutate.AppendLayers(randImage, l)
136 if err != nil {
137 t.Fatal(err)
138 }
139 tag, err := name.NewTag("gcr.io/foo/bar:latest", name.StrictValidation)
140 if err != nil {
141 t.Fatalf("Error creating test tag: %v", err)
142 }
143 o, err := os.Create(fp.Name())
144 if err != nil {
145 t.Fatalf("Error creating %q to write image tarball: %v", fp.Name(), err)
146 }
147 defer o.Close()
148 if err := legacy.Write(tag, img, o); err != nil {
149 t.Fatalf("Unexpected error writing tarball: %v", err)
150 }
151
152 // Make sure the image is valid and can be loaded.
153 // Load it both by nil and by its name.
154 for _, it := range []*name.Tag{nil, &tag} {
155 tarImage, err := tarball.ImageFromPath(fp.Name(), it)
156 if err != nil {
157 t.Fatalf("Unexpected error reading tarball: %v", err)
158 }
159 if err := validate.Image(tarImage); err != nil {
160 t.Errorf("validate.Image: %v", err)
161 }
162 if err := compare.Images(img, tarImage); err != nil {
163 t.Errorf("compare.Images: %v", err)
164 }
165 }
166
167 // Try loading a different tag, it should error.
168 fakeTag, err := name.NewTag("gcr.io/notthistag:latest", name.StrictValidation)
169 if err != nil {

Callers

nothing calls this directly

Calls 12

ImageFunction · 0.92
LayerFunction · 0.92
UncompressedToLayerFunction · 0.92
AppendLayersFunction · 0.92
NewTagFunction · 0.92
ImageFromPathFunction · 0.92
ImageFunction · 0.92
ImagesFunction · 0.92
CreateMethod · 0.80
NameMethod · 0.65
CloseMethod · 0.65
WriteMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…