-
Notifications
You must be signed in to change notification settings - Fork 17.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[release-branch.go1.14] cmd/go: make go test -json report failures fo…
…r panicking/exiting tests 'go test -json' should report that a test failed if the test binary did not exit normally with status 0. This covers panics, non-zero exits, and abnormal terminations. These tests don't print a final result when run with -test.v (which is used by 'go test -json'). The final result should be "PASS" or "FAIL" on a line by itself. 'go test' prints "FAIL" in this case, but includes error information. test2json was changed in CL 192104 to report that a test passed if it does not report a final status. This caused 'go test -json' to report that a test passed after a panic or non-zero exit. With this change, test2json treats "FAIL" with error information the same as "FAIL" on a line by itself. This is intended to be a minimal fix for backporting, but it will likely be replaced by a complete solution for #29062. Fixes #37671 Updates #37555 Updates #29062 Updates #31969 Change-Id: Icb67bcd36bed97e6a8d51f4d14bf71f73c83ac3d Reviewed-on: https://go-review.googlesource.com/c/go/+/222243 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com> (cherry picked from commit 5ea58c6) Reviewed-on: https://go-review.googlesource.com/c/go/+/222658 Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
- Loading branch information
Showing
4 changed files
with
86 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# Verifies golang.org/issue/37555. | ||
|
||
[short] skip | ||
|
||
# 'go test -json' should say a test passes if it says it passes. | ||
go test -json ./pass | ||
stdout '"Action":"pass".*\n\z' | ||
! stdout '"Test":.*\n\z' | ||
|
||
# 'go test -json' should say a test passes if it exits 0 and prints nothing. | ||
# TODO(golang.org/issue/29062): this should fail in the future. | ||
go test -json ./exit0main | ||
stdout '"Action":"pass".*\n\z' | ||
! stdout '"Test":.*\n\z' | ||
|
||
# 'go test -json' should say a test fails if it exits 1 and prints nothing. | ||
! go test -json ./exit1main | ||
stdout '"Action":"fail".*\n\z' | ||
! stdout '"Test":.*\n\z' | ||
|
||
# 'go test -json' should say a test fails if it panics. | ||
! go test -json ./panic | ||
stdout '"Action":"fail".*\n\z' | ||
! stdout '"Test":.*\n\z' | ||
|
||
-- go.mod -- | ||
module example.com/test | ||
|
||
go 1.14 | ||
|
||
-- pass/pass_test.go -- | ||
package pass_test | ||
|
||
import "testing" | ||
|
||
func TestPass(t *testing.T) {} | ||
|
||
-- exit0main/exit0main_test.go -- | ||
package exit0_test | ||
|
||
import ( | ||
"os" | ||
"testing" | ||
) | ||
|
||
func TestMain(m *testing.M) { | ||
os.Exit(0) | ||
} | ||
|
||
-- exit1main/exit1main_test.go -- | ||
package exit1_test | ||
|
||
import ( | ||
"os" | ||
"testing" | ||
) | ||
|
||
func TestMain(m *testing.M) { | ||
os.Exit(1) | ||
} | ||
|
||
-- panic/panic_test.go -- | ||
package panic_test | ||
|
||
import "testing" | ||
|
||
func TestPanic(t *testing.T) { | ||
panic("oh no") | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters