From bf281b19943c9f335c70139ee89bde1124e47a88 Mon Sep 17 00:00:00 2001 From: David Zhao Date: Fri, 4 Jun 2021 11:19:23 -0700 Subject: [PATCH] Simplify test helpers, cleanup redis between tests --- test/client/client.go | 3 ++- test/integration_helpers.go | 29 +++++++++++++------------ test/multinode_test.go | 43 +++++++++---------------------------- test/singlenode_test.go | 22 ++++++------------- 4 files changed, 33 insertions(+), 64 deletions(-) diff --git a/test/client/client.go b/test/client/client.go index 4de3c3ac3..64ad8c8ca 100644 --- a/test/client/client.go +++ b/test/client/client.go @@ -292,7 +292,8 @@ func (c *RTCClient) Run() error { } func (c *RTCClient) WaitUntilConnected() error { - ctx, _ := context.WithTimeout(context.Background(), 5*time.Second) + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() for { select { case <-ctx.Done(): diff --git a/test/integration_helpers.go b/test/integration_helpers.go index ab49804fe..9a815a705 100644 --- a/test/integration_helpers.go +++ b/test/integration_helpers.go @@ -45,7 +45,8 @@ func init() { logger.InitDevelopment("") } -func setupSingleNodeTest(roomName string) *service.LivekitServer { +func setupSingleNodeTest(name string, roomName string) (*service.LivekitServer, func()) { + logger.Infow("----------------STARTING TEST----------------", "test", name) s := createSingleNodeServer() go func() { s.Start() @@ -58,10 +59,14 @@ func setupSingleNodeTest(roomName string) *service.LivekitServer { if err != nil { panic(err) } - return s + return s, func() { + s.Stop() + logger.Infow("----------------FINISHING TEST----------------", "test", name) + } } -func setupMultiNodeTest() (*service.LivekitServer, *service.LivekitServer) { +func setupMultiNodeTest(name string) (*service.LivekitServer, *service.LivekitServer, func()) { + logger.Infow("----------------STARTING TEST----------------", "test", name) s1 := createMultiNodeServer(utils.NewGuid(nodeId1), defaultServerPort) s2 := createMultiNodeServer(utils.NewGuid(nodeId2), secondServerPort) go s1.Start() @@ -70,12 +75,12 @@ func setupMultiNodeTest() (*service.LivekitServer, *service.LivekitServer) { waitForServerToStart(s1) waitForServerToStart(s2) - return s1, s2 -} - -func teardownTest(s *service.LivekitServer, roomName string) { - roomClient.DeleteRoom(contextWithCreateRoomToken(), &livekit.DeleteRoomRequest{Room: roomName}) - s.Stop() + return s1, s2, func() { + s1.Stop() + s2.Stop() + redisClient().FlushAll(context.Background()) + logger.Infow("----------------FINISHING TEST----------------", "test", name) + } } func contextWithCreateRoomToken() context.Context { @@ -131,18 +136,14 @@ func waitUntilConnected(t *testing.T, clients ...*testclient.RTCClient) { err := c.WaitUntilConnected() if err != nil { errChan <- err + t.Error(err) } }() } wg.Wait() close(errChan) - hasError := false for err := range errChan { t.Fatal(err) - hasError = true - } - if hasError { - t.FailNow() } } diff --git a/test/multinode_test.go b/test/multinode_test.go index 67b744638..caf99cc70 100644 --- a/test/multinode_test.go +++ b/test/multinode_test.go @@ -4,7 +4,6 @@ import ( "testing" "time" - "github.com/livekit/livekit-server/pkg/logger" livekit "github.com/livekit/livekit-server/proto" "github.com/stretchr/testify/require" ) @@ -14,13 +13,8 @@ func TestMultiNodeRouting(t *testing.T) { t.SkipNow() return } - - logger.Infow("\n\n---Starting TestMultiNodeRouting---") - defer logger.Infow("---Finishing TestMultiNodeRouting---") - - s1, s2 := setupMultiNodeTest() - defer s1.Stop() - defer s2.Stop() + _, _, finish := setupMultiNodeTest("TestMultiNodeRouting") + defer finish() // creating room on node 1 _, err := roomClient.CreateRoom(contextWithCreateRoomToken(), &livekit.CreateRoomRequest{ @@ -61,12 +55,9 @@ func TestConnectWithoutCreation(t *testing.T) { t.SkipNow() return } - logger.Infow("\n\n---Starting TestConnectWithoutCreation---") - defer logger.Infow("---Finishing TestConnectWithoutCreation---") - s1, s2 := setupMultiNodeTest() - defer s1.Stop() - defer s2.Stop() + _, _, finish := setupMultiNodeTest("TestConnectWithoutCreation") + defer finish() c1 := createRTCClient("c1", defaultServerPort, nil) waitUntilConnected(t, c1) @@ -80,13 +71,8 @@ func TestMultinodePublishingUponJoining(t *testing.T) { t.SkipNow() return } - - logger.Infow("\n\n---Starting TestMultinodePublishingUponJoining---") - defer logger.Infow("---Finishing TestMultinodePublishingUponJoining---") - - s1, s2 := setupMultiNodeTest() - defer s1.Stop() - defer s2.Stop() + _, _, finish := setupMultiNodeTest("TestMultinodePublishingUponJoining") + defer finish() scenarioPublishingUponJoining(t, defaultServerPort, secondServerPort) } @@ -96,13 +82,8 @@ func TestMultinodeReceiveBeforePublish(t *testing.T) { t.SkipNow() return } - - logger.Infow("\n\n---Starting TestMultinodeReceiveBeforePublish---") - defer logger.Infow("---Finishing TestMultinodeReceiveBeforePublish---") - - s1, s2 := setupMultiNodeTest() - defer s1.Stop() - defer s2.Stop() + _, _, finish := setupMultiNodeTest("TestMultinodeReceiveBeforePublish") + defer finish() scenarioReceiveBeforePublish(t) } @@ -114,12 +95,8 @@ func TestMultinodeReconnectAfterNodeShutdown(t *testing.T) { return } - logger.Infow("\n\n---Starting TestMultinodeReconnectAfterNodeShutdown---") - defer logger.Infow("---Finishing TestMultinodeReconnectAfterNodeShutdown---") - - s1, s2 := setupMultiNodeTest() - defer s1.Stop() - defer s2.Stop() + _, s2, finish := setupMultiNodeTest("TestMultinodeReconnectAfterNodeShutdown") + defer finish() // creating room on node 1 _, err := roomClient.CreateRoom(contextWithCreateRoomToken(), &livekit.CreateRoomRequest{ diff --git a/test/singlenode_test.go b/test/singlenode_test.go index 37968f5c6..2402b3007 100644 --- a/test/singlenode_test.go +++ b/test/singlenode_test.go @@ -5,7 +5,6 @@ import ( "testing" "time" - "github.com/livekit/livekit-server/pkg/logger" testclient "github.com/livekit/livekit-server/test/client" "github.com/stretchr/testify/require" ) @@ -16,10 +15,8 @@ func TestClientCouldConnect(t *testing.T) { return } - s := setupSingleNodeTest(testRoom) - defer func() { - teardownTest(s, testRoom) - }() + _, finish := setupSingleNodeTest("TestClientCouldConnect", testRoom) + defer finish() c1 := createRTCClient("c1", defaultServerPort, nil) c2 := createRTCClient("c2", defaultServerPort, nil) @@ -41,13 +38,8 @@ func TestSinglePublisher(t *testing.T) { return } - logger.Infow("\n\n---Starting TestSinglePublisher---") - defer logger.Infow("---Finishing TestSinglePublisher---") - - s := setupSingleNodeTest(testRoom) - defer func() { - teardownTest(s, testRoom) - }() + s, finish := setupSingleNodeTest("TestSinglePublisher", testRoom) + defer finish() c1 := createRTCClient("c1", defaultServerPort, nil) c2 := createRTCClient("c2", defaultServerPort, nil) @@ -128,10 +120,8 @@ func TestAutoSubDisabled(t *testing.T) { return } - s := setupSingleNodeTest(testRoom) - defer func() { - teardownTest(s, testRoom) - }() + _, finish := setupSingleNodeTest("TestAutoSubDisabled", testRoom) + defer finish() opts := testclient.Options{AutoSubscribe: false} c1 := createRTCClient("c1", defaultServerPort, &opts)