From: Ian Lance Taylor Date: Fri, 26 Oct 2012 17:31:03 +0000 (-0700) Subject: syscall: fix creds_test to reliably close os.File X-Git-Tag: go1.1rc2~2053 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5611e8b59fe338ca8dcb6790d569e77c2a78785f;p=gostls13.git syscall: fix creds_test to reliably close os.File Before this patch the test would close the file descriptor but not the os.File. When the os.File was GC'ed, the finalizer would close the file descriptor again. That would cause problems if the same file descriptor were returned by a later call to open in another test. On my system: > GOGC=30 go test --- FAIL: TestPassFD (0.04 seconds) passfd_test.go:62: FileConn: dup: bad file descriptor FAIL R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6776053 --- diff --git a/src/pkg/syscall/creds_test.go b/src/pkg/syscall/creds_test.go index 6eaa97e57b..b1894c66b0 100644 --- a/src/pkg/syscall/creds_test.go +++ b/src/pkg/syscall/creds_test.go @@ -31,14 +31,18 @@ func TestSCMCredentials(t *testing.T) { t.Fatalf("SetsockoptInt: %v", err) } - srv, err := net.FileConn(os.NewFile(uintptr(fds[0]), "")) + srvFile := os.NewFile(uintptr(fds[0]), "server") + defer srvFile.Close() + srv, err := net.FileConn(srvFile) if err != nil { t.Errorf("FileConn: %v", err) return } defer srv.Close() - cli, err := net.FileConn(os.NewFile(uintptr(fds[1]), "")) + cliFile := os.NewFile(uintptr(fds[1]), "client") + defer cliFile.Close() + cli, err := net.FileConn(cliFile) if err != nil { t.Errorf("FileConn: %v", err) return