summaryrefslogtreecommitdiff
path: root/layer
diff options
context:
space:
mode:
authorOlli Janatuinen <olli.janatuinen@gmail.com>2019-08-10 14:48:47 +0300
committerOlli Janatuinen <olli.janatuinen@gmail.com>2019-08-10 14:48:47 +0300
commit8660330173e5053e274cf12860079f132cbaa9fa (patch)
tree32248b9848c336180ffe453faca18f3e9dcea7e8 /layer
parentc5c11f9cefd4dde73dbb70f9ae245db7c1826b66 (diff)
downloaddocker-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.go48
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")
+ }
+}