From 89f02eb8370e31907d33e88f3e25de5176fe84f0 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Tue, 13 Aug 2019 12:56:51 -0700 Subject: [PATCH] go/types: add -halt flag to ease debugging in test mode Specifying -halt in `go test -run Check$ -halt` causes a panic upon encountering the first error. The stack trace is useful to determine what code path issued the error. Change-Id: I2e17e0014ba87505b01786980b98565f468065bf Reviewed-on: https://go-review.googlesource.com/c/go/+/190257 Reviewed-by: Matthew Dempsky --- src/go/types/check_test.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/go/types/check_test.go b/src/go/types/check_test.go index 358e7c5cc81..61bcf13c1a5 100644 --- a/src/go/types/check_test.go +++ b/src/go/types/check_test.go @@ -42,8 +42,9 @@ import ( ) var ( - listErrors = flag.Bool("errlist", false, "list errors") - testFiles = flag.String("files", "", "space-separated list of test files") + haltOnError = flag.Bool("halt", false, "halt on error") + listErrors = flag.Bool("errlist", false, "list errors") + testFiles = flag.String("files", "", "space-separated list of test files") ) // The test filenames do not end in .go so that they are invisible @@ -262,6 +263,9 @@ func checkFiles(t *testing.T, testfiles []string) { } conf.Importer = importer.Default() conf.Error = func(err error) { + if *haltOnError { + defer panic(err) + } if *listErrors { t.Error(err) return