12 func TestWriteFileAtomic(t *testing.T) {
13 data := []byte("Becatron")
14 fname := fmt.Sprintf("/tmp/write-file-atomic-test-%v.txt", time.Now().UnixNano())
15 err := WriteFileAtomic(fname, data, 0664)
19 rData, err := ioutil.ReadFile(fname)
23 if !bytes.Equal(data, rData) {
24 t.Fatalf("data mismatch: %v != %v", data, rData)
26 if err := os.Remove(fname); err != nil {
31 func TestGoPath(t *testing.T) {
32 // restore original gopath upon exit
33 path := os.Getenv("GOPATH")
35 _ = os.Setenv("GOPATH", path)
38 err := os.Setenv("GOPATH", "~/testgopath")
43 if path != "~/testgopath" {
44 t.Fatalf("should get GOPATH env var value, got %v", path)
49 if path != "~/testgopath" {
50 t.Fatalf("subsequent calls should return the same value, got %v", path)
54 func TestGoPathWithoutEnvVar(t *testing.T) {
55 // restore original gopath upon exit
56 path := os.Getenv("GOPATH")
58 _ = os.Setenv("GOPATH", path)
66 if path == "" || path == "~/testgopath" {
67 t.Fatalf("should get nonempty result of calling go env GOPATH, got %v", path)