github.com/Benchkram/bob@v0.0.0-20220321080157-7c8f3876e225/test/setup/setup.go (about) 1 package setup 2 3 import ( 4 "io/ioutil" 5 "os" 6 ) 7 8 // TestDirs setup a general test dir and a "out-of-tree" storage dir used in tests. 9 // Call cleanup() to delete all dirs at the end of the test. 10 func TestDirs(testname string) (testDir, storageDir string, cleanup func() error, _ error) { 11 plain := func() error { return nil } 12 13 testDir, err := ioutil.TempDir("", "bob-test-"+testname+"-*") 14 if err != nil { 15 return testDir, storageDir, plain, err 16 } 17 18 storageDir, err = ioutil.TempDir("", "bob-test-"+testname+"-storage-*") 19 if err != nil { 20 return testDir, storageDir, plain, err 21 } 22 23 cleanup = func() (err error) { 24 err = os.RemoveAll(testDir) 25 if err != nil { 26 return err 27 } 28 err = os.RemoveAll(storageDir) 29 if err != nil { 30 return err 31 } 32 return nil 33 } 34 return testDir, storageDir, cleanup, nil 35 }