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

Function TestRemoteLayerDescriptor

pkg/v1/remote/layer_test.go:89–148  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

87}
88
89func TestRemoteLayerDescriptor(t *testing.T) {
90 layer, err := random.Layer(1024, types.DockerLayer)
91 if err != nil {
92 t.Fatal(err)
93 }
94 image, err := mutate.Append(empty.Image, mutate.Addendum{
95 Layer: layer,
96 URLs: []string{"example.com"},
97 })
98 if err != nil {
99 t.Fatal(err)
100 }
101
102 // Set up a fake registry and write what we pulled to it.
103 // This ensures we get coverage for the remoteLayer.MediaType path.
104 s := httptest.NewServer(registry.New())
105 defer s.Close()
106 u, err := url.Parse(s.URL)
107 if err != nil {
108 t.Fatal(err)
109 }
110
111 dst := fmt.Sprintf("%s/some/path:tag", u.Host)
112 ref, err := name.ParseReference(dst)
113 if err != nil {
114 t.Fatal(err)
115 }
116
117 if err := Write(ref, image); err != nil {
118 t.Fatalf("failed to WriteLayer: %v", err)
119 }
120
121 pulled, err := Image(ref)
122 if err != nil {
123 t.Fatal(err)
124 }
125
126 layers, err := pulled.Layers()
127 if err != nil {
128 t.Fatal(err)
129 }
130
131 desc, err := partial.Descriptor(layers[0])
132 if err != nil {
133 t.Fatal(err)
134 }
135
136 if len(desc.URLs) != 1 {
137 t.Fatalf("expected url for layer[0]")
138 }
139
140 if got, want := desc.URLs[0], "example.com"; got != want {
141 t.Errorf("layer[0].urls[0] = %s != %s", got, want)
142 }
143 if ok, err := partial.Exists(layers[0]); err != nil {
144 t.Fatal(err)
145 } else if got, want := ok, true; got != want {
146 t.Errorf("Exists() = %t != %t", got, want)

Callers

nothing calls this directly

Calls 10

LayerFunction · 0.92
AppendFunction · 0.92
NewFunction · 0.92
ParseReferenceFunction · 0.92
DescriptorFunction · 0.92
ExistsFunction · 0.92
WriteFunction · 0.70
ImageFunction · 0.70
CloseMethod · 0.65
LayersMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…