Skip to content

Commit b1d0e13

Browse files
author
albertteoh
committed
Dynamically allocate port. Remove strict error assertion.
Signed-off-by: albertteoh <albert.teoh@logz.io>
1 parent 1ef7966 commit b1d0e13

File tree

1 file changed

+29
-25
lines changed

1 file changed

+29
-25
lines changed

cmd/query/app/server_test.go

+29-25
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ package app
1717
import (
1818
"context"
1919
"net"
20-
"os"
2120
"sync"
2221
"testing"
2322
"time"
@@ -27,7 +26,6 @@ import (
2726
"github.com/stretchr/testify/mock"
2827
"go.uber.org/zap"
2928
"go.uber.org/zap/zaptest/observer"
30-
"golang.org/x/sys/unix"
3129

3230
"github.com/jaegertracing/jaeger/cmd/flags"
3331
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
@@ -75,31 +73,37 @@ func TestServerBadHostPort(t *testing.T) {
7573
}
7674

7775
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)
7880

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+
})
101106
}
102-
103107
}
104108

105109
func TestServer(t *testing.T) {

0 commit comments

Comments
 (0)