diff --git a/pkg/sdkserver/sdkserver_test.go b/pkg/sdkserver/sdkserver_test.go index db18a34fd5..fb89ff0565 100644 --- a/pkg/sdkserver/sdkserver_test.go +++ b/pkg/sdkserver/sdkserver_test.go @@ -333,7 +333,9 @@ func TestSidecarUpdateState(t *testing.T) { t.Run(k, func(t *testing.T) { m := agtesting.NewMocks() sc, err := defaultSidecar(m) - assert.Nil(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } sc.gsState = agonesv1.GameServerStateReady updated := false @@ -373,7 +375,9 @@ func TestSidecarHealthLastUpdated(t *testing.T) { m := agtesting.NewMocks() sc, err := defaultSidecar(m) - assert.Nil(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } sc.health = agonesv1.Health{Disabled: false} fc := clock.NewFakeClock(now) sc.clock = fc @@ -420,7 +424,9 @@ func TestSidecarUnhealthyMessage(t *testing.T) { m := agtesting.NewMocks() sc, err := NewSDKServer("test", "default", m.KubeClient, m.AgonesClient) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } m.AgonesClient.AddReactor("list", "gameservers", func(action k8stesting.Action) (bool, runtime.Object, error) { gs := agonesv1.GameServer{ @@ -466,13 +472,14 @@ func TestSidecarHealthy(t *testing.T) { m := agtesting.NewMocks() sc, err := defaultSidecar(m) + if err != nil { + assert.FailNow(t, err.Error()) + } // manually set the values sc.health = agonesv1.Health{FailureThreshold: 1} sc.healthTimeout = 5 * time.Second sc.initHealthLastUpdated(0 * time.Second) - assert.Nil(t, err) - now := time.Now().UTC() fc := clock.NewFakeClock(now) sc.clock = fc @@ -566,7 +573,9 @@ func TestSidecarHealthy(t *testing.T) { func TestSidecarHTTPHealthCheck(t *testing.T) { m := agtesting.NewMocks() sc, err := NewSDKServer("test", "default", m.KubeClient, m.AgonesClient) - assert.Nil(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } now := time.Now().Add(time.Hour).UTC() fc := clock.NewFakeClock(now) // now we control time - so slow machines won't fail anymore @@ -633,14 +642,18 @@ func TestSDKServerGetGameServer(t *testing.T) { defer close(stop) sc, err := defaultSidecar(m) - assert.Nil(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } sc.informerFactory.Start(stop) assert.True(t, cache.WaitForCacheSync(stop, sc.gameServerSynced)) sc.gsWaitForSync.Done() result, err := sc.GetGameServer(context.Background(), &sdk.Empty{}) - assert.Nil(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Equal(t, fixture.ObjectMeta.Name, result.ObjectMeta.Name) assert.Equal(t, fixture.ObjectMeta.Namespace, result.ObjectMeta.Namespace) assert.Equal(t, string(fixture.Status.State), result.Status.State) @@ -650,7 +663,9 @@ func TestSDKServerWatchGameServer(t *testing.T) { t.Parallel() m := agtesting.NewMocks() sc, err := defaultSidecar(m) - assert.Nil(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Empty(t, sc.connectedStreams) stream := newGameServerMockStream() @@ -686,13 +701,13 @@ func TestSDKServerWatchGameServerFeatureSDKWatchSendOnExecute(t *testing.T) { m.AgonesClient.AddWatchReactor("gameservers", k8stesting.DefaultWatchReactor(fakeWatch, nil)) err := agruntime.ParseFeatures(string(agruntime.FeatureSDKWatchSendOnExecute) + "=true") - if !assert.NoError(t, err) { - t.Fatal("Can not parse FeatureSDKWatchSendOnExecute") + if err != nil { + assert.FailNow(t, err.Error()) } sc, err := defaultSidecar(m) - if !assert.NoError(t, err) { - t.Fatal("Can not create sidecar") + if err != nil { + assert.FailNow(t, err.Error()) } assert.Empty(t, sc.connectedStreams) @@ -747,7 +762,9 @@ func TestSDKServerSendGameServerUpdate(t *testing.T) { t.Parallel() m := agtesting.NewMocks() sc, err := defaultSidecar(m) - assert.Nil(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Empty(t, sc.connectedStreams) stop := make(chan struct{}) @@ -843,7 +860,9 @@ func TestSDKServerReserveTimeoutOnRun(t *testing.T) { }) sc, err := defaultSidecar(m) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } stop := make(chan struct{}) sc.informerFactory.Start(stop) assert.True(t, cache.WaitForCacheSync(stop, sc.gameServerSynced)) @@ -993,14 +1012,18 @@ func TestSDKServerPlayerCapacity(t *testing.T) { defer agruntime.FeatureTestMutex.Unlock() err := agruntime.ParseFeatures(string(agruntime.FeaturePlayerTracking) + "=true") - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } m := agtesting.NewMocks() stop := make(chan struct{}) defer close(stop) sc, err := defaultSidecar(m) - assert.Nil(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } m.AgonesClient.AddReactor("list", "gameservers", func(action k8stesting.Action) (bool, runtime.Object, error) { gs := agonesv1.GameServer{ @@ -1050,7 +1073,9 @@ func TestSDKServerPlayerCapacity(t *testing.T) { assert.NoError(t, err) count, err := sc.GetPlayerCapacity(context.Background(), &alpha.Empty{}) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Equal(t, int64(20), count.Count) // on an update, confirm that the update hits the K8s api @@ -1077,7 +1102,9 @@ func TestSDKServerPlayerConnectAndDisconnect(t *testing.T) { defer close(stop) sc, err := defaultSidecar(m) - assert.Nil(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } capacity := int64(3) m.AgonesClient.AddReactor("list", "gameservers", func(action k8stesting.Action) (bool, runtime.Object, error) { @@ -1124,14 +1151,21 @@ func TestSDKServerPlayerConnectAndDisconnect(t *testing.T) { assert.NoError(t, err) count, err := sc.GetPlayerCount(context.Background(), e) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Equal(t, int64(0), count.Count) list, err := sc.GetConnectedPlayers(context.Background(), e) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Empty(t, list.List) ok, err := sc.IsPlayerConnected(context.Background(), &alpha.PlayerID{PlayerID: "1"}) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.False(t, ok.Bool, "no player connected yet") // sdk value should always be correct, even if we send more than one update per second. @@ -1139,19 +1173,27 @@ func TestSDKServerPlayerConnectAndDisconnect(t *testing.T) { token := strconv.FormatInt(i, 10) id := &alpha.PlayerID{PlayerID: token} ok, err := sc.PlayerConnect(context.Background(), id) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.True(t, ok.Bool, "Player "+token+" should not yet be connected") ok, err = sc.IsPlayerConnected(context.Background(), id) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.True(t, ok.Bool, "Player "+token+" should be connected") } count, err = sc.GetPlayerCount(context.Background(), e) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Equal(t, capacity, count.Count) list, err = sc.GetConnectedPlayers(context.Background(), e) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Equal(t, []string{"0", "1", "2"}, list.List) // on an update, confirm that the update hits the K8s api, only once @@ -1182,19 +1224,27 @@ func TestSDKServerPlayerConnectAndDisconnect(t *testing.T) { token := strconv.FormatInt(i, 10) id := &alpha.PlayerID{PlayerID: token} ok, err := sc.PlayerDisconnect(context.Background(), id) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Truef(t, ok.Bool, "Player %s should be disconnected", token) ok, err = sc.IsPlayerConnected(context.Background(), id) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Falsef(t, ok.Bool, "Player %s should be connected", token) } count, err = sc.GetPlayerCount(context.Background(), e) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Equal(t, int64(1), count.Count) list, err = sc.GetConnectedPlayers(context.Background(), e) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Equal(t, []string{"2"}, list.List) // on an update, confirm that the update hits the K8s api, only once @@ -1216,31 +1266,43 @@ func TestSDKServerPlayerConnectAndDisconnect(t *testing.T) { // last player is still there ok, err = sc.IsPlayerConnected(context.Background(), &alpha.PlayerID{PlayerID: "2"}) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.True(t, ok.Bool, "Player 2 should be connected") // finally, check idempotency of connect and disconnect id := &alpha.PlayerID{PlayerID: "2"} // only one left behind ok, err = sc.PlayerConnect(context.Background(), id) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.False(t, ok.Bool, "Player 2 should already be connected") count, err = sc.GetPlayerCount(context.Background(), e) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Equal(t, int64(1), count.Count) // no longer there. id.PlayerID = "0" ok, err = sc.PlayerDisconnect(context.Background(), id) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.False(t, ok.Bool, "Player 2 should already be disconnected") count, err = sc.GetPlayerCount(context.Background(), e) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Equal(t, int64(1), count.Count) agtesting.AssertNoEvent(t, m.FakeRecorder.Events) list, err = sc.GetConnectedPlayers(context.Background(), e) - assert.NoError(t, err) + if err != nil { + assert.FailNow(t, err.Error()) + } assert.Equal(t, []string{"2"}, list.List) }