@@ -95,7 +95,7 @@ func TestChannelEncoding(t *testing.T) {
9595 t .Fatalf ("Error closing send connection: %s" , closeErr )
9696 }
9797 }
98- SpawnClientServerTest (t , "localhost:12843" , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
98+ SpawnClientServerTest (t , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
9999}
100100
101101type AbstractionMessage struct {
@@ -133,7 +133,7 @@ func TestChannelAbstraction(t *testing.T) {
133133 t .Fatalf ("Unexpected message value:\n \t Expected: %s\n \t Actual: %s" , expected , m1 .Message )
134134 }
135135 }
136- SpawnClientServerTest (t , "localhost:12943" , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
136+ SpawnClientServerTest (t , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
137137}
138138
139139type MessageWithByteStream struct {
@@ -213,7 +213,7 @@ func TestByteStream(t *testing.T) {
213213 t .Fatalf ("Error closing byte stream: %s" , closeErr )
214214 }
215215 }
216- SpawnClientServerTest (t , "localhost:12944" , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
216+ SpawnClientServerTest (t , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
217217}
218218
219219type WrappedMessage struct {
@@ -281,7 +281,7 @@ func TestWrappedByteStreams(t *testing.T) {
281281 }
282282
283283 }
284- SpawnClientServerTest (t , "localhost:12943" , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
284+ SpawnClientServerTest (t , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
285285}
286286
287287type ReceiverMessage struct {
@@ -356,7 +356,7 @@ func TestSubChannel(t *testing.T) {
356356 t .Fatalf ("Unexpected message value:\n \t Expected: %s\n \t Actual: %s" , expected , m3 .Message )
357357 }
358358 }
359- SpawnClientServerTest (t , "localhost:12845" , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
359+ SpawnClientServerTest (t , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
360360}
361361
362362type SenderMessage struct {
@@ -432,7 +432,7 @@ func TestSenderSubChannel(t *testing.T) {
432432 }
433433
434434 }
435- SpawnClientServerTest (t , "localhost:12845" , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
435+ SpawnClientServerTest (t , ClientSendWrapper (client ), ServerReceiveWrapper (server ))
436436}
437437func ClientSendWrapper (f func (t * testing.T , c libchan.Sender , s * Transport )) ClientRoutine {
438438 return func (t * testing.T , server string ) {
@@ -499,23 +499,25 @@ var DumpStackOnTimeout = true
499499
500500// SpawnClientServer ensures two routines are run in parallel and a
501501// failure in one will cause the test to fail
502- func SpawnClientServerTest (t * testing.T , host string , client ClientRoutine , server ServerRoutine ) {
502+ func SpawnClientServerTest (t * testing.T , client ClientRoutine , server ServerRoutine ) {
503503 endClient := make (chan bool )
504504 endServer := make (chan bool )
505505 listenWait := make (chan bool )
506506
507+ listener , listenErr := net .Listen ("tcp" , "localhost:0" )
508+ if listenErr != nil {
509+ t .Fatalf ("Error creating listener: %s" , listenErr )
510+ }
511+ addr := listener .Addr ().String ()
512+
507513 go func () {
508514 defer close (endClient )
509515 <- listenWait
510- client (t , host )
516+ client (t , addr )
511517 }()
512518
513519 go func () {
514520 defer close (endServer )
515- listener , listenErr := net .Listen ("tcp" , host )
516- if listenErr != nil {
517- t .Fatalf ("Error creating listener: %s" , listenErr )
518- }
519521 defer func () {
520522 closeErr := listener .Close ()
521523 if closeErr != nil {
0 commit comments