socket_test.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // Copyright 2016 The Go Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. // +build darwin dragonfly freebsd linux netbsd openbsd solaris windows
  5. package netreflect_test
  6. import (
  7. "net"
  8. "os"
  9. "testing"
  10. "golang.org/x/net/internal/netreflect"
  11. "golang.org/x/net/internal/nettest"
  12. )
  13. func TestSocketOf(t *testing.T) {
  14. for _, network := range []string{"tcp", "unix", "unixpacket"} {
  15. if !nettest.TestableNetwork(network) {
  16. continue
  17. }
  18. ln, err := nettest.NewLocalListener(network)
  19. if err != nil {
  20. t.Error(err)
  21. continue
  22. }
  23. defer func() {
  24. path := ln.Addr().String()
  25. ln.Close()
  26. if network == "unix" || network == "unixpacket" {
  27. os.Remove(path)
  28. }
  29. }()
  30. c, err := net.Dial(ln.Addr().Network(), ln.Addr().String())
  31. if err != nil {
  32. t.Error(err)
  33. continue
  34. }
  35. defer c.Close()
  36. if _, err := netreflect.SocketOf(c); err != nil {
  37. t.Error(err)
  38. continue
  39. }
  40. }
  41. }
  42. func TestPacketSocketOf(t *testing.T) {
  43. for _, network := range []string{"udp", "unixgram"} {
  44. if !nettest.TestableNetwork(network) {
  45. continue
  46. }
  47. c, err := nettest.NewLocalPacketListener(network)
  48. if err != nil {
  49. t.Error(err)
  50. continue
  51. }
  52. defer c.Close()
  53. if _, err := netreflect.PacketSocketOf(c); err != nil {
  54. t.Error(err)
  55. continue
  56. }
  57. }
  58. }