Skip to content

Commit 03eb1b9

Browse files
committed
Wait for domain proxy to start in tests.
1 parent 10a77a4 commit 03eb1b9

File tree

6 files changed

+30
-17
lines changed

6 files changed

+30
-17
lines changed

cmd/domainproxy/client/main.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import (
99

1010
func main() {
1111
domainProxyClient := NewDomainProxyClient()
12-
domainProxyClient.Start()
12+
ready := make(chan bool)
13+
domainProxyClient.Start(ready)
14+
<-ready
1315
signals := make(chan os.Signal, 1)
1416
signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM)
1517
<-signals

cmd/domainproxy/server/main.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import (
99

1010
func main() {
1111
domainProxyServer := NewDomainProxyServer()
12-
domainProxyServer.Start()
12+
ready := make(chan bool)
13+
domainProxyServer.Start(ready)
14+
<-ready
1315
signals := make(chan os.Signal, 1)
1416
signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM)
1517
<-signals

pkg/domainproxy/client/client.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,19 @@ func NewDomainProxyClient() *DomainProxyClient {
3838
}
3939
}
4040

41-
func (dpc *DomainProxyClient) Start() {
41+
func (dpc *DomainProxyClient) Start(ready chan<- bool) {
4242
logger.Println("Starting domain proxy client...")
4343
var err error
44-
dpc.listener, err = net.Listen("tcp", fmt.Sprintf("%s:%d", Localhost, dpc.serverHttpPort))
44+
dpc.listener, err = net.Listen(TCP, fmt.Sprintf("%s:%d", Localhost, dpc.serverHttpPort))
4545
if err != nil {
4646
logger.Fatalf("Failed to start HTTP server: %v", err)
4747
}
48-
go dpc.startClient()
48+
go dpc.startClient(ready)
4949
}
5050

51-
func (dpc *DomainProxyClient) startClient() {
51+
func (dpc *DomainProxyClient) startClient(ready chan<- bool) {
5252
logger.Printf("HTTP server listening on port %d", dpc.serverHttpPort)
53+
ready <- true
5354
for {
5455
select {
5556
case <-dpc.shutdownContext.Done():
@@ -74,7 +75,7 @@ func (dpc *DomainProxyClient) handleConnectionRequest(serverConnection net.Conn)
7475
logger.Printf("Handling %s Connection %d", HttpToDomainSocket, connectionNo)
7576
startTime := time.Now()
7677
sharedParams := dpc.sharedParams
77-
domainConnection, err := net.DialTimeout("unix", sharedParams.DomainSocket, sharedParams.ConnectionTimeout)
78+
domainConnection, err := net.DialTimeout(UNIX, sharedParams.DomainSocket, sharedParams.ConnectionTimeout)
7879
if err != nil {
7980
logger.Printf("Failed to connect to domain socket: %v", err)
8081
if err = serverConnection.Close(); err != nil {

pkg/domainproxy/common/common.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ const (
2121
DefaultConnectionTimeout = 1000 * time.Millisecond
2222
IdleTimeoutKey = "IDLE_TIMEOUT"
2323
DefaultIdleTimeout = 30000 * time.Millisecond
24+
TCP = "tcp"
25+
UNIX = "unix"
2426
)
2527

2628
type Common struct {

pkg/domainproxy/integration/domainproxy_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,13 @@ func mockHandler(t *testing.T) http.HandlerFunc {
8585

8686
func startDomainProxy() (*DomainProxyServer, *DomainProxyClient) {
8787
domainProxyServer := NewDomainProxyServer()
88-
go domainProxyServer.Start()
88+
serverReady := make(chan bool)
89+
go domainProxyServer.Start(serverReady)
90+
<-serverReady
91+
clientReady := make(chan bool)
8992
domainProxyClient := NewDomainProxyClient()
90-
go domainProxyClient.Start()
93+
go domainProxyClient.Start(clientReady)
94+
<-clientReady
9195
return domainProxyServer, domainProxyClient
9296
}
9397

pkg/domainproxy/server/server.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,24 +71,26 @@ func NewDomainProxyServer() *DomainProxyServer {
7171
}
7272
}
7373

74-
func (dps *DomainProxyServer) Start() {
74+
func (dps *DomainProxyServer) Start(ready chan<- bool) {
7575
logger.Println("Starting domain proxy server...")
76-
go dps.startServer()
77-
}
78-
79-
func (dps *DomainProxyServer) startServer() {
8076
sharedParams := dps.sharedParams
8177
if _, err := os.Stat(sharedParams.DomainSocket); err == nil {
8278
if err := os.Remove(sharedParams.DomainSocket); err != nil {
8379
logger.Fatalf("Failed to delete existing domain socket: %v", err)
8480
}
8581
}
8682
var err error
87-
dps.listener, err = net.Listen("unix", sharedParams.DomainSocket)
83+
dps.listener, err = net.Listen(UNIX, sharedParams.DomainSocket)
8884
if err != nil {
8985
logger.Fatalf("Failed to start domain socket listener: %v", err)
9086
}
87+
go dps.startServer(ready)
88+
}
89+
90+
func (dps *DomainProxyServer) startServer(ready chan<- bool) {
91+
sharedParams := dps.sharedParams
9192
logger.Printf("Domain socket server listening on %s", sharedParams.DomainSocket)
93+
ready <- true
9294
for {
9395
select {
9496
case <-dps.runningContext.Done():
@@ -163,7 +165,7 @@ func (dps *DomainProxyServer) handleHttpConnection(sourceConnection net.Conn, wr
163165
request.Header.Set("Proxy-Authorization", "Basic "+GetBasicAuth(dps.internalProxyUser, dps.internalProxyPassword))
164166
}
165167
}
166-
targetConnection, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", targetHost, targetPort), sharedParams.ConnectionTimeout)
168+
targetConnection, err := net.DialTimeout(TCP, fmt.Sprintf("%s:%d", targetHost, targetPort), sharedParams.ConnectionTimeout)
167169
if err != nil {
168170
dps.handleErrorResponse(writer, err, fmt.Sprintf("Failed to connect to %s", targetConnectionName), false)
169171
if err = sourceConnection.Close(); err != nil {
@@ -215,7 +217,7 @@ func (dps *DomainProxyServer) handleHttpsConnection(sourceConnection net.Conn, w
215217
startTime := time.Now()
216218
sharedParams := dps.sharedParams
217219
request.Header.Set("Connection", "close")
218-
targetConnection, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", targetHost, targetPort), sharedParams.ConnectionTimeout)
220+
targetConnection, err := net.DialTimeout(TCP, fmt.Sprintf("%s:%d", targetHost, targetPort), sharedParams.ConnectionTimeout)
219221
if err != nil {
220222
dps.handleErrorResponse(writer, err, fmt.Sprintf("Failed to connect to %s", targetConnectionName), true)
221223
if err = sourceConnection.Close(); err != nil {

0 commit comments

Comments
 (0)