github.com/cloudfoundry/postgres-release/src/acceptance-tests@v0.0.0-20240511030151-872bdd2e0dba/testing/helpers/utilities.go (about) 1 package helpers 2 3 import ( 4 "crypto/rand" 5 "fmt" 6 "io/ioutil" 7 "os" 8 "os/exec" 9 ) 10 11 func WriteFile(data string) (string, error) { 12 tempFile, err := ioutil.TempFile("", "testfile") 13 if err != nil { 14 return "", err 15 } 16 17 err = ioutil.WriteFile(tempFile.Name(), []byte(data), os.ModePerm) 18 if err != nil { 19 return "", err 20 } 21 22 return tempFile.Name(), nil 23 } 24 25 func CreateTempDir() (string, error) { 26 dir, err := ioutil.TempDir("", "") 27 if err != nil { 28 return "", err 29 } 30 return dir, nil 31 } 32 33 func SetPermissions(pathToFile string, mode os.FileMode) error { 34 if err := os.Chmod(pathToFile, mode); err != nil { 35 return err 36 } 37 return nil 38 } 39 40 func GetUUID() string { 41 guid := "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 42 43 b := make([]byte, 16) 44 _, err := rand.Read(b[:]) 45 if err == nil { 46 guid = fmt.Sprintf("%x-%x-%x-%x-%x", b[0:4], b[4:6], b[6:8], b[8:10], b[10:]) 47 } 48 return guid 49 } 50 51 func RunCommand(cmd *exec.Cmd) (string, string, error) { 52 var stdout, stderr string 53 54 out, err := cmd.Output() 55 56 stdout = string(out) 57 if err != nil { 58 if exitError, ok := err.(*exec.ExitError); ok { 59 stderr = string(exitError.Stderr) 60 } 61 } 62 63 return stdout, stderr, err 64 }