socket_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. package netreflect_test
  5. import (
  6. "net"
  7. "os"
  8. "testing"
  9. "golang.org/x/net/internal/netreflect"
  10. "golang.org/x/net/internal/nettest"
  11. )
  12. func TestSocketOf(t *testing.T) {
  13. for _, network := range []string{"tcp", "unix", "unixpacket"} {
  14. if !nettest.TestableNetwork(network) {
  15. continue
  16. }
  17. ln, err := nettest.NewLocalListener(network)
  18. if err != nil {
  19. t.Error(err)
  20. continue
  21. }
  22. defer func() {
  23. path := ln.Addr().String()
  24. ln.Close()
  25. if network == "unix" || network == "unixpacket" {
  26. os.Remove(path)
  27. }
  28. }()
  29. c, err := net.Dial(ln.Addr().Network(), ln.Addr().String())
  30. if err != nil {
  31. t.Error(err)
  32. continue
  33. }
  34. defer c.Close()
  35. if _, err := netreflect.SocketOf(c); err != nil {
  36. t.Error(err)
  37. continue
  38. }
  39. }
  40. }
  41. func TestPacketSocketOf(t *testing.T) {
  42. for _, network := range []string{"udp", "unixgram"} {
  43. if !nettest.TestableNetwork(network) {
  44. continue
  45. }
  46. c, err := nettest.NewLocalPacketListener(network)
  47. if err != nil {
  48. t.Error(err)
  49. continue
  50. }
  51. defer c.Close()
  52. if _, err := netreflect.PacketSocketOf(c); err != nil {
  53. t.Error(err)
  54. continue
  55. }
  56. }
  57. }