Add a test with a missing _manifests directory
Signed-off-by: Richard Scothern <richard.scothern@docker.com>master
							parent
							
								
									3a034b477e
								
							
						
					
					
						commit
						63d28d3b81
					
				|  | @ -2,6 +2,7 @@ package storage | |||
| 
 | ||||
| import ( | ||||
| 	"io" | ||||
| 	"path" | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"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) { | ||||
| 	ctx := context.Background() | ||||
| 	inmemoryDriver := inmemory.New() | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue