@@ -64,57 +64,58 @@ func TestTLSClone(t *testing.T) {
6464 }
6565}
6666
67+ const tlsDir = "../test/testdata/"
68+
6769func TestTLSClientHandshakeReturnsAuthInfo (t * testing.T ) {
68- localPort := ":5050"
69- tlsDir := "../test/testdata/"
70- lis , err := net .Listen ("tcp" , localPort )
70+ lis , err := net .Listen ("tcp" , "localhost:0" )
7171 if err != nil {
72- t .Fatalf ("Failed to start local server. Listener error : %v" , err )
72+ t .Fatalf ("Failed to listen : %v" , err )
7373 }
74+ defer lis .Close ()
7475 serverTLS , err := NewServerTLSFromFile (tlsDir + "server1.pem" , tlsDir + "server1.key" )
7576 if err != nil {
7677 t .Fatalf ("Failed to create server TLS. Error: %v" , err )
7778 }
78- var serverAuthInfo AuthInfo
79+ var serverAuthInfo TLSInfo
7980 done := make (chan bool )
8081 go func () {
8182 defer func () {
8283 done <- true
8384 }()
84- serverRawConn , _ := lis .Accept ()
85+ serverRawConn , err := lis .Accept ()
86+ if err != nil {
87+ t .Fatalf ("Server failed to accept connection: %v" , err )
88+ }
8589 serverConn := tls .Server (serverRawConn , serverTLS .(* tlsCreds ).config )
8690 serverErr := serverConn .Handshake ()
8791 if serverErr != nil {
8892 t .Fatalf ("Error on server while handshake. Error: %v" , serverErr )
8993 }
9094 serverAuthInfo = TLSInfo {serverConn .ConnectionState ()}
9195 }()
92- defer lis .Close ()
93- conn , err := net .Dial ("tcp" , localPort )
96+ conn , err := net .Dial ("tcp" , lis .Addr ().String ())
9497 if err != nil {
9598 t .Fatalf ("Client failed to connect to local server. Error: %v" , err )
9699 }
100+ defer conn .Close ()
97101 c := NewTLS (& tls.Config {InsecureSkipVerify : true })
98- _ , authInfo , err := c .ClientHandshake (context .Background (), localPort , conn )
102+ _ , authInfo , err := c .ClientHandshake (context .Background (), lis . Addr (). String () , conn )
99103 if err != nil {
100104 t .Fatalf ("Error on client while handshake. Error: %v" , err )
101105 }
102- select {
103- case <- done :
104- // wait until server has populated the serverAuthInfo struct.
105- }
106- if authInfo .AuthType () != serverAuthInfo .AuthType () {
107- t .Fatalf ("c.ClientHandshake(_, %v, _) = %v, want %v." , localPort , authInfo , serverAuthInfo )
106+ // wait until server has populated the serverAuthInfo struct.
107+ <- done
108+ if authInfo .(TLSInfo ).State .Version != serverAuthInfo .State .Version {
109+ t .Fatalf ("c.ClientHandshake(_, %v, _) = %v, want %v." , lis .Addr ().String (), authInfo , serverAuthInfo )
108110 }
109111}
110112
111113func TestTLSServerHandshakeReturnsAuthInfo (t * testing.T ) {
112- localPort := ":5050"
113- tlsDir := "../test/testdata/"
114- lis , err := net .Listen ("tcp" , localPort )
114+ lis , err := net .Listen ("tcp" , "localhost:0" )
115115 if err != nil {
116- t .Fatalf ("Failed to start local server. Listener error : %v" , err )
116+ t .Fatalf ("Failed to listen : %v" , err )
117117 }
118+ defer lis .Close ()
118119 serverTLS , err := NewServerTLSFromFile (tlsDir + "server1.pem" , tlsDir + "server1.key" )
119120 if err != nil {
120121 t .Fatalf ("Failed to create server TLS. Error: %v" , err )
@@ -125,30 +126,31 @@ func TestTLSServerHandshakeReturnsAuthInfo(t *testing.T) {
125126 defer func () {
126127 done <- true
127128 }()
128- serverRawConn , _ := lis .Accept ()
129+ serverRawConn , err := lis .Accept ()
130+ if err != nil {
131+ t .Fatalf ("Server failed to accept connection: %v" , err )
132+ }
129133 var serverErr error
130134 _ , serverAuthInfo , serverErr = serverTLS .ServerHandshake (serverRawConn )
131135 if serverErr != nil {
132136 t .Fatalf ("Error on server while handshake. Error: %v" , serverErr )
133137 }
134138 }()
135- defer lis .Close ()
136- conn , err := net .Dial ("tcp" , localPort )
139+ conn , err := net .Dial ("tcp" , lis .Addr ().String ())
137140 if err != nil {
138141 t .Fatalf ("Client failed to connect to local server. Error: %v" , err )
139142 }
143+ defer conn .Close ()
140144 c := NewTLS (& tls.Config {InsecureSkipVerify : true })
141145 clientConn := tls .Client (conn , c .(* tlsCreds ).config )
142146 err = clientConn .Handshake ()
143147 if err != nil {
144148 t .Fatalf ("Error on client while handshake. Error: %v" , err )
145149 }
146150 authInfo := TLSInfo {clientConn .ConnectionState ()}
147- select {
148- case <- done :
149- // wait until server has populated the serverAuthInfo struct.
150- }
151- if authInfo .AuthType () != serverAuthInfo .AuthType () {
151+ // wait until server has populated the serverAuthInfo struct.
152+ <- done
153+ if authInfo .State .Version != serverAuthInfo .(TLSInfo ).State .Version {
152154 t .Fatalf ("ServerHandshake(_) = %v, want %v." , serverAuthInfo , authInfo )
153155 }
154156
0 commit comments