From d84011be448b69bcc3abd2004c9e41036e9b18e2 Mon Sep 17 00:00:00 2001 From: arekkas Date: Tue, 9 Oct 2018 00:49:03 +0200 Subject: [PATCH] cmd: Fix flaky port finder Closes #1054 Signed-off-by: arekkas --- cmd/root_test.go | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/cmd/root_test.go b/cmd/root_test.go index 547ae0a081e..97962b48bb4 100644 --- a/cmd/root_test.go +++ b/cmd/root_test.go @@ -34,17 +34,30 @@ import ( var frontendPort, backendPort int -func init() { +func freePort() (int, int) { var err error - frontendPort, err = freeport.GetFreePort() - if err != nil { + r := make([]int, 2) + + if r[0], err = freeport.GetFreePort(); err != nil { panic(err.Error()) } - backendPort, err = freeport.GetFreePort() - if err != nil { - panic(err.Error()) + tries := 0 + for { + r[1], err = freeport.GetFreePort() + if r[0] != r[1] { + break + } + tries++ + if tries > 10 { + panic("Unable to find free port") + } } + return r[0], r[1] +} + +func init() { + frontendPort, backendPort = freePort() os.Setenv("PUBLIC_PORT", fmt.Sprintf("%d", frontendPort)) os.Setenv("ADMIN_PORT", fmt.Sprintf("%d", backendPort))