]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: avoid loop variable capture in test
authorMichael Pratt <mpratt@google.com>
Wed, 4 Aug 2021 20:07:47 +0000 (16:07 -0400)
committerMichael Pratt <mpratt@google.com>
Tue, 14 Sep 2021 21:57:30 +0000 (21:57 +0000)
In TestSegv, the t.Run closure captures the loop variable 'test'. Since
the subtest calls t.Parallel, the parent test is allowed to keep
running, changing the loop variable and thus changing the value of
'test' in the subtest.

Change-Id: I021ddc50304de08a341e6ffe486aa54e573d3b94
Reviewed-on: https://go-review.googlesource.com/c/go/+/339911
Trust: Michael Pratt <mpratt@google.com>
Run-TryBot: Michael Pratt <mpratt@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/runtime/crash_cgo_test.go

index 5729942cee3bfb36b0e0152059aa607155c23aef..ce7bed920ffda9a22d33557e526bb83886f05191 100644 (file)
@@ -591,6 +591,7 @@ func TestSegv(t *testing.T) {
        }
 
        for _, test := range []string{"Segv", "SegvInCgo"} {
+               test := test
                t.Run(test, func(t *testing.T) {
                        t.Parallel()
                        got := runTestProg(t, "testprogcgo", test)