From aa2b82727f0f1b3edb79f6d31c04b8fd0d718455 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 11 Oct 2017 12:16:04 -0700 Subject: fix race condition in tests (#7609) --- api/apitestlib.go | 16 ++++++++++++++++ api4/apitestlib.go | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/api/apitestlib.go b/api/apitestlib.go index 3c64d2430..a38c20813 100644 --- a/api/apitestlib.go +++ b/api/apitestlib.go @@ -4,6 +4,7 @@ package api import ( + "net" "strings" "time" @@ -86,7 +87,20 @@ func ReloadConfigForSetup() { *utils.Cfg.TeamSettings.EnableOpenServer = true } +func (me *TestHelper) waitForConnectivity() { + for i := 0; i < 1000; i++ { + _, err := net.Dial("tcp", "localhost"+*utils.Cfg.ServiceSettings.ListenAddress) + if err == nil { + return + } + time.Sleep(time.Millisecond * 20) + } + panic("unable to connect") +} + func (me *TestHelper) InitBasic() *TestHelper { + me.waitForConnectivity() + me.BasicClient = me.CreateClient() me.BasicUser = me.CreateUser(me.BasicClient) me.LoginBasic() @@ -106,6 +120,8 @@ func (me *TestHelper) InitBasic() *TestHelper { } func (me *TestHelper) InitSystemAdmin() *TestHelper { + me.waitForConnectivity() + me.SystemAdminClient = me.CreateClient() me.SystemAdminUser = me.CreateUser(me.SystemAdminClient) me.SystemAdminUser.Password = "Password1" diff --git a/api4/apitestlib.go b/api4/apitestlib.go index f3c9c1634..f50095f79 100644 --- a/api4/apitestlib.go +++ b/api4/apitestlib.go @@ -7,6 +7,7 @@ import ( "bytes" "fmt" "io" + "net" "net/http" "os" "reflect" @@ -151,7 +152,20 @@ func (me *TestHelper) TearDown() { utils.EnableDebugLogForTest() } +func (me *TestHelper) waitForConnectivity() { + for i := 0; i < 1000; i++ { + _, err := net.Dial("tcp", "localhost"+*utils.Cfg.ServiceSettings.ListenAddress) + if err == nil { + return + } + time.Sleep(time.Millisecond * 20) + } + panic("unable to connect") +} + func (me *TestHelper) InitBasic() *TestHelper { + me.waitForConnectivity() + me.TeamAdminUser = me.CreateUser() me.LoginTeamAdmin() me.BasicTeam = me.CreateTeam() @@ -176,6 +190,8 @@ func (me *TestHelper) InitBasic() *TestHelper { } func (me *TestHelper) InitSystemAdmin() *TestHelper { + me.waitForConnectivity() + me.SystemAdminUser = me.CreateUser() me.App.UpdateUserRoles(me.SystemAdminUser.Id, model.ROLE_SYSTEM_USER.Id+" "+model.ROLE_SYSTEM_ADMIN.Id) me.LoginSystemAdmin() -- cgit v1.2.3-1-g7c22