48 lines
944 B
Go
48 lines
944 B
Go
// Run a few parallel tests, all in parallel, using multiple techniques for
|
|
// causing the test to take a while so that the stacktraces resulting from a
|
|
// test timeout will contain several goroutines to avoid giving a false sense
|
|
// of confidence or creating error formats that don't account for the more
|
|
// complex scenarios that can occur with timeouts.
|
|
|
|
package main
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestSleep(t *testing.T) {
|
|
t.Parallel()
|
|
time.Sleep(15 * time.Second)
|
|
t.Log("expected panic if run with timeout < 15s")
|
|
}
|
|
|
|
func TestRunning(t *testing.T) {
|
|
t.Parallel()
|
|
c := time.After(15 * time.Second)
|
|
Loop:
|
|
for {
|
|
select {
|
|
case <-c:
|
|
break Loop
|
|
default:
|
|
}
|
|
}
|
|
|
|
t.Log("expected panic if run with timeout < 15s")
|
|
}
|
|
|
|
func TestRunningAlso(t *testing.T) {
|
|
t.Parallel()
|
|
c := time.After(15 * time.Second)
|
|
Loop:
|
|
for {
|
|
select {
|
|
case <-c:
|
|
break Loop
|
|
default:
|
|
}
|
|
}
|
|
t.Log("expected panic if run with timeout < 15s")
|
|
}
|