mirror of
https://github.com/golang/go
synced 2024-11-23 07:40:04 -07:00
testing: quote -test.v=test2json output when logging it
The -test.v=test2json flag causes the testing package to inject extra control characters in the output to allow the JSON parser to more gracefully handle extraneous writes to os.Stdout and/or os.Stderr in the package under test (see CL 443596). However, it doesn't filter out those control characters because almost no real-world tests will output them. It turns out that testing.TestFlag is one of the rare tests that does output those control characters, because it tests the -test.v=test2json flag itself. Fixes #59181. Change-Id: I35ca6748afcd3d4333563028817caac946f5e86a Reviewed-on: https://go-review.googlesource.com/c/go/+/479035 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Bryan Mills <bcmills@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Bryan Mills <bcmills@google.com>
This commit is contained in:
parent
3d5391ed87
commit
7b88715882
@ -39,7 +39,10 @@ func TestFlag(t *testing.T) {
|
||||
cmd.Env = append(cmd.Environ(), flagTestEnv+"=1")
|
||||
b, err := cmd.CombinedOutput()
|
||||
if len(b) > 0 {
|
||||
t.Logf("%s", b)
|
||||
// When we set -test.v=test2json, we need to escape the ^V control
|
||||
// character used for JSON framing so that the JSON parser doesn't
|
||||
// misinterpret the subprocess output as output from the parent test.
|
||||
t.Logf("%q", b)
|
||||
}
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
|
Loading…
Reference in New Issue
Block a user