]> Cypherpunks repositories - gostls13.git/commitdiff
runtime/race: update runtime to r183644
authorDmitriy Vyukov <dvyukov@google.com>
Thu, 13 Jun 2013 10:32:05 +0000 (14:32 +0400)
committerDmitriy Vyukov <dvyukov@google.com>
Thu, 13 Jun 2013 10:32:05 +0000 (14:32 +0400)
This revision properly handles memory range accesses.
Fixes #4453.
Fixes #5654.

R=golang-dev, iant, remyoudompheng
CC=golang-dev
https://golang.org/cl/10082043

src/pkg/runtime/race/race_darwin_amd64.syso
src/pkg/runtime/race/race_linux_amd64.syso
src/pkg/runtime/race/race_windows_amd64.syso
src/pkg/runtime/race/testdata/mop_test.go

index 24a00497c0be4dc48ae6582e726c65502c232c3c..ff47534d7174f5de1a2943d239b881227a793779 100644 (file)
Binary files a/src/pkg/runtime/race/race_darwin_amd64.syso and b/src/pkg/runtime/race/race_darwin_amd64.syso differ
index b15091ba81e5495baff25f11a3c415ec31d42c48..41e12093fbfb0a46ee1c78bd3a560717b8dc60d9 100644 (file)
Binary files a/src/pkg/runtime/race/race_linux_amd64.syso and b/src/pkg/runtime/race/race_linux_amd64.syso differ
index 0a3a58354795029d5a2e73490eed300d98d78ddb..9e669f94fda8f656b1fb1cc1eee02640d744de3e 100644 (file)
Binary files a/src/pkg/runtime/race/race_windows_amd64.syso and b/src/pkg/runtime/race/race_windows_amd64.syso differ
index de2576cf6f8852d1b74f28ef692854a610afa517..d221f444e301583cdb6e24a2ab12dba803f6aef1 100644 (file)
@@ -5,6 +5,7 @@
 package race_test
 
 import (
+       "bytes"
        "crypto/sha1"
        "errors"
        "fmt"
@@ -1477,8 +1478,7 @@ func TestRaceSliceString(t *testing.T) {
        <-c
 }
 
-// http://golang.org/issue/4453
-func TestRaceFailingSliceStruct(t *testing.T) {
+func TestRaceSliceStruct(t *testing.T) {
        type X struct {
                x, y int
        }
@@ -1493,7 +1493,7 @@ func TestRaceFailingSliceStruct(t *testing.T) {
        <-c
 }
 
-func TestRaceFailingAppendSliceStruct(t *testing.T) {
+func TestRaceAppendSliceStruct(t *testing.T) {
        type X struct {
                x, y int
        }
@@ -1670,3 +1670,39 @@ func TestRaceIssue5567(t *testing.T) {
                t.Fatal(err)
        }
 }
+
+func TestRaceIssue5654(t *testing.T) {
+       text := `Friends, Romans, countrymen, lend me your ears;
+I come to bury Caesar, not to praise him.
+The evil that men do lives after them;
+The good is oft interred with their bones;
+So let it be with Caesar. The noble Brutus
+Hath told you Caesar was ambitious:
+If it were so, it was a grievous fault,
+And grievously hath Caesar answer'd it.
+Here, under leave of Brutus and the rest -
+For Brutus is an honourable man;
+So are they all, all honourable men -
+Come I to speak in Caesar's funeral.
+He was my friend, faithful and just to me:
+But Brutus says he was ambitious;
+And Brutus is an honourable man.`
+
+       data := bytes.NewBufferString(text)
+       in := make(chan []byte)
+
+       go func() {
+               buf := make([]byte, 16)
+               var n int
+               var err error
+               for ; err == nil; n, err = data.Read(buf) {
+                       in <- buf[:n]
+               }
+               close(in)
+       }()
+       res := ""
+       for s := range in {
+               res += string(s)
+       }
+       _ = res
+}