github.com/bazelbuild/remote-apis-sdks@v0.0.0-20240425170053-8a36686a6350/go/pkg/testutil/testutil.go (about)

     1  package testutil
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  )
     7  
     8  // CreateFile is used to create a temp file with the given contents and executable permissions.
     9  // It returns the name of the created file or error if file creation has failed.
    10  func CreateFile(t *testing.T, executable bool, contents string) (string, error) {
    11  	t.Helper()
    12  	perm := os.FileMode(0666)
    13  	if executable {
    14  		perm = os.FileMode(0766)
    15  	}
    16  	tmpFile, err := os.CreateTemp(t.TempDir(), "")
    17  	if err != nil {
    18  		return "", err
    19  	}
    20  	if err := tmpFile.Chmod(perm); err != nil {
    21  		return "", err
    22  	}
    23  	if err := tmpFile.Close(); err != nil {
    24  		return "", err
    25  	}
    26  	filename := tmpFile.Name()
    27  	if err = os.WriteFile(filename, []byte(contents), os.ModeTemporary); err != nil {
    28  		return "", err
    29  	}
    30  	return filename, nil
    31  }