66 "crypto/tls"
77 "net"
88 "net/http/httptest"
9+ "syscall"
910 "time"
1011
1112 . "github.com/bsm/ginkgo/v2"
@@ -16,50 +17,58 @@ var _ = Describe("tests conn_check with real conns", func() {
1617 var ts * httptest.Server
1718 var conn net.Conn
1819 var tlsConn * tls.Conn
20+ var sysConn syscall.Conn
21+ var tlsSysConn syscall.Conn
1922 var err error
2023
2124 BeforeEach (func () {
2225 ts = httptest .NewServer (nil )
2326 conn , err = net .DialTimeout (ts .Listener .Addr ().Network (), ts .Listener .Addr ().String (), time .Second )
2427 Expect (err ).NotTo (HaveOccurred ())
28+ sysConn = conn .(syscall.Conn )
2529 tlsTestServer := httptest .NewUnstartedServer (nil )
2630 tlsTestServer .StartTLS ()
2731 tlsConn , err = tls .DialWithDialer (& net.Dialer {Timeout : time .Second }, tlsTestServer .Listener .Addr ().Network (), tlsTestServer .Listener .Addr ().String (), & tls.Config {InsecureSkipVerify : true })
2832 Expect (err ).NotTo (HaveOccurred ())
33+ tlsSysConn = tlsConn .NetConn ().(syscall.Conn )
2934 })
3035
3136 AfterEach (func () {
3237 ts .Close ()
3338 })
3439
3540 It ("good conn check" , func () {
36- Expect (connCheck (conn )).NotTo (HaveOccurred ())
41+ Expect (connCheck (sysConn )).NotTo (HaveOccurred ())
3742
3843 Expect (conn .Close ()).NotTo (HaveOccurred ())
39- Expect (connCheck (conn )).To (HaveOccurred ())
44+ Expect (connCheck (sysConn )).To (HaveOccurred ())
4045 })
4146
4247 It ("good tls conn check" , func () {
43- Expect (connCheck (tlsConn )).NotTo (HaveOccurred ())
48+ Expect (connCheck (tlsSysConn )).NotTo (HaveOccurred ())
4449
4550 Expect (tlsConn .Close ()).NotTo (HaveOccurred ())
46- Expect (connCheck (tlsConn )).To (HaveOccurred ())
51+ Expect (connCheck (tlsSysConn )).To (HaveOccurred ())
4752 })
4853
4954 It ("bad conn check" , func () {
5055 Expect (conn .Close ()).NotTo (HaveOccurred ())
51- Expect (connCheck (conn )).To (HaveOccurred ())
56+ Expect (connCheck (sysConn )).To (HaveOccurred ())
5257 })
5358
5459 It ("bad tls conn check" , func () {
5560 Expect (tlsConn .Close ()).NotTo (HaveOccurred ())
56- Expect (connCheck (tlsConn )).To (HaveOccurred ())
61+ Expect (connCheck (tlsSysConn )).To (HaveOccurred ())
5762 })
5863
5964 It ("check conn deadline" , func () {
6065 Expect (conn .SetDeadline (time .Now ())).NotTo (HaveOccurred ())
6166 time .Sleep (time .Millisecond * 10 )
62- Expect (connCheck (conn )).NotTo (HaveOccurred ())
67+ Expect (connCheck (sysConn )).To (HaveOccurred ())
68+
69+ Expect (conn .SetDeadline (time .Now ().Add (time .Minute ))).NotTo (HaveOccurred ())
70+ time .Sleep (time .Millisecond * 10 )
71+ Expect (connCheck (sysConn )).NotTo (HaveOccurred ())
6372 Expect (conn .Close ()).NotTo (HaveOccurred ())
6473 })
6574})
0 commit comments