From 2824ee4c62c77678eb55d025c85a3202db64588f Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Sat, 10 Aug 2019 20:13:51 -0600 Subject: [PATCH] test service directory creation --- manager/start.go | 8 +++++++- manager/start_stop_test.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 manager/start_stop_test.go diff --git a/manager/start.go b/manager/start.go index 2a86132..fab1d6d 100644 --- a/manager/start.go +++ b/manager/start.go @@ -3,6 +3,7 @@ package manager import ( "fmt" "io/ioutil" + "os" "os/exec" "path/filepath" "strings" @@ -121,7 +122,12 @@ func getSystemSrvs() ([]string, error) { } func getUserSrvs(home string) ([]string, error) { - return getSrvs(filepath.Join(home, srvUserPath)) + confDir := filepath.Join(home, srvUserPath) + err := os.MkdirAll(confDir, 0755) + if nil != err { + return nil, err + } + return getSrvs(confDir) } // "come.example.foo.plist" matches "foo" diff --git a/manager/start_stop_test.go b/manager/start_stop_test.go new file mode 100644 index 0000000..c16b819 --- /dev/null +++ b/manager/start_stop_test.go @@ -0,0 +1,32 @@ +package manager + +import ( + "fmt" + "io/ioutil" + "os" + "path/filepath" + "testing" +) + +func TestEmptyUserServicePath(t *testing.T) { + srvs, err := getUserSrvs("/tmp/fakeuser") + if nil != err { + t.Fatal(err) + } + if len(srvs) > 0 { + t.Fatal(fmt.Errorf("sanity fail: shouldn't get services from empty directory")) + } + + dirs, err := ioutil.ReadDir(filepath.Join("/tmp/fakeuser", srvUserPath)) + if nil != err { + t.Fatal(err) + } + if len(dirs) > 0 { + t.Fatal(fmt.Errorf("sanity fail: shouldn't get listing from empty directory")) + } + + err = os.RemoveAll("/tmp/fakeuser") + if nil != err { + panic("couldn't remove /tmp/fakeuser") + } +}