...
1
16
17 package addr_test
18
19 import (
20 "net"
21 "strconv"
22
23 . "github.com/onsi/ginkgo/v2"
24 . "github.com/onsi/gomega"
25
26 "sigs.k8s.io/controller-runtime/pkg/internal/testing/addr"
27 )
28
29 var _ = Describe("SuggestAddress", func() {
30 It("returns a free port and an address to bind to", func() {
31 port, host, err := addr.Suggest("")
32
33 Expect(err).NotTo(HaveOccurred())
34 Expect(host).To(Or(Equal("127.0.0.1"), Equal("::1")))
35 Expect(port).NotTo(Equal(0))
36
37 addr, err := net.ResolveTCPAddr("tcp", net.JoinHostPort(host, strconv.Itoa(port)))
38 Expect(err).NotTo(HaveOccurred())
39 l, err := net.ListenTCP("tcp", addr)
40 defer func() {
41 Expect(l.Close()).To(Succeed())
42 }()
43 Expect(err).NotTo(HaveOccurred())
44 })
45
46 It("supports an explicit listenHost", func() {
47 port, host, err := addr.Suggest("localhost")
48
49 Expect(err).NotTo(HaveOccurred())
50 Expect(host).To(Or(Equal("127.0.0.1"), Equal("::1")))
51 Expect(port).NotTo(Equal(0))
52
53 addr, err := net.ResolveTCPAddr("tcp", net.JoinHostPort(host, strconv.Itoa(port)))
54 Expect(err).NotTo(HaveOccurred())
55 l, err := net.ListenTCP("tcp", addr)
56 defer func() {
57 Expect(l.Close()).To(Succeed())
58 }()
59 Expect(err).NotTo(HaveOccurred())
60 })
61
62 It("supports a 0.0.0.0 listenHost", func() {
63 port, host, err := addr.Suggest("0.0.0.0")
64
65 Expect(err).NotTo(HaveOccurred())
66 Expect(host).To(Equal("0.0.0.0"))
67 Expect(port).NotTo(Equal(0))
68
69 addr, err := net.ResolveTCPAddr("tcp", net.JoinHostPort(host, strconv.Itoa(port)))
70 Expect(err).NotTo(HaveOccurred())
71 l, err := net.ListenTCP("tcp", addr)
72 defer func() {
73 Expect(l.Close()).To(Succeed())
74 }()
75 Expect(err).NotTo(HaveOccurred())
76 })
77 })
78
View as plain text