diff options
author | Russ Cox <rsc@golang.org> | 2014-09-08 00:08:51 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2014-09-08 00:08:51 -0400 |
commit | 8528da672cc093d4dd06732819abc1f7b6b5a46e (patch) | |
tree | 334be80d4a4c85b77db6f6fdb67cbf0528cba5f5 /src/runtime/race/testdata/io_test.go | |
parent | 73bcb69f272cbf34ddcc9daa56427a8683b5a95d (diff) | |
download | go-8528da672cc093d4dd06732819abc1f7b6b5a46e.tar.gz |
build: move package sources from src/pkg to src
Preparation was in CL 134570043.
This CL contains only the effect of 'hg mv src/pkg/* src'.
For more about the move, see golang.org/s/go14nopkg.
Diffstat (limited to 'src/runtime/race/testdata/io_test.go')
-rw-r--r-- | src/runtime/race/testdata/io_test.go | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/runtime/race/testdata/io_test.go b/src/runtime/race/testdata/io_test.go new file mode 100644 index 000000000..9eb3552dc --- /dev/null +++ b/src/runtime/race/testdata/io_test.go @@ -0,0 +1,69 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package race_test + +import ( + "fmt" + "io/ioutil" + "net/http" + "os" + "path/filepath" + "testing" + "time" +) + +func TestNoRaceIOFile(t *testing.T) { + x := 0 + path, _ := ioutil.TempDir("", "race_test") + fname := filepath.Join(path, "data") + go func() { + x = 42 + f, _ := os.Create(fname) + f.Write([]byte("done")) + f.Close() + }() + for { + f, err := os.Open(fname) + if err != nil { + time.Sleep(1e6) + continue + } + buf := make([]byte, 100) + count, err := f.Read(buf) + if count == 0 { + time.Sleep(1e6) + continue + } + break + } + _ = x +} + +func TestNoRaceIOHttp(t *testing.T) { + x := 0 + go func() { + http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + x = 41 + fmt.Fprintf(w, "test") + x = 42 + }) + err := http.ListenAndServe(":23651", nil) + if err != nil { + t.Fatalf("http.ListenAndServe: %v", err) + } + }() + time.Sleep(1e7) + x = 1 + _, err := http.Get("http://127.0.0.1:23651") + if err != nil { + t.Fatalf("http.Get: %v", err) + } + x = 2 + _, err = http.Get("http://127.0.0.1:23651") + if err != nil { + t.Fatalf("http.Get: %v", err) + } + x = 3 +} |