Skip to content

Commit 890a1e1

Browse files
fix: Fixes for Deferred Messaging Tests [MTT-5102] (#2319) (Cherry-picked from release/1.2.0) (#2338)
Co-authored-by: Noel Stephens <noel.stephens@unity3d.com>
1 parent 4bcacf1 commit 890a1e1

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

com.unity.netcode.gameobjects/TestHelpers/Runtime/MessageHooks.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void OnBeforeReceiveMessage(ulong senderId, Type messageType, int message
4444

4545
public void OnAfterReceiveMessage(ulong senderId, Type messageType, int messageSizeBytes)
4646
{
47-
if (!CurrentMessageHasTriggerdAHook && IsWaiting && (HandleCheck == null || HandleCheck.Invoke(messageType)))
47+
if (!CurrentMessageHasTriggerdAHook && IsWaiting && ReceiptCheck != null && ReceiptCheck.Invoke(messageType))
4848
{
4949
IsWaiting = false;
5050
CurrentMessageHasTriggerdAHook = true;
@@ -92,7 +92,7 @@ public void OnBeforeHandleMessage<T>(ref T message, ref NetworkContext context)
9292

9393
public void OnAfterHandleMessage<T>(ref T message, ref NetworkContext context) where T : INetworkMessage
9494
{
95-
if (!CurrentMessageHasTriggerdAHook && IsWaiting && (HandleCheck == null || HandleCheck.Invoke(message)))
95+
if (!CurrentMessageHasTriggerdAHook && IsWaiting && HandleCheck != null && HandleCheck.Invoke(message))
9696
{
9797
IsWaiting = false;
9898
CurrentMessageHasTriggerdAHook = true;

com.unity.netcode.gameobjects/TestHelpers/Runtime/NetcodeIntegrationTest.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,11 @@ protected IEnumerator CreateAndStartNewClient()
340340

341341
NetcodeIntegrationTestHelpers.StartOneClient(networkManager);
342342

343+
if (LogAllMessages)
344+
{
345+
networkManager.MessagingSystem.Hook(new DebugNetworkHooks());
346+
}
347+
343348
AddRemoveNetworkManager(networkManager, true);
344349

345350
OnNewClientStarted(networkManager);

com.unity.netcode.gameobjects/Tests/Runtime/DeferredMessagingTests.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -644,6 +644,8 @@ bool HaveAllClientsSpawned()
644644
}
645645
}
646646

647+
protected override bool LogAllMessages => true;
648+
647649
[UnityTest]
648650
public IEnumerator WhenMultipleSpawnTriggeredMessagesAreDeferred_TheyAreAllProcessedOnSpawn()
649651
{
@@ -663,17 +665,17 @@ public IEnumerator WhenMultipleSpawnTriggeredMessagesAreDeferred_TheyAreAllProce
663665

664666
serverObject.GetComponent<NetworkObject>().ChangeOwnership(m_ClientNetworkManagers[0].LocalClientId);
665667

666-
yield return WaitForAllClientsToReceive<ChangeOwnershipMessage>();
668+
yield return WaitForAllClientsToReceive<ChangeOwnershipMessage, NetworkVariableDeltaMessage>();
667669

668670
foreach (var client in m_ClientNetworkManagers)
669671
{
670672
var manager = (TestDeferredMessageManager)client.DeferredMessageManager;
671673
Assert.IsTrue(manager.DeferMessageCalled);
672674
Assert.IsFalse(manager.ProcessTriggersCalled);
673675

674-
Assert.AreEqual(3, manager.DeferredMessageCountTotal());
675-
Assert.AreEqual(3, manager.DeferredMessageCountForType(IDeferredMessageManager.TriggerType.OnSpawn));
676-
Assert.AreEqual(3, manager.DeferredMessageCountForKey(IDeferredMessageManager.TriggerType.OnSpawn, serverObject.GetComponent<NetworkObject>().NetworkObjectId));
676+
Assert.AreEqual(4, manager.DeferredMessageCountTotal());
677+
Assert.AreEqual(4, manager.DeferredMessageCountForType(IDeferredMessageManager.TriggerType.OnSpawn));
678+
Assert.AreEqual(4, manager.DeferredMessageCountForKey(IDeferredMessageManager.TriggerType.OnSpawn, serverObject.GetComponent<NetworkObject>().NetworkObjectId));
677679
Assert.AreEqual(0, manager.DeferredMessageCountForType(IDeferredMessageManager.TriggerType.OnAddPrefab));
678680
AddPrefabsToClient(client);
679681
}
@@ -807,10 +809,6 @@ public IEnumerator WhenSpawnTriggeredMessagesAreDeferredBeforeThePrefabIsAdded_A
807809

808810
yield return WaitForAllClientsToReceive<ChangeOwnershipMessage, NetworkVariableDeltaMessage>();
809811

810-
// wait three ticks
811-
yield return NetcodeIntegrationTestHelpers.WaitForTicks(m_ServerNetworkManager, 3);
812-
yield return NetcodeIntegrationTestHelpers.WaitForTicks(m_ClientNetworkManagers[0], 3);
813-
814812
// Validate messages are deferred and pending
815813
foreach (var client in m_ClientNetworkManagers)
816814
{

0 commit comments

Comments
 (0)