From 8ab2988832fe8db8249bd60bf375e89cfa02f14e Mon Sep 17 00:00:00 2001 From: Derek McGowan Date: Tue, 26 Jul 2016 11:56:38 -0700 Subject: [PATCH] Update diff apply test to check sub directories Signed-off-by: Derek McGowan (github: dmcgowan) Upstream-commit: 5c05b8447d06793530e3d860b99a6e878685275a Component: engine --- .../graphdriver/graphtest/graphtest_unix.go | 11 ++++++++++- .../daemon/graphdriver/graphtest/testutil.go | 19 +++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/components/engine/daemon/graphdriver/graphtest/graphtest_unix.go b/components/engine/daemon/graphdriver/graphtest/graphtest_unix.go index b83fb13e3e..68be47b171 100644 --- a/components/engine/daemon/graphdriver/graphtest/graphtest_unix.go +++ b/components/engine/daemon/graphdriver/graphtest/graphtest_unix.go @@ -199,6 +199,7 @@ func DriverTestDiffApply(t testing.TB, fileCount int, drivername string, driverO upper := stringid.GenerateRandomID() deleteFile := "file-remove.txt" deleteFileContent := []byte("This file should get removed in upper!") + deleteDir := "var/lib" if err := driver.Create(base, "", "", nil); err != nil { t.Fatal(err) @@ -212,6 +213,10 @@ func DriverTestDiffApply(t testing.TB, fileCount int, drivername string, driverO t.Fatal(err) } + if err := addDirectory(driver, base, deleteDir); err != nil { + t.Fatal(err) + } + if err := driver.Create(upper, base, "", nil); err != nil { t.Fatal(err) } @@ -220,7 +225,7 @@ func DriverTestDiffApply(t testing.TB, fileCount int, drivername string, driverO t.Fatal(err) } - if err := removeFile(driver, upper, deleteFile); err != nil { + if err := removeAll(driver, upper, deleteFile, deleteDir); err != nil { t.Fatal(err) } @@ -271,6 +276,10 @@ func DriverTestDiffApply(t testing.TB, fileCount int, drivername string, driverO if err := checkFileRemoved(driver, diff, deleteFile); err != nil { t.Fatal(err) } + + if err := checkFileRemoved(driver, diff, deleteDir); err != nil { + t.Fatal(err) + } } // DriverTestChanges tests computed changes on a layer matches changes made diff --git a/components/engine/daemon/graphdriver/graphtest/testutil.go b/components/engine/daemon/graphdriver/graphtest/testutil.go index dc3585751a..4718f06852 100644 --- a/components/engine/daemon/graphdriver/graphtest/testutil.go +++ b/components/engine/daemon/graphdriver/graphtest/testutil.go @@ -78,14 +78,29 @@ func addFile(drv graphdriver.Driver, layer, filename string, content []byte) err return ioutil.WriteFile(path.Join(root, filename), content, 0755) } -func removeFile(drv graphdriver.Driver, layer, filename string) error { +func addDirectory(drv graphdriver.Driver, layer, dir string) error { root, err := drv.Get(layer, "") if err != nil { return err } defer drv.Put(layer) - return os.Remove(path.Join(root, filename)) + return os.MkdirAll(path.Join(root, dir), 0755) +} + +func removeAll(drv graphdriver.Driver, layer string, names ...string) error { + root, err := drv.Get(layer, "") + if err != nil { + return err + } + defer drv.Put(layer) + + for _, filename := range names { + if err := os.RemoveAll(path.Join(root, filename)); err != nil { + return err + } + } + return nil } func checkFileRemoved(drv graphdriver.Driver, layer, filename string) error {