Permalink
Browse files

snapshot: Fix leaked mounts and temp directories

Signed-off-by: Samuel Karp <skarp@amazon.com>
  • Loading branch information...
1 parent e2eb06d commit 2c36c387de2dbb466ebe15ff4c478e2e43c459a7 @samuelkarp samuelkarp committed Jan 12, 2017
Showing with 36 additions and 24 deletions.
  1. +2 −20 snapshot/btrfs_test.go
  2. +24 −0 snapshot/common_test.go
  3. +9 −3 snapshot/manager_test.go
  4. +1 −1 snapshot/naive_test.go
@@ -53,11 +53,7 @@ func TestBtrfs(t *testing.T) {
if err := containerd.MountAll(mounts...); err != nil {
t.Fatal(err)
}
- defer func(mounts []containerd.Mount) {
- for _, mount := range mounts {
- unmount(t, mount.Target)
- }
- }(mounts)
+ defer unmountAll(t, mounts)
// write in some data
if err := ioutil.WriteFile(filepath.Join(mounts[0].Target, "foo"), []byte("content"), 0777); err != nil {
@@ -93,11 +89,7 @@ func TestBtrfs(t *testing.T) {
if err := containerd.MountAll(mounts...); err != nil {
t.Fatal(err)
}
- defer func(mounts []containerd.Mount) {
- for _, mount := range mounts {
- unmount(t, mount.Target)
- }
- }(mounts)
+ defer unmountAll(t, mounts)
// TODO(stevvooe): Verify contents of "foo"
if err := ioutil.WriteFile(filepath.Join(mounts[0].Target, "bar"), []byte("content"), 0777); err != nil {
@@ -214,13 +206,3 @@ func removeBtrfsLoopbackDevice(t *testing.T, device *testDevice) {
t.Error(err)
}
}
-
-func unmount(t *testing.T, mountPoint string) {
- t.Log("unmount", mountPoint)
- umount := exec.Command("umount", mountPoint)
- err := umount.Run()
- if err != nil {
-
- t.Error("Could not umount", mountPoint, err)
- }
-}
@@ -0,0 +1,24 @@
+package snapshot
+
+import (
+ "os/exec"
+ "testing"
+
+ "github.com/docker/containerd"
+)
+
+func unmountAll(t *testing.T, mounts []containerd.Mount) {
+ for _, mount := range mounts {
+ unmount(t, mount.Target)
+ }
+}
+
+func unmount(t *testing.T, mountPoint string) {
+ t.Log("unmount", mountPoint)
+ umount := exec.Command("umount", mountPoint)
+ err := umount.Run()
+ if err != nil {
+
+ t.Error("Could not umount", mountPoint, err)
+ }
+}
@@ -18,7 +18,13 @@ func TestSnapshotManagerBasic(t *testing.T) {
if err != nil {
t.Fatal(err)
}
- // defer os.RemoveAll(tmpDir)
+ defer func() {
+ t.Log("Removing", tmpDir)
+ err := os.RemoveAll(tmpDir)
+ if err != nil {
+ t.Error(err)
+ }
+ }()
root := filepath.Join(tmpDir, "root")
@@ -52,15 +58,14 @@ func TestSnapshotManagerBasic(t *testing.T) {
if err := containerd.MountAll(mounts...); err != nil {
t.Fatal(err)
}
+ defer unmountAll(t, mounts)
if err := ioutil.WriteFile(filepath.Join(preparing, "foo"), []byte("foo\n"), 0777); err != nil {
t.Fatal(err)
}
os.MkdirAll(preparing+"/a/b/c", 0755)
- // defer os.Remove(filepath.Join(tmpDir, "foo"))
-
committed := filepath.Join(lm.root, "committed")
if err := lm.Commit(committed, preparing); err != nil {
@@ -83,6 +88,7 @@ func TestSnapshotManagerBasic(t *testing.T) {
if err := containerd.MountAll(mounts...); err != nil {
t.Fatal(err)
}
+ defer unmountAll(t, mounts)
for _, mount := range mounts {
if !strings.HasPrefix(mount.Target, next) {
@@ -15,7 +15,7 @@ func TestSnapshotNaiveBasic(t *testing.T) {
if err != nil {
t.Fatal(err)
}
- // defer os.RemoveAll(tmpDir)
+ defer os.RemoveAll(tmpDir)
t.Log(tmpDir)
root := filepath.Join(tmpDir, "root")

0 comments on commit 2c36c38

Please sign in to comment.