]> Cypherpunks repositories - gostls13.git/commitdiff
misc/cgo/testcshared: force descriptor 30 to be closed when execing test
authorIan Lance Taylor <iant@golang.org>
Wed, 1 Aug 2018 21:50:11 +0000 (14:50 -0700)
committerIan Lance Taylor <iant@golang.org>
Wed, 1 Aug 2018 23:10:11 +0000 (23:10 +0000)
Fixes #26730

Change-Id: I3396598282c814e75c0c4ef16f692dbe83d2935e
Reviewed-on: https://go-review.googlesource.com/127395
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
misc/cgo/testcshared/cshared_test.go

index 77cefc5a66a368278f70315f6a5be4b63ea6be37..89b19d653a3d859a11ce65a02af24633d53e2abe 100644 (file)
@@ -201,6 +201,16 @@ func run(t *testing.T, env []string, args ...string) string {
        t.Helper()
        cmd := exec.Command(args[0], args[1:]...)
        cmd.Env = env
+
+       if GOOS != "windows" {
+               // TestUnexportedSymbols relies on file descriptor 30
+               // being closed when the program starts, so enforce
+               // that in all cases. (The first three descriptors are
+               // stdin/stdout/stderr, so we just need to make sure
+               // that cmd.ExtraFiles[27] exists and is nil.)
+               cmd.ExtraFiles = make([]*os.File, 28)
+       }
+
        out, err := cmd.CombinedOutput()
        if err != nil {
                t.Fatalf("command failed: %v\n%v\n%s\n", args, err, out)