Commit 94471f63 authored by Russ Cox's avatar Russ Cox

runtime: shorten tests in all.bash

This cuts 23 seconds from all.bash on my MacBook Pro.

Change-Id: Ibc4d7c01660b9e9ebd088dd55ba993f0d7ec6aa3
Reviewed-on: https://go-review.googlesource.com/73991Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent 6c8418f5
...@@ -402,9 +402,9 @@ func (t *tester) registerTests() { ...@@ -402,9 +402,9 @@ func (t *tester) registerTests() {
testName := "runtime:cpu124" testName := "runtime:cpu124"
t.tests = append(t.tests, distTest{ t.tests = append(t.tests, distTest{
name: testName, name: testName,
heading: "GOMAXPROCS=2 runtime -cpu=1,2,4", heading: "GOMAXPROCS=2 runtime -cpu=1,2,4 -quick",
fn: func(dt *distTest) error { fn: func(dt *distTest) error {
cmd := t.addCmd(dt, "src", "go", "test", "-short", t.timeout(300), t.tags(), "runtime", "-cpu=1,2,4") cmd := t.addCmd(dt, "src", "go", "test", "-short", t.timeout(300), t.tags(), "runtime", "-cpu=1,2,4", "-quick")
// We set GOMAXPROCS=2 in addition to -cpu=1,2,4 in order to test runtime bootstrap code, // We set GOMAXPROCS=2 in addition to -cpu=1,2,4 in order to test runtime bootstrap code,
// creation of first goroutines and first garbage collections in the parallel setting. // creation of first goroutines and first garbage collections in the parallel setting.
cmd.Env = append(os.Environ(), "GOMAXPROCS=2") cmd.Env = append(os.Environ(), "GOMAXPROCS=2")
......
...@@ -44,6 +44,10 @@ type buildexe struct { ...@@ -44,6 +44,10 @@ type buildexe struct {
} }
func runTestProg(t *testing.T, binary, name string, env ...string) string { func runTestProg(t *testing.T, binary, name string, env ...string) string {
if *flagQuick {
t.Skip("-quick")
}
testenv.MustHaveGoBuild(t) testenv.MustHaveGoBuild(t)
exe, err := buildTestProg(t, binary) exe, err := buildTestProg(t, binary)
...@@ -53,6 +57,9 @@ func runTestProg(t *testing.T, binary, name string, env ...string) string { ...@@ -53,6 +57,9 @@ func runTestProg(t *testing.T, binary, name string, env ...string) string {
cmd := testenv.CleanCmdEnv(exec.Command(exe, name)) cmd := testenv.CleanCmdEnv(exec.Command(exe, name))
cmd.Env = append(cmd.Env, env...) cmd.Env = append(cmd.Env, env...)
if testing.Short() {
cmd.Env = append(cmd.Env, "RUNTIME_TEST_SHORT=1")
}
var b bytes.Buffer var b bytes.Buffer
cmd.Stdout = &b cmd.Stdout = &b
cmd.Stderr = &b cmd.Stderr = &b
...@@ -93,6 +100,10 @@ func runTestProg(t *testing.T, binary, name string, env ...string) string { ...@@ -93,6 +100,10 @@ func runTestProg(t *testing.T, binary, name string, env ...string) string {
} }
func buildTestProg(t *testing.T, binary string, flags ...string) (string, error) { func buildTestProg(t *testing.T, binary string, flags ...string) (string, error) {
if *flagQuick {
t.Skip("-quick")
}
checkStaleRuntime(t) checkStaleRuntime(t)
testprog.Lock() testprog.Lock()
......
...@@ -244,7 +244,7 @@ func testConcurrentReadsAfterGrowth(t *testing.T, useReflect bool) { ...@@ -244,7 +244,7 @@ func testConcurrentReadsAfterGrowth(t *testing.T, useReflect bool) {
numGrowStep := 250 numGrowStep := 250
numReader := 16 numReader := 16
if testing.Short() { if testing.Short() {
numLoop, numGrowStep = 2, 500 numLoop, numGrowStep = 2, 100
} }
for i := 0; i < numLoop; i++ { for i := 0; i < numLoop; i++ {
m := make(map[int]int, 0) m := make(map[int]int, 0)
......
...@@ -9,6 +9,7 @@ import ( ...@@ -9,6 +9,7 @@ import (
"encoding/binary" "encoding/binary"
"fmt" "fmt"
"internal/race" "internal/race"
"internal/testenv"
. "runtime" . "runtime"
"testing" "testing"
) )
...@@ -88,6 +89,10 @@ func TestMemmoveAlias(t *testing.T) { ...@@ -88,6 +89,10 @@ func TestMemmoveAlias(t *testing.T) {
} }
func TestMemmoveLarge0x180000(t *testing.T) { func TestMemmoveLarge0x180000(t *testing.T) {
if testing.Short() && testenv.Builder() == "" {
t.Skip("-short")
}
t.Parallel() t.Parallel()
if race.Enabled { if race.Enabled {
t.Skip("skipping large memmove test under race detector") t.Skip("skipping large memmove test under race detector")
...@@ -96,6 +101,10 @@ func TestMemmoveLarge0x180000(t *testing.T) { ...@@ -96,6 +101,10 @@ func TestMemmoveLarge0x180000(t *testing.T) {
} }
func TestMemmoveOverlapLarge0x120000(t *testing.T) { func TestMemmoveOverlapLarge0x120000(t *testing.T) {
if testing.Short() && testenv.Builder() == "" {
t.Skip("-short")
}
t.Parallel() t.Parallel()
if race.Enabled { if race.Enabled {
t.Skip("skipping large memmove test under race detector") t.Skip("skipping large memmove test under race detector")
......
...@@ -243,6 +243,10 @@ var ( ...@@ -243,6 +243,10 @@ var (
) )
func TestDeferKeepAlive(t *testing.T) { func TestDeferKeepAlive(t *testing.T) {
if *flagQuick {
t.Skip("-quick")
}
// See issue 21402. // See issue 21402.
t.Parallel() t.Parallel()
type T *int // needs to be a pointer base type to avoid tinyalloc and its never-finalized behavior. type T *int // needs to be a pointer base type to avoid tinyalloc and its never-finalized behavior.
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
package runtime_test package runtime_test
import ( import (
"flag"
"io" "io"
. "runtime" . "runtime"
"runtime/debug" "runtime/debug"
...@@ -13,6 +14,8 @@ import ( ...@@ -13,6 +14,8 @@ import (
"unsafe" "unsafe"
) )
var flagQuick = flag.Bool("quick", false, "skip slow tests, for second run in all.bash")
func init() { func init() {
// We're testing the runtime, so make tracebacks show things // We're testing the runtime, so make tracebacks show things
// in the runtime. This only raises the level, so it won't // in the runtime. This only raises the level, so it won't
......
...@@ -29,6 +29,7 @@ import "C" ...@@ -29,6 +29,7 @@ import "C"
import ( import (
"fmt" "fmt"
"os"
"runtime" "runtime"
) )
...@@ -63,7 +64,10 @@ func grow1(x, sum *int) int { ...@@ -63,7 +64,10 @@ func grow1(x, sum *int) int {
} }
func CgoCallbackGC() { func CgoCallbackGC() {
const P = 100 P := 100
if os.Getenv("RUNTIME_TESTING_SHORT") != "" {
P = 10
}
done := make(chan bool) done := make(chan bool)
// allocate a bunch of stack frames and spray them with pointers // allocate a bunch of stack frames and spray them with pointers
for i := 0; i < P; i++ { for i := 0; i < P; i++ {
......
...@@ -52,7 +52,11 @@ func CgoSignalDeadlock() { ...@@ -52,7 +52,11 @@ func CgoSignalDeadlock() {
time.Sleep(time.Millisecond) time.Sleep(time.Millisecond)
start := time.Now() start := time.Now()
var times []time.Duration var times []time.Duration
for i := 0; i < 64; i++ { n := 64
if os.Getenv("RUNTIME_TEST_SHORT") != "" {
n = 16
}
for i := 0; i < n; i++ {
go func() { go func() {
runtime.LockOSThread() runtime.LockOSThread()
select {} select {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment