diff options
| author | Shulhan <ms@kilabit.info> | 2018-05-26 20:31:05 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2018-05-27 02:12:39 +0700 |
| commit | f39c1b5787f5408c8720b2b80f9208d86e2d8e00 (patch) | |
| tree | e0c9e4e2639aa438ccd12e48e3736178039ebcfb /common_test.go | |
| parent | 78690021d83ed5e4ca9dac0eb37da730faf5df22 (diff) | |
| download | beku-f39c1b5787f5408c8720b2b80f9208d86e2d8e00.tar.xz | |
env.Remove: remove empty directory recursively on "src" and "pkg"
Diffstat (limited to 'common_test.go')
| -rw-r--r-- | common_test.go | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/common_test.go b/common_test.go index 7cdf9dc..5080a37 100644 --- a/common_test.go +++ b/common_test.go @@ -3,12 +3,19 @@ package beku import ( "io" "io/ioutil" + "os" "testing" "github.com/shuLhan/share/lib/test" ) func TestIsDirEmpty(t *testing.T) { + emptyDir := "testdata/dirempty" + err := os.MkdirAll(emptyDir, 0700) + if err != nil { + t.Fatal(err) + } + cases := []struct { desc string path string @@ -117,6 +124,87 @@ func TestIsTagVersion(t *testing.T) { } } +func TestRmdirEmptyAll(t *testing.T) { + cases := []struct { + desc string + createDir string + createFile string + path string + expExist string + expNotExist string + }{{ + desc: "With path as file", + path: "testdata/beku.db", + expExist: "testdata/beku.db", + }, { + desc: "With empty path", + createDir: "testdata/a/b/c/d", + expExist: "testdata/a/b/c/d", + }, { + desc: "With non empty at middle", + createDir: "testdata/a/b/c/d", + createFile: "testdata/a/b/file", + path: "testdata/a/b/c/d", + expExist: "testdata/a/b/file", + expNotExist: "testdata/a/b/c", + }, { + desc: "With first path not exist", + createDir: "testdata/a/b/c", + path: "testdata/a/b/c/d", + expExist: "testdata/a/b/file", + expNotExist: "testdata/a/b/c", + }, { + desc: "With non empty at parent", + createDir: "testdata/dirempty/a/b/c/d", + path: "testdata/dirempty/a/b/c/d", + expExist: "testdata", + expNotExist: "testdata/dirempty", + }} + + var ( + err error + f *os.File + ) + for _, c := range cases { + t.Log(c.desc) + + if len(c.createDir) > 0 { + err = os.MkdirAll(c.createDir, 0700) + if err != nil { + t.Fatal(err) + } + } + if len(c.createFile) > 0 { + f, err = os.Create(c.createFile) + if err != nil { + t.Fatal(err) + } + err = f.Close() + if err != nil { + t.Fatal(err) + } + } + + err = RmdirEmptyAll(c.path) + if err != nil { + t.Fatal(err) + } + + if len(c.expExist) > 0 { + _, err = os.Stat(c.expExist) + if err != nil { + t.Fatal(err) + } + } + if len(c.expNotExist) > 0 { + _, err = os.Stat(c.expNotExist) + if !os.IsNotExist(err) { + t.Fatal(err) + } + } + } +} + func TestConfirm(t *testing.T) { cases := []struct { defIsYes bool |
