]> Cypherpunks repositories - gostls13.git/commitdiff
all: avoid leaking fds during tests
authorDave Cheney <dave@cheney.net>
Fri, 21 Jun 2013 01:13:14 +0000 (11:13 +1000)
committerDave Cheney <dave@cheney.net>
Fri, 21 Jun 2013 01:13:14 +0000 (11:13 +1000)
trivial: it is not a serious problem to leak a fd in a short lived process, but it was obscuring my investigation of issue 5593.

R=golang-dev, iant, bradfitz
CC=golang-dev
https://golang.org/cl/10391043

src/pkg/archive/tar/reader_test.go
src/pkg/archive/zip/reader_test.go
src/pkg/debug/elf/file_test.go
src/pkg/log/syslog/syslog_test.go
src/pkg/net/net_test.go
src/pkg/net/parse_test.go
src/pkg/os/os_test.go

index 2cf3d717d5fcf011ec24d08acc9b67bc079824d2..12856165656a6bb477eddac8aba7e17790870636 100644 (file)
@@ -171,6 +171,7 @@ testLoop:
                        t.Errorf("test %d: Unexpected error: %v", i, err)
                        continue
                }
+               defer f.Close()
                tr := NewReader(f)
                for j, header := range test.headers {
                        hdr, err := tr.Next()
@@ -191,7 +192,6 @@ testLoop:
                if hdr != nil || err != nil {
                        t.Errorf("test %d: Unexpected entry or error: hdr=%v err=%v", i, hdr, err)
                }
-               f.Close()
        }
 }
 
index 833ba28ad5252a62d98eaf46441c4c4319f58d64..78875ecbf0e0684018b9faae73df79a99d4e03b6 100644 (file)
@@ -276,6 +276,7 @@ func readTestZip(t *testing.T, zt ZipTest) {
                var rc *ReadCloser
                rc, err = OpenReader(filepath.Join("testdata", zt.Name))
                if err == nil {
+                       defer rc.Close()
                        z = &rc.Reader
                }
        }
index f9aa7265af09f9cd8d81f83df933e1aeb7fb6f18..38b5f9e70756b6f304d0bb7ea1fd5114cebba3e1 100644 (file)
@@ -166,6 +166,7 @@ func TestOpen(t *testing.T) {
                } else {
                        f, err = Open(tt.file)
                }
+               defer f.Close()
                if err != nil {
                        t.Errorf("cannot open file %s: %v", tt.file, err)
                        continue
index 786edf870d78854c2d0628d6ed15803f1d318ebc..78cfbd4c55d4ada14cc7261ec8e8d2e4477b6f3a 100644 (file)
@@ -255,6 +255,7 @@ func TestWrite(t *testing.T) {
                        if err != nil {
                                t.Fatalf("syslog.Dial() failed: %v", err)
                        }
+                       defer l.Close()
                        _, err = io.WriteString(l, test.msg)
                        if err != nil {
                                t.Fatalf("WriteString() failed: %v", err)
@@ -328,6 +329,7 @@ func TestConcurrentReconnect(t *testing.T) {
                        if err != nil {
                                t.Fatalf("syslog.Dial() failed: %v", err)
                        }
+                       defer w.Close()
                        for i := 0; i < M; i++ {
                                err := w.Info("test")
                                if err != nil {
index 1a512a5b1100ecb3eed05649418a341796b64bd8..ee6cf0fcdd99e340feca36944be81f1fedb2cfb9 100644 (file)
@@ -25,6 +25,7 @@ func TestShutdown(t *testing.T) {
        }
 
        go func() {
+               defer ln.Close()
                c, err := ln.Accept()
                if err != nil {
                        t.Fatalf("Accept: %v", err)
@@ -75,7 +76,10 @@ func TestShutdownUnix(t *testing.T) {
        if err != nil {
                t.Fatalf("ListenUnix on %s: %s", tmpname, err)
        }
-       defer os.Remove(tmpname)
+       defer func() {
+               ln.Close()
+               os.Remove(tmpname)
+       }()
 
        go func() {
                c, err := ln.Accept()
index 9df0c534b33be1d075a7a0ba7a222ae6ba02d818..b86bc32884b3aae897257c2c92098da493f123ea 100644 (file)
@@ -23,12 +23,14 @@ func TestReadLine(t *testing.T) {
        if err != nil {
                t.Fatalf("open %s: %v", filename, err)
        }
+       defer fd.Close()
        br := bufio.NewReader(fd)
 
        file, err := open(filename)
        if file == nil {
                t.Fatalf("net.open(%s) = nil", filename)
        }
+       defer file.close()
 
        lineno := 1
        byteno := 0
index 025b709b81ce3e811f51e3945f4689984396c6ba..09daa3f018c31e2333c99522bdb1b8ce4577a65e 100644 (file)
@@ -299,6 +299,7 @@ func TestReaddirnamesOneAtATime(t *testing.T) {
        if err2 != nil {
                t.Fatalf("open %q failed: %v", dir, err2)
        }
+       defer file1.Close()
        small := smallReaddirnames(file1, len(all)+100, t) // +100 in case we screw up
        if len(small) < len(all) {
                t.Fatalf("len(small) is %d, less than %d", len(small), len(all))
@@ -526,6 +527,7 @@ func exec(t *testing.T, dir, cmd string, args []string, expect string) {
        if err != nil {
                t.Fatalf("Pipe: %v", err)
        }
+       defer r.Close()
        attr := &ProcAttr{Dir: dir, Files: []*File{nil, w, Stderr}}
        p, err := StartProcess(cmd, args, attr)
        if err != nil {
@@ -844,6 +846,7 @@ func run(t *testing.T, cmd []string) string {
        if err != nil {
                t.Fatal(err)
        }
+       defer r.Close()
        p, err := StartProcess("/bin/hostname", []string{"hostname"}, &ProcAttr{Files: []*File{nil, w, Stderr}})
        if err != nil {
                t.Fatal(err)