diff options
| author | Russ Cox <rsc@golang.org> | 2015-12-10 23:51:36 -0500 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2015-12-14 20:37:42 +0000 |
| commit | 2190750ce1f52cbbe2d7e3052e85c775d8259b0f (patch) | |
| tree | 0913c02044610362c1c3795d9839f13bae6bf9ec /src | |
| parent | 91abab0429a9740ac1b9b0b06282c04f132103f5 (diff) | |
| download | go-2190750ce1f52cbbe2d7e3052e85c775d8259b0f.tar.xz | |
net: add test for CL 17458
I thought that we avoided creating on-disk Unix sockets,
but I was mistaken. Use one to test CL 17458.
Fixes #11826.
Change-Id: Iaa1fb007b95fa6be48200586522a6d4789ecd346
Reviewed-on: https://go-review.googlesource.com/17725
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src')
| -rw-r--r-- | src/net/unix_test.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/net/unix_test.go b/src/net/unix_test.go index 73f682e6bc..f0c583068e 100644 --- a/src/net/unix_test.go +++ b/src/net/unix_test.go @@ -405,6 +405,42 @@ func TestUnixgramConnLocalAndRemoteNames(t *testing.T) { } } +func TestUnixUnlink(t *testing.T) { + if !testableNetwork("unix") { + t.Skip("unix test") + } + name := testUnixAddr() + l, err := Listen("unix", name) + if err != nil { + t.Fatal(err) + } + if _, err := os.Stat(name); err != nil { + t.Fatalf("cannot stat unix socket after ListenUnix: %v", err) + } + f, _ := l.(*UnixListener).File() + l1, err := FileListener(f) + if err != nil { + t.Fatal(err) + } + if _, err := os.Stat(name); err != nil { + t.Fatalf("cannot stat unix socket after FileListener: %v", err) + } + if err := l1.Close(); err != nil { + t.Fatalf("closing file listener: %v", err) + } + if _, err := os.Stat(name); err != nil { + t.Fatalf("cannot stat unix socket after closing FileListener: %v", err) + } + f.Close() + if _, err := os.Stat(name); err != nil { + t.Fatalf("cannot stat unix socket after closing FileListener and fd: %v", err) + } + l.Close() + if _, err := os.Stat(name); err == nil { + t.Fatal("closing unix listener did not remove unix socket") + } +} + // forceGoDNS forces the resolver configuration to use the pure Go resolver // and returns a fixup function to restore the old settings. func forceGoDNS() func() { |
