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  }