-
Notifications
You must be signed in to change notification settings - Fork 18k
cmd/vet: panic in new parallel subtest check when t.Run has single argument #57908
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
Comments
I sent https://go.dev/cl/462282, which attempts to fix this. |
Change https://go.dev/cl/462282 mentions this issue: |
Change https://go.dev/cl/462596 mentions this issue: |
@gopherbot Please open backport to 1.20. Seems like this affects the 1.20 release. |
Backport issue(s) opened: #57911 (for 1.20). Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://go.dev/wiki/MinorReleases. |
… 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 <thepudds1460@gmail.com> Reviewed-by: Russ Cox <rsc@golang.org> Auto-Submit: Russ Cox <rsc@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> gopls-CI: kokoro <noreply+kokoro@google.com> Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-on: https://go-review.googlesource.com/c/tools/+/462596 Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Tim King <taking@google.com> TryBot-Bypass: Russ Cox <rsc@golang.org>
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes, tip. Not in Go 1.19 given the parallel subtest check is new in Go 1.20.
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
Ran many public modules through vet as part of testing #57173 and the related https://go.dev/cl/455195.
What did you see?
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, such as this simplified example:
A real-world example:
https://github.com/go-spatial/geom/blob/3cd2f5a9a082dd4f827c9f9b69ba5d736d2dcb12/planar/planar_test.go#L118
I saw this in a public module, then backed up to observe that this particular panic is in the 1.20 release candidate / tip.
Error:
Stack:
The text was updated successfully, but these errors were encountered: