Add a test with a missing _manifests directory
Signed-off-by: Richard Scothern <richard.scothern@docker.com>
This commit is contained in:
parent
3a034b477e
commit
63d28d3b81
1 changed files with 32 additions and 0 deletions
|
@ -2,6 +2,7 @@ package storage
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
"path"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/docker/distribution"
|
"github.com/docker/distribution"
|
||||||
|
@ -176,6 +177,37 @@ func TestNoDeletionNoEffect(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGCWithMissingManifests(t *testing.T) {
|
||||||
|
ctx := context.Background()
|
||||||
|
d := inmemory.New()
|
||||||
|
|
||||||
|
registry := createRegistry(t, d)
|
||||||
|
repo := makeRepository(t, registry, "testrepo")
|
||||||
|
uploadRandomSchema1Image(t, repo)
|
||||||
|
|
||||||
|
// Simulate a missing _manifests directory
|
||||||
|
revPath, err := pathFor(manifestRevisionsPathSpec{"testrepo"})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_manifestsPath := path.Dir(revPath)
|
||||||
|
err = d.Delete(ctx, _manifestsPath)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = MarkAndSweep(context.Background(), d, registry, false)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed mark and sweep: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
blobs := allBlobs(t, registry)
|
||||||
|
if len(blobs) > 0 {
|
||||||
|
t.Errorf("unexpected blobs after gc")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestDeletionHasEffect(t *testing.T) {
|
func TestDeletionHasEffect(t *testing.T) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
inmemoryDriver := inmemory.New()
|
inmemoryDriver := inmemory.New()
|
||||||
|
|
Loading…
Reference in a new issue