# Run parallel chatty tests. Assert on CONT lines. This test makes sure that
# multiple parallel outputs have the appropriate CONT lines between them.
go test -parallel 3 chatty_parallel_test.go -v

stdout '--- PASS: TestFast \([0-9.]{4}s\)\n=== CONT  TestSlow\n    chatty_parallel_test.go:31: this is the second TestSlow log\n--- PASS: TestSlow \([0-9.]{4}s\)'

-- chatty_parallel_test.go --
package chatty_paralell_test

import (
	"testing"
	"time"
)

var (
	run           = make(chan struct{})
	afterFirstLog = make(chan struct{})
	afterPass     = make(chan struct{})
)

func TestFast(t *testing.T) {
	t.Parallel()

	<-afterFirstLog
	t.Cleanup(func() {
		close(afterPass)
	})
}

func TestSlow(t *testing.T) {
	t.Parallel()

	t.Logf("this is the first TestSlow log")
	close(afterFirstLog)

	<-afterPass
	time.Sleep(100 * time.Millisecond)
	t.Logf("this is the second TestSlow log")
}
