You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

66 lines
1.3 KiB

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