@@ -17,7 +17,6 @@ package app
17
17
import (
18
18
"context"
19
19
"net"
20
- "os"
21
20
"sync"
22
21
"testing"
23
22
"time"
@@ -27,7 +26,6 @@ import (
27
26
"github.com/stretchr/testify/mock"
28
27
"go.uber.org/zap"
29
28
"go.uber.org/zap/zaptest/observer"
30
- "golang.org/x/sys/unix"
31
29
32
30
"github.com/jaegertracing/jaeger/cmd/flags"
33
31
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
@@ -75,31 +73,37 @@ func TestServerBadHostPort(t *testing.T) {
75
73
}
76
74
77
75
func TestServerInUseHostPort (t * testing.T ) {
76
+ const availableHostPort = "127.0.0.1:0"
77
+ conn , err := net .Listen ("tcp" , availableHostPort )
78
+ defer func () { conn .Close () }()
79
+ assert .NoError (t , err )
78
80
79
- for _ , hostPort := range [2 ]string {"127.0.0.1:8080" , "127.0.0.1:8081" } {
80
- conn , err := net .Listen ("tcp" , hostPort )
81
- assert .NoError (t , err )
82
-
83
- server , err := NewServer (zap .NewNop (), & querysvc.QueryService {},
84
- & QueryOptions {HTTPHostPort : "127.0.0.1:8080" , GRPCHostPort : "127.0.0.1:8081" , BearerTokenPropagation : true },
85
- opentracing.NoopTracer {})
86
- assert .NoError (t , err )
87
-
88
- err = server .Start ()
89
- syscallErr , ok := err .(* net.OpError ).Err .(* os.SyscallError )
90
- assert .True (t , ok )
91
- assert .Equal (t , syscallErr .Err , unix .EADDRINUSE )
92
-
93
- conn .Close ()
94
- if server .grpcConn != nil {
95
- server .grpcConn .Close ()
96
- }
97
- if server .httpConn != nil {
98
- server .httpConn .Close ()
99
- }
100
-
81
+ testCases := []struct {
82
+ name string
83
+ httpHostPort string
84
+ grpcHostPort string
85
+ }{
86
+ {"HTTP host port clash on " + conn .Addr ().String (), conn .Addr ().String (), availableHostPort },
87
+ {"GRPC host port clash on " + conn .Addr ().String (), availableHostPort , conn .Addr ().String ()},
88
+ }
89
+ for _ , tc := range testCases {
90
+ t .Run (tc .name , func (t * testing.T ) {
91
+ server , err := NewServer (zap .NewNop (), & querysvc.QueryService {},
92
+ & QueryOptions {HTTPHostPort : tc .httpHostPort , GRPCHostPort : tc .grpcHostPort , BearerTokenPropagation : true },
93
+ opentracing.NoopTracer {})
94
+ assert .NoError (t , err )
95
+
96
+ err = server .Start ()
97
+ assert .Error (t , err )
98
+
99
+ if server .grpcConn != nil {
100
+ server .grpcConn .Close ()
101
+ }
102
+ if server .httpConn != nil {
103
+ server .httpConn .Close ()
104
+ }
105
+ })
101
106
}
102
-
103
107
}
104
108
105
109
func TestServer (t * testing.T ) {
0 commit comments