| # Run parallel chatty tests. Assert on CONT or NAME lines. This test makes sure that |
| # multiple parallel outputs have the appropriate CONT lines between them. |
| go test -parallel 3 chatty_parallel -v |
| |
| stdout '=== RUN TestInterruptor/interruption\n=== (CONT|NAME) TestLog\n chatty_parallel_test.go:28: this is the second TestLog log\n--- PASS: Test(Log|Interruptor) \([0-9.]{4}s\)' |
| |
| -- go.mod -- |
| module chatty_parallel |
| |
| go 1.18 |
| -- chatty_parallel_test.go -- |
| package chatty_parallel_test |
| |
| import ( |
| "testing" |
| ) |
| |
| var ( |
| afterFirstLog = make(chan struct{}) |
| afterSubTest = make(chan struct{}) |
| afterSecondLog = make(chan struct{}) |
| ) |
| |
| func TestInterruptor(t *testing.T) { |
| t.Parallel() |
| |
| <-afterFirstLog |
| t.Run("interruption", func (t *testing.T) {}) |
| close(afterSubTest) |
| <-afterSecondLog // Delay the "PASS: TestInterruptor" line until after "CONT TestLog". |
| } |
| |
| func TestLog(t *testing.T) { |
| t.Parallel() |
| |
| t.Logf("this is the first TestLog log") |
| close(afterFirstLog) |
| <-afterSubTest |
| t.Logf("this is the second TestLog log") |
| close(afterSecondLog) |
| } |