diff options
author | Josh Bleecher Snyder <josharian@gmail.com> | 2016-11-01 12:27:26 -0700 |
---|---|---|
committer | Josh Bleecher Snyder <josharian@gmail.com> | 2016-11-01 20:19:01 +0000 |
commit | 3f1ed245510d21ad021ea96da7bbd37ec2aca9ed (patch) | |
tree | 1bec088177f6fa33dc83928ca8274256890f31cf /src/cmd/compile/internal/syntax/parser_test.go | |
parent | 84803f3da1b3921a6eacec435d97d5b9e40fe947 (diff) | |
download | go-3f1ed245510d21ad021ea96da7bbd37ec2aca9ed.tar.gz go-3f1ed245510d21ad021ea96da7bbd37ec2aca9ed.zip |
cmd/compile/internal/syntax: avoid deadlock
When the err from ReadFile is non-nil, we call t.Fatal(err).
Switch t.Fatal to t.Error + return.
ensure that close(results) happens on that code path as well.
Updates #17697.
Change-Id: Ifaacf27a76c175446d642086ff32f4386428080d
Reviewed-on: https://go-review.googlesource.com/32486
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Robert Griesemer <gri@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/syntax/parser_test.go')
-rw-r--r-- | src/cmd/compile/internal/syntax/parser_test.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/syntax/parser_test.go b/src/cmd/compile/internal/syntax/parser_test.go index 780f10835c..3cb12c23d5 100644 --- a/src/cmd/compile/internal/syntax/parser_test.go +++ b/src/cmd/compile/internal/syntax/parser_test.go @@ -44,6 +44,7 @@ func TestStdLib(t *testing.T) { results := make(chan parseResult) go func() { + defer close(results) for _, dir := range []string{ runtime.GOROOT(), //"/Users/gri/src", @@ -54,7 +55,8 @@ func TestStdLib(t *testing.T) { } ast, err := ReadFile(filename, nil, nil, 0) if err != nil { - t.Fatal(err) + t.Error(err) + return } if *verify { verifyPrint(filename, ast) @@ -62,7 +64,6 @@ func TestStdLib(t *testing.T) { results <- parseResult{filename, ast.Lines} }) } - close(results) }() var count, lines int |