diff options
author | Sebastiaan van Stijn <thaJeztah@users.noreply.github.com> | 2019-09-16 13:53:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-16 13:53:27 +0200 |
commit | e894aae2a60b9a1ff84ae9ba3c24d2b5df9c4140 (patch) | |
tree | 7a1c0bbe2c80805b7656256bd4a4b5a7bf6c023e /layer | |
parent | 2e7d48f2db138d5421c424172fa2babbb53cec4b (diff) | |
parent | 8660330173e5053e274cf12860079f132cbaa9fa (diff) | |
download | docker-e894aae2a60b9a1ff84ae9ba3c24d2b5df9c4140.tar.gz |
Merge pull request #39715 from olljanat/getorplan-unit-test
Unit test for getOrphan
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") + } +} |