David Chase 037ac2bd84 cmd/compile: add -smallframes gc flag for GC latency diagnosis
Shrinks the size of things that can be stack allocated from
10M to 128k for declared variables and from 64k to 16k for
implicit allocations (new(T), &T{}, etc).

Usage: "go build -gcflags -smallframes hello.go"

An earlier GOEXPERIMENT version of this caused only one
problem, when a gc-should-detect-oversize-stack test no
longer had an oversized stack to detect.  The change was
converted to a flag to make it easier to access (for
diagnosing "long" GC-related single-thread pauses) and to
remove interference with the test.

Includes test to verify behavior.

Updates #27732.

Change-Id: I1255d484331e77185e07c78389a8b594041204c2
Reviewed-on: https://go-review.googlesource.com/c/go/+/180817
Run-TryBot: David Chase <drchase@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-06-06 11:38:40 +00:00
..
2019-03-06 18:53:12 +00:00
2018-05-29 02:39:16 +00:00
2015-01-29 13:07:30 +00:00
2018-10-06 15:40:03 +00:00
2015-07-11 14:36:33 +00:00
2015-07-11 14:36:33 +00:00
2017-08-11 17:41:17 +00:00
2018-04-30 19:39:18 +00:00
2019-03-18 20:10:55 +00:00
2014-10-27 18:59:02 -04:00
2013-02-11 18:20:52 -05:00
2018-11-26 14:13:53 +00:00
2018-11-27 15:36:08 +00:00
2018-11-26 14:13:53 +00:00
2018-11-26 14:13:53 +00:00
2019-03-12 20:46:29 +00:00
2018-03-01 21:11:16 +00:00
2018-12-03 16:48:21 +00:00

The test directory contains tests of the Go tool chain and runtime. It includes black box tests, regression tests, and error output tests. They are run as part of all.bash.

To run just these tests, execute:

../bin/go run run.go

Standard library tests should be written as regular Go tests in the appropriate package.

The tool chain and runtime also have regular Go tests in their packages. The main reasons to add a new test to this directory are:

  • it is most naturally expressed using the test runner; or
  • it is also applicable to gccgo and other Go tool chains.