-
Notifications
You must be signed in to change notification settings - Fork 2.3k
go/analysis/passes/loopclosure: avoid panic in new parallel subtest check when t.Run has single argument #424
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…heck when t.Run has single argument
This PR (HEAD: 24e65a4) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/tools/+/462282 to see it. Tip: You can toggle comments from me using the |
Message from thepudds: Patch Set 1: Run-TryBot+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/462282. |
Message from Gopher Robot: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/462282. |
Message from Gopher Robot: Patch Set 2: (2 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/462282. |
Message from kokoro: Patch Set 2: Kokoro presubmit build starting for golang/tools/gopls-legacy/presubmit Please don’t reply on this GitHub thread. Visit golang.org/cl/462282. |
Message from kokoro: Patch Set 2: gopls-CI+1 Kokoro presubmit build finished with status: SUCCESS Please don’t reply on this GitHub thread. Visit golang.org/cl/462282. |
Message from Gopher Robot: Patch Set 2: TryBot-Result+1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/462282. |
…heck when t.Run has single argument The new Go 1.20 parallel subtest check in the loopclosure pass can panic in the rare case of t.Run with a single argument: fn := func() (string, func(t *testing.T)) { return "", nil } t.Run(fn()) A real-world example: https://github.com/go-spatial/geom/blob/3cd2f5a9a082dd4f827c9f9b69ba5d736d2dcb12/planar/planar_test.go#L118 This has been present for multiple months without seeming to be reported, so presumably this is a rare pattern. Avoid that panic by checking t.Run has an expected number of arguments. Fixes golang/go#57908 Change-Id: I5cde60edf624e16bb9f534e435bcd55e63a15647 GitHub-Last-Rev: 24e65a4 GitHub-Pull-Request: #424 Reviewed-on: https://go-review.googlesource.com/c/tools/+/462282 Run-TryBot: thepudds <[email protected]> Reviewed-by: Russ Cox <[email protected]> Auto-Submit: Russ Cox <[email protected]> TryBot-Result: Gopher Robot <[email protected]> gopls-CI: kokoro <[email protected]> Reviewed-by: Bryan Mills <[email protected]>
Message from Gopher Robot: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from kokoro: Patch Set 1: Kokoro presubmit build starting for golang/tools/gopls-legacy/presubmit Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from Gopher Robot: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from kokoro: Patch Set 1: gopls-CI+1 Kokoro presubmit build finished with status: SUCCESS Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from Gopher Robot: Patch Set 1: TryBot-Result-1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from Ian Lance Taylor: Patch Set 1: Code-Review+2 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from Dmitri Shuralyov: Patch Set 2: (2 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from kokoro: Patch Set 2: Kokoro presubmit build starting for golang/tools/gopls-legacy/presubmit Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from kokoro: Patch Set 2: gopls-CI+1 Kokoro presubmit build finished with status: SUCCESS Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from Tim King: Patch Set 2: Code-Review+2 Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from Bryan Mills: Patch Set 2: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
Message from Bryan Mills: Patch Set 2: Code-Review+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/462596. |
… panic in new parallel subtest check when t.Run has single argument The new Go 1.20 parallel subtest check in the loopclosure pass can panic in the rare case of t.Run with a single argument: fn := func() (string, func(t *testing.T)) { return "", nil } t.Run(fn()) A real-world example: https://github.com/go-spatial/geom/blob/3cd2f5a9a082dd4f827c9f9b69ba5d736d2dcb12/planar/planar_test.go#L118 This has been present for multiple months without seeming to be reported, so presumably this is a rare pattern. Avoid that panic by checking t.Run has an expected number of arguments. Fixes golang/go#57908. Fixes golang/go#57911. Change-Id: I5cde60edf624e16bb9f534e435bcd55e63a15647 GitHub-Last-Rev: 24e65a4 GitHub-Pull-Request: #424 Reviewed-on: https://go-review.googlesource.com/c/tools/+/462282 Run-TryBot: thepudds <[email protected]> Reviewed-by: Russ Cox <[email protected]> Auto-Submit: Russ Cox <[email protected]> TryBot-Result: Gopher Robot <[email protected]> gopls-CI: kokoro <[email protected]> Reviewed-by: Bryan Mills <[email protected]> Reviewed-on: https://go-review.googlesource.com/c/tools/+/462596 Reviewed-by: Ian Lance Taylor <[email protected]> Run-TryBot: Russ Cox <[email protected]> Reviewed-by: Tim King <[email protected]> TryBot-Bypass: Russ Cox <[email protected]>
This PR is being closed because golang.org/cl/462596 has been merged. |
The new Go 1.20 parallel subtest check in the loopclosure pass
can panic in the rare case of t.Run with a single argument:
A real-world example:
https://github.com/go-spatial/geom/blob/3cd2f5a9a082dd4f827c9f9b69ba5d736d2dcb12/planar/planar_test.go#L118
This has been present for multiple months without seeming to
be reported, so presumably this is a rare pattern.
Avoid that panic by checking t.Run has an expected number
of arguments.
Fixes golang/go#57908