From 3a8b9cfe9138d3a4aa227a6967d94ecdb3c0bd6f Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 17 Jul 2017 21:06:05 -0400 Subject: [PATCH] testing: add PAUSE, CONT output lines to explain Parallel execution This should make parallel execution a bit clearer. With -p=1 it should make the execution completely unambiguous. Fixes #19280. Change-Id: Ib48cdfe96896d01b0d8f98ccb2fab614407a7d92 Reviewed-on: https://go-review.googlesource.com/49430 Run-TryBot: Russ Cox TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- src/testing/testing.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/testing/testing.go b/src/testing/testing.go index a170cd0fd9..4beb9c6c1c 100644 --- a/src/testing/testing.go +++ b/src/testing/testing.go @@ -675,9 +675,30 @@ func (t *T) Parallel() { t.parent.sub = append(t.parent.sub, t) t.raceErrors += race.Errors() + if t.chatty { + // Print directly to root's io.Writer so there is no delay. + root := t.parent + for ; root.parent != nil; root = root.parent { + } + root.mu.Lock() + fmt.Fprintf(root.w, "=== PAUSE %s\n", t.name) + root.mu.Unlock() + } + t.signal <- true // Release calling test. <-t.parent.barrier // Wait for the parent test to complete. t.context.waitParallel() + + if t.chatty { + // Print directly to root's io.Writer so there is no delay. + root := t.parent + for ; root.parent != nil; root = root.parent { + } + root.mu.Lock() + fmt.Fprintf(root.w, "=== CONT %s\n", t.name) + root.mu.Unlock() + } + t.start = time.Now() t.raceErrors += -race.Errors() } -- 2.48.1