MCPcopy
hub / github.com/containerd/containerd / TestResolveProxy

Function TestResolveProxy

core/remotes/docker/resolver_test.go:514–575  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

512}
513
514func TestResolveProxy(t *testing.T) {
515 var (
516 ctx = context.Background()
517 tag = "latest"
518 r = http.NewServeMux()
519 name = "testname"
520 ns = "upstream.example.com"
521 )
522
523 m := newManifest(
524 newContent(ocispec.MediaTypeImageConfig, []byte("1")),
525 newContent(ocispec.MediaTypeImageLayerGzip, []byte("2")),
526 )
527 mc := newContent(ocispec.MediaTypeImageManifest, m.OCIManifest())
528 m.RegisterHandler(r, name)
529 r.Handle(fmt.Sprintf("/v2/%s/manifests/%s", name, tag), mc)
530 r.Handle(fmt.Sprintf("/v2/%s/manifests/%s", name, mc.Digest()), mc)
531
532 nr := namespaceRouter{
533 "upstream.example.com": r,
534 }
535
536 base, ro, close := tlsServer(logHandler{t, nr})
537 defer close()
538
539 ro.Hosts = func(host string) ([]RegistryHost, error) {
540 return []RegistryHost{{
541 Client: ro.Client,
542 Host: base,
543 Scheme: "https",
544 Path: "/v2",
545 Capabilities: HostCapabilityPull | HostCapabilityResolve,
546 }}, nil
547 }
548
549 resolver := NewResolver(ro)
550 image := fmt.Sprintf("%s/%s:%s", ns, name, tag)
551
552 _, d, err := resolver.Resolve(ctx, image)
553 if err != nil {
554 t.Fatal(err)
555 }
556 f, err := resolver.Fetcher(ctx, image)
557 if err != nil {
558 t.Fatal(err)
559 }
560
561 refs, err := testocimanifest(ctx, f, d)
562 if err != nil {
563 t.Fatal(err)
564 }
565
566 if len(refs) != 2 {
567 t.Fatalf("Unexpected number of references: %d, expected 2", len(refs))
568 }
569
570 for _, ref := range refs {
571 if err := testFetch(ctx, f, ref); err != nil {

Callers

nothing calls this directly

Calls 13

ResolveMethod · 0.95
FetcherMethod · 0.95
tlsServerFunction · 0.85
NewResolverFunction · 0.85
testocimanifestFunction · 0.85
testFetchFunction · 0.85
FatalMethod · 0.80
newManifestFunction · 0.70
newContentFunction · 0.70
HandleMethod · 0.65
DigestMethod · 0.65
OCIManifestMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…