Simplify test helpers, cleanup redis between tests

This commit is contained in:
David Zhao
2021-06-04 11:19:23 -07:00
parent f3006d397b
commit bf281b1994
4 changed files with 33 additions and 64 deletions

View File

@@ -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():

View File

@@ -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()
}
}

View File

@@ -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{

View File

@@ -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)