Skip to content

Commit 8660330

Browse files
committed
Unit test for getOrphan
Signed-off-by: Olli Janatuinen <olli.janatuinen@gmail.com>
1 parent c5c11f9 commit 8660330

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

layer/filestore_test.go

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"syscall"
1111
"testing"
1212

13+
"github.com/docker/docker/pkg/stringid"
1314
"github.com/opencontainers/go-digest"
1415
)
1516

@@ -102,3 +103,50 @@ func TestStartTransactionFailure(t *testing.T) {
102103
t.Fatal(err)
103104
}
104105
}
106+
107+
func TestGetOrphan(t *testing.T) {
108+
fms, td, cleanup := newFileMetadataStore(t)
109+
defer cleanup()
110+
111+
layerRoot := filepath.Join(td, "sha256")
112+
if err := os.MkdirAll(layerRoot, 0755); err != nil {
113+
t.Fatal(err)
114+
}
115+
116+
tx, err := fms.StartTransaction()
117+
if err != nil {
118+
t.Fatal(err)
119+
}
120+
121+
layerid := randomLayerID(5)
122+
err = tx.Commit(layerid)
123+
if err != nil {
124+
t.Fatal(err)
125+
}
126+
layerPath := fms.getLayerDirectory(layerid)
127+
if err := ioutil.WriteFile(filepath.Join(layerPath, "cache-id"), []byte(stringid.GenerateRandomID()), 0644); err != nil {
128+
t.Fatal(err)
129+
}
130+
131+
orphanLayers, err := fms.getOrphan()
132+
if err != nil {
133+
t.Fatal(err)
134+
}
135+
if len(orphanLayers) != 0 {
136+
t.Fatalf("Expected to have zero orphan layers")
137+
}
138+
139+
layeridSplit := strings.Split(layerid.String(), ":")
140+
newPath := filepath.Join(layerRoot, fmt.Sprintf("%s-%s-removing", layeridSplit[1], stringid.GenerateRandomID()))
141+
err = os.Rename(layerPath, newPath)
142+
if err != nil {
143+
t.Fatal(err)
144+
}
145+
orphanLayers, err = fms.getOrphan()
146+
if err != nil {
147+
t.Fatal(err)
148+
}
149+
if len(orphanLayers) != 1 {
150+
t.Fatalf("Expected to have one orphan layer")
151+
}
152+
}

0 commit comments

Comments
 (0)