Skip to content

Commit 2190750

Browse files
rscbradfitz
authored andcommitted
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 <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]> TryBot-Result: Gobot Gobot <[email protected]>
1 parent 91abab0 commit 2190750

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

src/net/unix_test.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,42 @@ func TestUnixgramConnLocalAndRemoteNames(t *testing.T) {
405405
}
406406
}
407407

408+
func TestUnixUnlink(t *testing.T) {
409+
if !testableNetwork("unix") {
410+
t.Skip("unix test")
411+
}
412+
name := testUnixAddr()
413+
l, err := Listen("unix", name)
414+
if err != nil {
415+
t.Fatal(err)
416+
}
417+
if _, err := os.Stat(name); err != nil {
418+
t.Fatalf("cannot stat unix socket after ListenUnix: %v", err)
419+
}
420+
f, _ := l.(*UnixListener).File()
421+
l1, err := FileListener(f)
422+
if err != nil {
423+
t.Fatal(err)
424+
}
425+
if _, err := os.Stat(name); err != nil {
426+
t.Fatalf("cannot stat unix socket after FileListener: %v", err)
427+
}
428+
if err := l1.Close(); err != nil {
429+
t.Fatalf("closing file listener: %v", err)
430+
}
431+
if _, err := os.Stat(name); err != nil {
432+
t.Fatalf("cannot stat unix socket after closing FileListener: %v", err)
433+
}
434+
f.Close()
435+
if _, err := os.Stat(name); err != nil {
436+
t.Fatalf("cannot stat unix socket after closing FileListener and fd: %v", err)
437+
}
438+
l.Close()
439+
if _, err := os.Stat(name); err == nil {
440+
t.Fatal("closing unix listener did not remove unix socket")
441+
}
442+
}
443+
408444
// forceGoDNS forces the resolver configuration to use the pure Go resolver
409445
// and returns a fixup function to restore the old settings.
410446
func forceGoDNS() func() {

0 commit comments

Comments
 (0)