]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/runtime/race/testdata/mop_test.go
[dev.boringcrypto] all: merge master into dev.boringcrypto
[gostls13.git] / src / runtime / race / testdata / mop_test.go
index 94b6e58de093dd1c017b8c15b4dd4ca988a011bc..0d79091df46676abcb3ec70170cf2c5a74aaa604 100644 (file)
@@ -1896,6 +1896,14 @@ func TestRaceNestedStruct(t *testing.T) {
 }
 
 func TestRaceIssue5567(t *testing.T) {
+       testRaceRead(t, false)
+}
+
+func TestRaceIssue51618(t *testing.T) {
+       testRaceRead(t, true)
+}
+
+func testRaceRead(t *testing.T, pread bool) {
        defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(4))
        in := make(chan []byte)
        res := make(chan error)
@@ -1914,7 +1922,11 @@ func TestRaceIssue5567(t *testing.T) {
                var n, total int
                b := make([]byte, 17) // the race is on b buffer
                for err == nil {
-                       n, err = f.Read(b)
+                       if pread {
+                               n, err = f.ReadAt(b, int64(total))
+                       } else {
+                               n, err = f.Read(b)
+                       }
                        total += n
                        if n > 0 {
                                in <- b[:n]