Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -757,6 +757,7 @@ protected IEnumerator StartClient(NetworkManager networkManager)
{
// Wait for the new client to connect
yield return WaitForClientsConnectedOrTimeOut();
AssertOnTimeout($"{nameof(StartClient)} timed out waiting for all clients to be connected!\n {m_InternalErrorLog}");

OnNewClientStartedAndConnected(networkManager);
if (s_GlobalTimeoutHelper.TimedOut)
Expand Down Expand Up @@ -839,6 +840,7 @@ protected void CreateAndStartNewClientWithTimeTravel()

// Wait for the new client to connect
var connected = WaitForClientsConnectedOrTimeOutWithTimeTravel();
AssertOnTimeout($"{nameof(CreateAndStartNewClientWithTimeTravel)} timed out waiting for all clients to be connected!\n {m_InternalErrorLog}");

OnNewClientStartedAndConnected(networkManager);
if (!connected)
Expand Down Expand Up @@ -1342,6 +1344,13 @@ protected IEnumerator CoroutineShutdownAndCleanUp()
{
VerboseDebug($"Entering {nameof(ShutdownAndCleanUp)}");
// Shutdown and clean up both of our NetworkManager instances

foreach (var networkManager in m_NetworkManagers)
{
networkManager.Shutdown();
}
yield return k_DefaultTickRate;

try
{
DeRegisterSceneManagerHandler();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ internal class NetworkObjectSpawnManyObjectsTests : NetcodeIntegrationTest

public NetworkObjectSpawnManyObjectsTests(NetworkTopologyTypes networkTopologyType) : base(networkTopologyType) { }
// Using this component assures we will know precisely how many prefabs were spawned on the client
internal class SpawnObjecTrackingComponent : NetworkBehaviour
internal class SpawnObjectTrackingComponent : NetworkBehaviour
{
public static int SpawnedObjects;
public override void OnNetworkSpawn()
{
if (!IsServer)
if (!IsOwner)
{
SpawnedObjects++;
}
Expand All @@ -32,13 +32,13 @@ public override void OnNetworkSpawn()

protected override void OnServerAndClientsCreated()
{
SpawnObjecTrackingComponent.SpawnedObjects = 0;
SpawnObjectTrackingComponent.SpawnedObjects = 0;
// create prefab
var gameObject = new GameObject("TestObject");
var networkObject = gameObject.AddComponent<NetworkObject>();
NetcodeIntegrationTestHelpers.MakeNetworkObjectTestPrefab(networkObject);
networkObject.IsSceneObject = false;
gameObject.AddComponent<SpawnObjecTrackingComponent>();
gameObject.AddComponent<SpawnObjectTrackingComponent>();

m_PrefabToSpawn = new NetworkPrefab() { Prefab = gameObject };

Expand All @@ -57,20 +57,17 @@ public IEnumerator WhenManyObjectsAreSpawnedAtOnce_AllAreReceived()
{
NetworkObject serverObject = Object.Instantiate(m_PrefabToSpawn.Prefab).GetComponent<NetworkObject>();
serverObject.NetworkManagerOwner = authority;
serverObject.SpawnWithObservers = true;
serverObject.Spawn();
}

var timeSpawned = Time.realtimeSinceStartup - timeStarted;
// Provide plenty of time to spawn all 1500 objects in case the CI VM is running slow
var timeoutHelper = new TimeoutHelper(30);
// ensure all objects are replicated
yield return WaitForConditionOrTimeOut(() => SpawnObjecTrackingComponent.SpawnedObjects == k_SpawnedObjects, timeoutHelper);
yield return WaitForConditionOrTimeOut(() => SpawnObjectTrackingComponent.SpawnedObjects == k_SpawnedObjects, timeoutHelper);

AssertOnTimeout($"Timed out waiting for the client to spawn {k_SpawnedObjects} objects! Time to spawn: {timeSpawned} | Time to timeout: {timeStarted - Time.realtimeSinceStartup}", timeoutHelper);

// Provide one full tick for all messages to finish being processed.
// DANGO-TODO: Determine if this is only when testing against Rust server (i.e. messages still pending and clients shutting down before they are dequeued)
yield return s_DefaultWaitForTick;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -473,8 +473,8 @@ private void InitializeServerAndClients(HostOrServer useHost)
m_PlayerPrefab.AddComponent<ClassHavingNetworkBehaviour2>();
m_PlayerPrefab.AddComponent<StructHavingNetworkBehaviour>();

m_DistributedAuthority = useHost == HostOrServer.DAHost;
m_NetworkTopologyType = m_DistributedAuthority ? NetworkTopologyTypes.DistributedAuthority : NetworkTopologyTypes.ClientServer;
m_UseHost = useHost == HostOrServer.DAHost || useHost == HostOrServer.Host;
m_NetworkTopologyType = useHost == HostOrServer.DAHost ? NetworkTopologyTypes.DistributedAuthority : NetworkTopologyTypes.ClientServer;

m_ServerNetworkManager.NetworkConfig.EnsureNetworkVariableLengthSafety = m_EnsureLengthSafety;
m_ServerNetworkManager.NetworkConfig.PlayerPrefab = m_PlayerPrefab;
Expand Down