]> Cypherpunks repositories - gostls13.git/commitdiff
test: add regression test from #41474
authorAlberto Donizetti <alb.donizetti@gmail.com>
Fri, 16 Oct 2020 15:48:29 +0000 (17:48 +0200)
committerAlberto Donizetti <alb.donizetti@gmail.com>
Sat, 17 Oct 2020 07:18:20 +0000 (07:18 +0000)
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>
src/os/os_test.go

index 865dfcc0defd2995d098b460c3b63373b274f066..50160eac38524cb25494a2a6ea463090937fdff8 100644 (file)
@@ -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)
+       }
+}