aboutsummaryrefslogtreecommitdiff
path: root/src/os
diff options
context:
space:
mode:
authorAlberto Donizetti <alb.donizetti@gmail.com>2020-10-16 17:48:29 +0200
committerAlberto Donizetti <alb.donizetti@gmail.com>2020-10-17 07:18:20 +0000
commitc8f6135d4fd0be14bfc63c2bbb911cc9647e00a6 (patch)
tree0d0ecde238996628c4670d99c3bccb2127e2faad /src/os
parent5faa8286512db8b11ba3f16c447dbf41f289b47a (diff)
downloadgo-c8f6135d4fd0be14bfc63c2bbb911cc9647e00a6.tar.gz
go-c8f6135d4fd0be14bfc63c2bbb911cc9647e00a6.zip
test: add regression test from #41474
This issue was fixed with multiple individual compiler optimizations, each of which had their own respective test cases. This CL just adds the capstone test case to demonstrate that the issue has been fixed and doesn't regress again. Updates #41474. Change-Id: Iae752d4b0e7b83ee356b946843340a4fbc254058 Reviewed-on: https://go-review.googlesource.com/c/go/+/263097 Trust: Alberto Donizetti <alb.donizetti@gmail.com> Trust: Ian Lance Taylor <iant@golang.org> Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/os')
-rw-r--r--src/os/os_test.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/os/os_test.go b/src/os/os_test.go
index 865dfcc0de..50160eac38 100644
--- a/src/os/os_test.go
+++ b/src/os/os_test.go
@@ -9,6 +9,7 @@ import (
"errors"
"flag"
"fmt"
+ "internal/race"
"internal/testenv"
"io"
"io/ioutil"
@@ -2579,3 +2580,20 @@ func TestOpenFileKeepsPermissions(t *testing.T) {
t.Errorf("Stat after OpenFile is %v, should be writable", fi.Mode())
}
}
+
+// Issue 41474.
+func TestStdoutWriteDoesNotHeapAllocate(t *testing.T) {
+ if runtime.GOOS == "js" || runtime.GOOS == "windows" {
+ t.Skip("Still heap allocates on js/wasm and windows, but it used to too")
+ }
+ if race.Enabled {
+ t.Skip("Heap allocates in race mode")
+ }
+
+ n := testing.AllocsPerRun(10, func() {
+ Stdout.Write([]byte{'h', 'e', 'l', 'l', 'o', '\n'})
+ })
+ if n != 0 {
+ t.Errorf("AllocsPerRun = %v, want 0", n)
+ }
+}