Skip to content

Commit 66fdf96

Browse files
test
Adding some debug information to NetworkShowHideTests. Replacing m_ServerNetworkManager in OwnerModifiedTests with GetAuthorityNetworkManager() to become CMB service testing compatible.
1 parent 95a020e commit 66fdf96

File tree

2 files changed

+37
-21
lines changed

2 files changed

+37
-21
lines changed

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

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ public static NetworkObject GetNetworkObjectById(ulong networkObjectId)
3131

3232
public override void OnNetworkSpawn()
3333
{
34+
MyNetworkVariable.OnValueChanged += Changed;
35+
MyOwnerReadNetworkVariable.OnValueChanged += OwnerReadChanged;
3436
if (NetworkManager.LocalClientId == ClientIdToTarget)
3537
{
3638
ClientTargetedNetworkObjects.Add(this);
@@ -42,7 +44,7 @@ public override void OnNetworkSpawn()
4244
}
4345
else
4446
{
45-
Debug.Assert(MyListSetOnSpawn.Count == 1);
47+
Debug.Assert(MyListSetOnSpawn.Count == 1, $"[Session Authority][Client-{NetworkManager.LocalClientId}][{name}] Count = {MyListSetOnSpawn.Count} when expecting only 1!");
4648
Debug.Assert(MyListSetOnSpawn[0] == 45);
4749
}
4850

@@ -53,34 +55,23 @@ public override void OnNetworkSpawn()
5355

5456
public override void OnNetworkDespawn()
5557
{
58+
MyNetworkVariable.OnValueChanged -= Changed;
59+
MyOwnerReadNetworkVariable.OnValueChanged -= OwnerReadChanged;
5660
if (ClientTargetedNetworkObjects.Contains(this))
5761
{
5862
ClientTargetedNetworkObjects.Remove(this);
5963
}
6064
base.OnNetworkDespawn();
6165
}
6266

63-
public NetworkVariable<int> MyNetworkVariable;
64-
public NetworkList<int> MyListSetOnSpawn;
65-
public NetworkVariable<int> MyOwnerReadNetworkVariable;
66-
public NetworkList<int> MyList;
67+
public NetworkVariable<int> MyNetworkVariable = new NetworkVariable<int>();
68+
public NetworkList<int> MyListSetOnSpawn = new NetworkList<int>();
69+
public NetworkVariable<int> MyOwnerReadNetworkVariable = new NetworkVariable<int>(readPerm: NetworkVariableReadPermission.Owner);
70+
public NetworkList<int> MyList = new NetworkList<int>();
6771
public static NetworkManager NetworkManagerOfInterest;
6872

6973
internal static int GainOwnershipCount = 0;
7074

71-
private void Awake()
72-
{
73-
// Debug.Log($"Awake {NetworkManager.LocalClientId}");
74-
MyNetworkVariable = new NetworkVariable<int>();
75-
MyNetworkVariable.OnValueChanged += Changed;
76-
77-
MyListSetOnSpawn = new NetworkList<int>();
78-
MyList = new NetworkList<int>();
79-
80-
MyOwnerReadNetworkVariable = new NetworkVariable<int>(readPerm: NetworkVariableReadPermission.Owner);
81-
MyOwnerReadNetworkVariable.OnValueChanged += OwnerReadChanged;
82-
}
83-
8475
public override void OnGainedOwnership()
8576
{
8677
GainOwnershipCount++;
@@ -532,6 +523,7 @@ public IEnumerator NetworkHideChangeOwnership()
532523
AssertOnTimeout($"NetworkObject is still visible to Client-{m_ClientWithoutVisibility} or other clients think it is still visible to Client-{m_ClientWithoutVisibility}:\n {m_ErrorLog}");
533524

534525
yield return WaitForConditionOrTimeOut(() => ShowHideObject.ClientTargetedNetworkObjects.Count == 0);
526+
AssertOnTimeout($"Timed out waiting for ShowHideObject.ClientTargetedNetworkObjects to have a count of 0 but was {ShowHideObject.ClientTargetedNetworkObjects.Count}!");
535527

536528
foreach (var client in m_ClientNetworkManagers)
537529
{
@@ -564,8 +556,31 @@ public IEnumerator NetworkHideChangeOwnership()
564556
}
565557

566558
yield return WaitForConditionOrTimeOut(() => ShowHideObject.ClientTargetedNetworkObjects.Count == 1);
559+
AssertOnTimeout($"Timed out waiting for ShowHideObject.ClientTargetedNetworkObjects to have a count of 1 but was {ShowHideObject.ClientTargetedNetworkObjects.Count}!");
560+
561+
m_ClientIdToCheck = firstClient.LocalClientId;
562+
yield return WaitForConditionOrTimeOut(CheckIsClientOwner);
563+
AssertOnTimeout($"Timed out waiting for client owner check!");
564+
}
567565

568-
Assert.True(ShowHideObject.ClientTargetedNetworkObjects[0].OwnerClientId == firstClient.LocalClientId);
566+
private ulong m_ClientIdToCheck;
567+
private bool CheckIsClientOwner(StringBuilder errorLog)
568+
{
569+
if (ShowHideObject.ClientTargetedNetworkObjects[0].OwnerClientId != m_ClientIdToCheck)
570+
{
571+
errorLog.AppendLine($"[CheckIsClientOwner][Index: 0][{ShowHideObject.ClientTargetedNetworkObjects[0].name}] OwnerClientId is {ShowHideObject.ClientTargetedNetworkObjects[0].OwnerClientId} when it was expected to be {m_ClientIdToCheck}!");
572+
if (ShowHideObject.ClientTargetedNetworkObjects.Count > 1)
573+
{
574+
for (int i = 1; i < ShowHideObject.ClientTargetedNetworkObjects.Count; i++)
575+
{
576+
var target = ShowHideObject.ClientTargetedNetworkObjects[i];
577+
errorLog.AppendLine($"[CheckIsClientOwner][Index: {i}][{target.name}] OwnerClientId is {target.OwnerClientId}.");
578+
}
579+
}
580+
return false;
581+
}
582+
583+
return true;
569584
}
570585

571586
private bool AllClientsSpawnedObject1()

com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariable/OwnerModifiedTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ protected override void OnNewClientStartedAndConnected(NetworkManager networkMan
132132
[UnityTest]
133133
public IEnumerator VerifyDoesNotRepeatOnSomeClients()
134134
{
135+
var authority = GetAuthorityNetworkManager();
135136
OwnerModifiedObject.EnableVerbose = m_EnableVerboseDebug;
136137
// We use this to assure we are the "last client" connected.
137138
yield return CreateAndStartNewClient();
@@ -144,10 +145,10 @@ public IEnumerator VerifyDoesNotRepeatOnSomeClients()
144145
ownerModLastClient.NetworkUpdateStageToCheck = (NetworkUpdateStage)updateLoopType;
145146
VerboseDebug($"Testing Update Stage: {ownerModLastClient.NetworkUpdateStageToCheck}");
146147
ownerModLastClient.AddValues = true;
147-
yield return WaitForTicks(m_ServerNetworkManager, 5);
148+
yield return WaitForTicks(authority, 5);
148149
}
149150

150-
yield return WaitForTicks(m_ServerNetworkManager, 5);
151+
yield return WaitForTicks(authority, 5);
151152

152153
// We'll have at least one update per stage per client, if all goes well.
153154
Assert.True(OwnerModifiedObject.Updates > 20);

0 commit comments

Comments
 (0)