diff options
author | Olli Janatuinen <olli.janatuinen@gmail.com> | 2019-08-10 14:48:47 +0300 |
---|---|---|
committer | Olli Janatuinen <olli.janatuinen@gmail.com> | 2019-08-10 14:48:47 +0300 |
commit | 8660330173e5053e274cf12860079f132cbaa9fa (patch) | |
tree | 32248b9848c336180ffe453faca18f3e9dcea7e8 /layer | |
parent | c5c11f9cefd4dde73dbb70f9ae245db7c1826b66 (diff) | |
download | docker-8660330173e5053e274cf12860079f132cbaa9fa.tar.gz |
Unit test for getOrphan
Signed-off-by: Olli Janatuinen <olli.janatuinen@gmail.com>
Diffstat (limited to 'layer')
-rw-r--r-- | layer/filestore_test.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/layer/filestore_test.go b/layer/filestore_test.go index 498379e37f..878dc54e36 100644 --- a/layer/filestore_test.go +++ b/layer/filestore_test.go @@ -10,6 +10,7 @@ import ( "syscall" "testing" + "github.com/docker/docker/pkg/stringid" "github.com/opencontainers/go-digest" ) @@ -102,3 +103,50 @@ func TestStartTransactionFailure(t *testing.T) { t.Fatal(err) } } + +func TestGetOrphan(t *testing.T) { + fms, td, cleanup := newFileMetadataStore(t) + defer cleanup() + + layerRoot := filepath.Join(td, "sha256") + if err := os.MkdirAll(layerRoot, 0755); err != nil { + t.Fatal(err) + } + + tx, err := fms.StartTransaction() + if err != nil { + t.Fatal(err) + } + + layerid := randomLayerID(5) + err = tx.Commit(layerid) + if err != nil { + t.Fatal(err) + } + layerPath := fms.getLayerDirectory(layerid) + if err := ioutil.WriteFile(filepath.Join(layerPath, "cache-id"), []byte(stringid.GenerateRandomID()), 0644); err != nil { + t.Fatal(err) + } + + orphanLayers, err := fms.getOrphan() + if err != nil { + t.Fatal(err) + } + if len(orphanLayers) != 0 { + t.Fatalf("Expected to have zero orphan layers") + } + + layeridSplit := strings.Split(layerid.String(), ":") + newPath := filepath.Join(layerRoot, fmt.Sprintf("%s-%s-removing", layeridSplit[1], stringid.GenerateRandomID())) + err = os.Rename(layerPath, newPath) + if err != nil { + t.Fatal(err) + } + orphanLayers, err = fms.getOrphan() + if err != nil { + t.Fatal(err) + } + if len(orphanLayers) != 1 { + t.Fatalf("Expected to have one orphan layer") + } +} |