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  }