diff --git a/remotes/docker/resolver_test.go b/remotes/docker/resolver_test.go index c1522d9b0..310a87ad4 100644 --- a/remotes/docker/resolver_test.go +++ b/remotes/docker/resolver_test.go @@ -31,6 +31,7 @@ import ( "testing" "time" + "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/remotes" "github.com/containerd/containerd/remotes/docker/auth" digest "github.com/opencontainers/go-digest" @@ -330,6 +331,7 @@ func TestHostTLSFailureFallbackResolver(t *testing.T) { } runBasicTest(t, "testname", sf) + runNotFoundTest(t, "testname", sf) } func TestResolveProxy(t *testing.T) { @@ -607,6 +609,28 @@ func runBasicTest(t *testing.T, name string, sf func(h http.Handler) (string, Re } } +func runNotFoundTest(t *testing.T, name string, sf func(h http.Handler) (string, ResolverOptions, func())) { + var ( + ctx = context.Background() + tag = "latest" + r = http.NewServeMux() + ) + + base, ro, close := sf(logHandler{t, r}) + defer close() + + resolver := NewResolver(ro) + image := fmt.Sprintf("%s/%s:%s", base, name, tag) + + _, _, err := resolver.Resolve(ctx, image) + if err == nil { + t.Fatalf("Expected error resolving %s, got nil", image) + } + if !errors.Is(err, errdefs.ErrNotFound) { + t.Fatalf("Expected error resolving %s to be ErrNotFound, got %v", image, err) + } +} + func testFetch(ctx context.Context, f remotes.Fetcher, desc ocispec.Descriptor) error { r, err := f.Fetch(ctx, desc) if err != nil {