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 }