Skip to content

Commit ba1eb00

Browse files
committed
Update NetworkShowHideTests to work with cmb service
1 parent 3ce47d2 commit ba1eb00

File tree

2 files changed

+42
-15
lines changed

2 files changed

+42
-15
lines changed

com.unity.netcode.gameobjects/Runtime/NetworkVariable/NetworkVariablePermission.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ namespace Unity.Netcode
33
/// <summary>
44
/// The permission types for reading a var
55
/// </summary>
6+
/// <remarks>
7+
/// Only relevant when using the client/server network topology.
8+
/// In distributed authority mode everyone can always read.
9+
/// </remarks>
610
public enum NetworkVariableReadPermission
711
{
812
/// <summary>

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

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,27 @@ public void SomeRandomClientRPC()
113113
ClientIdsRpcCalledOn?.Add(NetworkManager.LocalClientId);
114114
}
115115

116+
[Rpc(SendTo.Everyone)]
117+
public void DistributedAuthorityRPC()
118+
{
119+
if (!Silent)
120+
{
121+
Debug.Log($"RPC called {NetworkManager.LocalClientId}");
122+
}
123+
ClientIdsRpcCalledOn?.Add(NetworkManager.LocalClientId);
124+
}
125+
116126
public void TriggerRpc()
117127
{
118-
SomeRandomClientRPC();
128+
Debug.Log("triggering RPC");
129+
if (NetworkManager.CMBServiceConnection)
130+
{
131+
DistributedAuthorityRPC();
132+
}
133+
else
134+
{
135+
SomeRandomClientRPC();
136+
}
119137
}
120138
}
121139

@@ -125,12 +143,6 @@ internal class NetworkShowHideTests : NetcodeIntegrationTest
125143
{
126144
protected override int NumberOfClients => 4;
127145

128-
// TODO: [CmbServiceTests] https://jira.unity3d.com/browse/MTTB-1392
129-
protected override bool UseCMBService()
130-
{
131-
return false;
132-
}
133-
134146
private ulong m_ClientId0;
135147
private GameObject m_PrefabToSpawn;
136148
private GameObject m_PrefabSpawnWithoutObservers;
@@ -580,11 +592,15 @@ public IEnumerator NetworkHideChangeOwnershipNotHidden()
580592
var firstClient = GetNonAuthorityNetworkManager(0);
581593
var secondClient = GetNonAuthorityNetworkManager(1);
582594

595+
ShowHideObject.ValueAfterOwnershipChange = -1;
583596
ShowHideObject.ClientTargetedNetworkObjects.Clear();
584597
ShowHideObject.ObjectsPerClientId.Clear();
585598
ShowHideObject.ClientIdToTarget = secondClient.LocalClientId;
586599
ShowHideObject.Silent = true;
587600

601+
// only check for value change on one specific client
602+
ShowHideObject.NetworkManagerOfInterest = firstClient;
603+
588604
var spawnedObject1 = SpawnObject(m_PrefabToSpawn, authority);
589605
m_NetSpawnedObject1 = spawnedObject1.GetComponent<NetworkObject>();
590606

@@ -597,11 +613,20 @@ public IEnumerator NetworkHideChangeOwnershipNotHidden()
597613
// wait for three ticks
598614
yield return WaitForTicks(authority, 3);
599615

616+
if (!m_DistributedAuthority)
617+
{
618+
// Client/Server ClientIdToTarget should not see any value change
619+
Assert.That(ShowHideObject.ValueAfterOwnershipChange, Is.EqualTo(-1));
620+
}
621+
else
622+
{
623+
// Distributed Authority mode everyone can always read so the value change should already have happened
624+
Assert.That(ShowHideObject.ValueAfterOwnershipChange, Is.EqualTo(1));
625+
}
626+
600627
// check we'll actually be changing owners
601628
Assert.False(ShowHideObject.ClientTargetedNetworkObjects[0].OwnerClientId == firstClient.LocalClientId);
602629

603-
// only check for value change on one specific client
604-
ShowHideObject.NetworkManagerOfInterest = firstClient;
605630

606631
// change ownership
607632
m_NetSpawnedObject1.ChangeOwnership(firstClient.LocalClientId);
@@ -731,10 +756,8 @@ public IEnumerator NetworkShowHideAroundListModify()
731756
m_NetSpawnedObject1 = spawnedObject1.GetComponent<NetworkObject>();
732757

733758
// wait for host to have spawned and gained ownership
734-
while (ShowHideObject.GainOwnershipCount == 0)
735-
{
736-
yield return new WaitForSeconds(0.0f);
737-
}
759+
yield return WaitForConditionOrTimeOut(() => m_NetSpawnedObject1.IsSpawned && m_NetSpawnedObject1.OwnerClientId == authority.LocalClientId);
760+
AssertOnTimeout($"Timed out waiting for {m_NetSpawnedObject1.name} to spawn");
738761

739762
for (int i = 0; i < 4; i++)
740763
{
@@ -767,8 +790,8 @@ public IEnumerator NetworkShowHideAroundListModify()
767790

768791
}
769792

770-
Compare(ShowHideObject.ObjectsPerClientId[0].MyList, ShowHideObject.ObjectsPerClientId[1].MyList);
771-
Compare(ShowHideObject.ObjectsPerClientId[0].MyList, ShowHideObject.ObjectsPerClientId[2].MyList);
793+
Compare(ShowHideObject.ObjectsPerClientId[authority.LocalClientId].MyList, ShowHideObject.ObjectsPerClientId[firstClient.LocalClientId].MyList);
794+
Compare(ShowHideObject.ObjectsPerClientId[authority.LocalClientId].MyList, ShowHideObject.ObjectsPerClientId[secondClient.LocalClientId].MyList);
772795
}
773796
}
774797

0 commit comments

Comments
 (0)