Skip to content

Commit 1324963

Browse files
committed
All tests passing
1 parent 07a51ff commit 1324963

File tree

10 files changed

+37
-122
lines changed

10 files changed

+37
-122
lines changed

com.unity.netcode.gameobjects/Editor/Analytics/NetcodeAnalytics.cs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,21 @@ internal class NetcodeAnalytics : NetworkManager.NetcodeAnalytics
2929
/// Determines if we are running an integration test of the analytics integration
3030
/// </summary>
3131
internal static bool IsIntegrationTest = false;
32+
internal static bool EnableIntegrationTestAnalytics = false;
3233
#if ENABLE_NGO_ANALYTICS_LOGGING
3334
internal static bool EnableLogging = true;
3435
#else
3536
internal static bool EnableLogging = false;
3637
#endif
3738

38-
// Preserves the analytics enabled flag
39-
private bool m_OriginalAnalyticsEnabled;
40-
4139
internal override void OnOneTimeSetup()
4240
{
43-
m_OriginalAnalyticsEnabled = EditorAnalytics.enabled;
44-
// By default, we always disable analytics during integration testing
45-
EditorAnalytics.enabled = false;
41+
IsIntegrationTest = true;
4642
}
4743

4844
internal override void OnOneTimeTearDown()
4945
{
50-
// Reset analytics to the original value
51-
EditorAnalytics.enabled = m_OriginalAnalyticsEnabled;
46+
IsIntegrationTest = false;
5247
}
5348

5449
internal List<NetworkManagerAnalyticsHandler> AnalyticsTestResults = new List<NetworkManagerAnalyticsHandler>();
@@ -80,15 +75,19 @@ internal override void ModeChanged(PlayModeStateChange playModeState, NetworkMan
8075
}
8176
}
8277

78+
private bool ShouldLogAnalytics()
79+
{
80+
return (IsIntegrationTest && EnableIntegrationTestAnalytics) || (!IsIntegrationTest && EditorAnalytics.enabled);
81+
}
82+
8383
/// <summary>
8484
/// Editor Only
8585
/// Invoked when the session is started.
8686
/// </summary>
8787
/// <param name="networkManager">The <see cref="NetworkManager"/> instance when the session is started.</param>
8888
internal override void SessionStarted(NetworkManager networkManager)
8989
{
90-
// If analytics is disabled and we are not running an integration test, then exit early.
91-
if (!EditorAnalytics.enabled && !IsIntegrationTest)
90+
if (!ShouldLogAnalytics())
9291
{
9392
return;
9493
}
@@ -112,7 +111,7 @@ internal override void SessionStarted(NetworkManager networkManager)
112111
internal override void SessionStopped(NetworkManager networkManager)
113112
{
114113
// If analytics is disabled and we are not running an integration test or there are no sessions, then exit early.
115-
if ((!EditorAnalytics.enabled && !IsIntegrationTest) || RecentSessions.Count == 0)
114+
if (!ShouldLogAnalytics() || RecentSessions.Count == 0)
116115
{
117116
return;
118117
}
@@ -135,7 +134,7 @@ internal override void SessionStopped(NetworkManager networkManager)
135134
private void UpdateAnalytics(NetworkManager networkManager)
136135
{
137136
// If analytics is disabled and we are not running an integration test or there are no sessions to process, then exit early.
138-
if ((!EditorAnalytics.enabled && !IsIntegrationTest) || RecentSessions.Count == 0)
137+
if (!ShouldLogAnalytics() || RecentSessions.Count == 0)
139138
{
140139
return;
141140
}

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

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,10 @@ protected NetworkManager GetNonAuthorityNetworkManager()
180180
protected bool m_DistributedAuthority;
181181
protected NetworkTopologyTypes m_NetworkTopologyType = NetworkTopologyTypes.ClientServer;
182182

183+
/// <summary>
184+
/// Indicates whether the currently running tests are targeting the hosted CMB Service
185+
/// </summary>
186+
/// <remarks>Can only be true if <see cref="UseCMBService"/> returns true.</remarks>
183187
protected bool m_UseCmbService;
184188

185189
/// <summary>
@@ -193,7 +197,6 @@ protected virtual bool UseCMBService()
193197
return true;
194198
#else
195199
var useCmbService = Environment.GetEnvironmentVariable("USE_CMB_SERVICE") ?? "unset";
196-
Debug.Log($"Using CMB service: {useCmbService}");
197200
return useCmbService.ToLower() == "true";
198201
#endif
199202
}
@@ -398,6 +401,7 @@ public IEnumerator SetUp()
398401
{
399402
VerboseDebugLog.Clear();
400403
VerboseDebug($"Entering {nameof(SetUp)}");
404+
m_NumberOfClients = NumberOfClients;
401405
NetcodeLogAssert = new NetcodeLogAssert();
402406
if (m_EnableTimeTravel)
403407
{
@@ -417,7 +421,6 @@ public IEnumerator SetUp()
417421
if (m_SetupIsACoroutine)
418422
{
419423
yield return NetcodeIntegrationTestHelpers.WaitBetweenCmbServiceTests(m_UseCmbService);
420-
421424
yield return OnSetup();
422425
}
423426
else
@@ -514,6 +517,7 @@ private void AddRemoveNetworkManager(NetworkManager networkManager, bool addNetw
514517
}
515518

516519
m_ClientNetworkManagers = clientNetworkManagersList.ToArray();
520+
m_NumberOfClients = clientNetworkManagersList.Count;
517521

518522
if (!m_UseCmbService)
519523
{
@@ -948,6 +952,7 @@ protected IEnumerator StartServerAndClients()
948952
// When using the CMBService, we don't have a server, so get the appropriate authority network manager
949953
var authorityManager = GetAuthorityNetworkManager();
950954

955+
VerboseDebug($"Starting with useCmbService: {m_UseCmbService}");
951956
if (!NetcodeIntegrationTestHelpers.Start(m_UseHost, !m_UseCmbService, m_ServerNetworkManager, m_ClientNetworkManagers))
952957
{
953958
Debug.LogError("Failed to start instances");
@@ -1005,7 +1010,7 @@ protected IEnumerator StartServerAndClients()
10051010
}
10061011
if (m_DistributedAuthority)
10071012
{
1008-
foreach (var networkManager in m_ClientNetworkManagers)
1013+
foreach (var networkManager in m_NetworkManagers)
10091014
{
10101015
yield return WaitForConditionOrTimeOut(() => AllPlayerObjectClonesSpawned(networkManager));
10111016
AssertOnTimeout($"{nameof(CreateAndStartNewClient)} timed out waiting for all sessions to spawn Client-{networkManager.LocalClientId}'s player object!\n {m_InternalErrorLog}");
@@ -1099,11 +1104,8 @@ protected void StartServerAndClientsWithTimeTravel()
10991104

11001105
foreach (var networkManager in m_NetworkManagers)
11011106
{
1102-
if (networkManager.DistributedAuthorityMode)
1103-
{
1104-
WaitForConditionOrTimeOutWithTimeTravel(() => AllPlayerObjectClonesSpawned(m_ServerNetworkManager));
1105-
AssertOnTimeout($"{nameof(CreateAndStartNewClient)} timed out waiting for all sessions to spawn Client-{networkManager.LocalClientId}'s player object!");
1106-
}
1107+
WaitForConditionOrTimeOutWithTimeTravel(() => AllPlayerObjectClonesSpawned(m_ServerNetworkManager));
1108+
AssertOnTimeout($"{nameof(CreateAndStartNewClient)} timed out waiting for all sessions to spawn Client-{networkManager.LocalClientId}'s player object!");
11071109
}
11081110
}
11091111

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@ private static void AddUnityTransport(NetworkManager networkManager, bool useCmb
210210
{
211211
unityTransport.ConnectionData.Address = k_TransportHost;
212212
unityTransport.ConnectionData.Port = k_TransportPort;
213-
Debug.Log($"Using CmbService: {k_TransportHost}:{k_TransportPort}");
214213
}
215214

216215
// Set the NetworkConfig
@@ -1023,13 +1022,13 @@ private static IEnumerator ExecuteWaitForHook(MessageHandleCheckWithResult check
10231022
/// Waits for a second if the previous and current tests are using the hosted CMB Service.
10241023
/// This is necessary as the CMB Service does not restart fast enough when running multiple tests.
10251024
/// </summary>
1026-
/// <param name="isCmbServiceTest"></param>
1025+
/// <param name="isCmbServiceTest">Whether the currently running test is running against a hosted CMB service instance</param>
10271026
/// <returns>An <see cref="IEnumerator"/> that will wait for a second</returns>
10281027
public static IEnumerator WaitBetweenCmbServiceTests(bool isCmbServiceTest)
10291028
{
10301029
if (isCmbServiceTest && s_PreviousWasCmbServiceTest)
10311030
{
1032-
Debug.Log("Waiting for CMB service to be shut down during test setup.");
1031+
// TODO: [CmbServiceTests] investigate whether we can reduce this timeout
10331032
yield return new WaitForSeconds(1f);
10341033
}
10351034

com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/ExtendedNetworkShowAndHideTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class ExtendedNetworkShowAndHideTests : NetcodeIntegrationTest
1919
private NetworkManager m_SpawnOwner;
2020

2121
// TODO: [CmbServiceTests] Adapt to run with the service (can't control who becomes the session owner, needs a logic rework)
22+
/// <inheritdoc/>
2223
protected override bool UseCMBService()
2324
{
2425
return false;

testproject/Assets/DefaultNetworkPrefabs.asset

Lines changed: 1 addition & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ MonoBehaviour:
1111
m_EditorHideFlags: 0
1212
m_Script: {fileID: 11500000, guid: e651dbb3fbac04af2b8f5abf007ddc23, type: 3}
1313
m_Name: DefaultNetworkPrefabs
14-
m_EditorClassIdentifier:
14+
m_EditorClassIdentifier:
1515
IsDefault: 1
1616
List:
1717
- Override: 0
@@ -224,100 +224,6 @@ MonoBehaviour:
224224
SourcePrefabToOverride: {fileID: 0}
225225
SourceHashToOverride: 0
226226
OverridingTargetPrefab: {fileID: 0}
227-
- Override: 0
228-
Prefab: {fileID: 296612175404815451, guid: 9501b2f26df3884488e1699035fd634b, type: 3}
229-
SourcePrefabToOverride: {fileID: 0}
230-
SourceHashToOverride: 0
231-
OverridingTargetPrefab: {fileID: 0}
232-
- Override: 0
233-
Prefab: {fileID: 771575417923360811, guid: 44d487c39a833b445beef6e9e39a5731, type: 3}
234-
SourcePrefabToOverride: {fileID: 0}
235-
SourceHashToOverride: 0
236-
OverridingTargetPrefab: {fileID: 0}
237-
- Override: 0
238-
Prefab: {fileID: 6307603743893504780, guid: 0a46b240b37c5b74786b1938e8fd2eae,
239-
type: 3}
240-
SourcePrefabToOverride: {fileID: 0}
241-
SourceHashToOverride: 0
242-
OverridingTargetPrefab: {fileID: 0}
243-
- Override: 0
244-
Prefab: {fileID: 5911443254905569495, guid: 67daf9621f0d6d74c9a9bb4f81438061,
245-
type: 3}
246-
SourcePrefabToOverride: {fileID: 0}
247-
SourceHashToOverride: 0
248-
OverridingTargetPrefab: {fileID: 0}
249-
- Override: 0
250-
Prefab: {fileID: 296612175404815451, guid: 280da53b37f0d2546ab4d7b7da446545, type: 3}
251-
SourcePrefabToOverride: {fileID: 0}
252-
SourceHashToOverride: 0
253-
OverridingTargetPrefab: {fileID: 0}
254-
- Override: 0
255-
Prefab: {fileID: 5911443254905569495, guid: 12cead04031f30a4aaae7427341502fa,
256-
type: 3}
257-
SourcePrefabToOverride: {fileID: 0}
258-
SourceHashToOverride: 0
259-
OverridingTargetPrefab: {fileID: 0}
260-
- Override: 0
261-
Prefab: {fileID: 771575417923360811, guid: d7447e326e807754d81428939a14058f, type: 3}
262-
SourcePrefabToOverride: {fileID: 0}
263-
SourceHashToOverride: 0
264-
OverridingTargetPrefab: {fileID: 0}
265-
- Override: 0
266-
Prefab: {fileID: 6994329648695279756, guid: 5c4a10e01b6668147ba4ccda6a584181,
267-
type: 3}
268-
SourcePrefabToOverride: {fileID: 0}
269-
SourceHashToOverride: 0
270-
OverridingTargetPrefab: {fileID: 0}
271-
- Override: 0
272-
Prefab: {fileID: 479369275288778692, guid: 4d47e418fec779e4eb616d66d61c3231, type: 3}
273-
SourcePrefabToOverride: {fileID: 0}
274-
SourceHashToOverride: 0
275-
OverridingTargetPrefab: {fileID: 0}
276-
- Override: 0
277-
Prefab: {fileID: 5911443254905569495, guid: d88eb84e4c4e82b4b81d577a6c8e818e,
278-
type: 3}
279-
SourcePrefabToOverride: {fileID: 0}
280-
SourceHashToOverride: 0
281-
OverridingTargetPrefab: {fileID: 0}
282-
- Override: 0
283-
Prefab: {fileID: 479369275288778692, guid: ce3279d5e4f8e0342acdb2ce118f2be5, type: 3}
284-
SourcePrefabToOverride: {fileID: 0}
285-
SourceHashToOverride: 0
286-
OverridingTargetPrefab: {fileID: 0}
287-
- Override: 0
288-
Prefab: {fileID: 296612175404815451, guid: 61e89146f864ef2478af3da9d7dda1e2, type: 3}
289-
SourcePrefabToOverride: {fileID: 0}
290-
SourceHashToOverride: 0
291-
OverridingTargetPrefab: {fileID: 0}
292-
- Override: 0
293-
Prefab: {fileID: 6994329648695279756, guid: a67d0c2ee5d39fb4f9f0667f244d9e58,
294-
type: 3}
295-
SourcePrefabToOverride: {fileID: 0}
296-
SourceHashToOverride: 0
297-
OverridingTargetPrefab: {fileID: 0}
298-
- Override: 0
299-
Prefab: {fileID: 1923233254652950715, guid: d166e48a59e24924199f3ec3b2bc3b64,
300-
type: 3}
301-
SourcePrefabToOverride: {fileID: 0}
302-
SourceHashToOverride: 0
303-
OverridingTargetPrefab: {fileID: 0}
304-
- Override: 0
305-
Prefab: {fileID: 5507278367988661157, guid: c2db148a1fac379449a31b5430f4c6ac,
306-
type: 3}
307-
SourcePrefabToOverride: {fileID: 0}
308-
SourceHashToOverride: 0
309-
OverridingTargetPrefab: {fileID: 0}
310-
- Override: 0
311-
Prefab: {fileID: 296612175404815451, guid: fda785b5a15c5a94f9f3e93e635827a7, type: 3}
312-
SourcePrefabToOverride: {fileID: 0}
313-
SourceHashToOverride: 0
314-
OverridingTargetPrefab: {fileID: 0}
315-
- Override: 0
316-
Prefab: {fileID: 5911443254905569495, guid: 1e7fa5aea121ba0459459b497c2f03e8,
317-
type: 3}
318-
SourcePrefabToOverride: {fileID: 0}
319-
SourceHashToOverride: 0
320-
OverridingTargetPrefab: {fileID: 0}
321227
- Override: 0
322228
Prefab: {fileID: 8188135024827620138, guid: c000e98bc12da2941a59ec61c260dd6a,
323229
type: 3}

testproject/Assets/Tests/Runtime/AddressablesTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public class AddressablesTests : NetcodeIntegrationTest
2727

2828
public AddressablesTests(HostOrServer hostOrServer)
2929
{
30+
m_EnableVerboseDebug = true;
3031
m_UseHost = hostOrServer == HostOrServer.Host;
3132
}
3233
protected override NetworkManagerInstatiationMode OnSetIntegrationTestMode()

testproject/Assets/Tests/Runtime/AnalyticsTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ internal class AnalyticsTests : NetcodeIntegrationTest
2121

2222
protected override IEnumerator OnSetup()
2323
{
24-
NetcodeAnalytics.IsIntegrationTest = true;
24+
NetcodeAnalytics.EnableIntegrationTestAnalytics = true;
2525
m_NetcodeAnalytics = Unity.Netcode.Editor.NetworkManagerHelper.Singleton.NetcodeAnalytics;
2626
yield return base.OnSetup();
2727
}
2828

2929
protected override IEnumerator OnTearDown()
3030
{
31-
NetcodeAnalytics.IsIntegrationTest = false;
31+
NetcodeAnalytics.EnableIntegrationTestAnalytics = false;
3232
yield return base.OnTearDown();
3333
}
3434

testproject/Assets/Tests/Runtime/Animation/NetworkAnimatorTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -855,8 +855,8 @@ public IEnumerator LateJoinSynchronizationTest()
855855
Assert.True(success, $"Timed out waiting for the late joining client-side instance of {GetNetworkAnimatorName(m_AuthoritativeMode)} to be spawned!");
856856

857857
// Make sure the AnimatorTestHelper client side instances is the same as the TotalClients
858-
var calculatedClients = (AnimatorTestHelper.ClientSideInstances.Count + (m_UseHost ? 1 : 0));
859-
Assert.True(calculatedClients == TotalClients, $"Incorrect number of clients: expected {calculatedClients}, actual {TotalClients}. network managers: {m_NetworkManagers.Length}, client side: {AnimatorTestHelper.ClientSideInstances.Count}");
858+
var calculatedClients = AnimatorTestHelper.ClientSideInstances.Count + (m_UseHost ? 1 : 0);
859+
Assert.True(calculatedClients == TotalClients, $"Incorrect number of clients: actual {calculatedClients}, expected {TotalClients}. network managers: {m_NetworkManagers.Length}, client side: {AnimatorTestHelper.ClientSideInstances.Count}");
860860

861861
var lateJoinObjectInstance = AnimatorTestHelper.ClientSideInstances[m_ClientNetworkManagers[NumberOfClients].LocalClientId];
862862
yield return WaitForConditionOrTimeOut(() => Mathf.Approximately(lateJoinObjectInstance.transform.rotation.eulerAngles.y, 180.0f));

testproject/Assets/Tests/Runtime/NetworkSceneManager/InScenePlacedNetworkObjectTests.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public InScenePlacedNetworkObjectTests(NetworkTopologyTypes networkTopologyType,
3838
protected override IEnumerator OnSetup()
3939
{
4040
NetworkObjectTestComponent.Reset();
41+
m_EnableVerboseDebug = true;
4142
NetworkObjectTestComponent.VerboseDebug = m_EnableVerboseDebug;
4243
m_CanStartServerAndClients = false;
4344
return base.OnSetup();
@@ -104,10 +105,14 @@ public IEnumerator InSceneNetworkObjectSynchAndSpawn([Values] DespawnMode despaw
104105
Assert.IsTrue(status == SceneEventProgressStatus.Started, $"When attempting to load scene {k_SceneToLoad} was returned the following progress status: {status}");
105106
// We removed a client from the initial spawn and server should spawn too
106107
var clientCount = TotalClients - (m_UseHost ? 1 : 0);
108+
107109
// This verifies the scene loaded and the in-scene placed NetworkObjects spawned.
108110
yield return WaitForConditionOrTimeOut(() => NetworkObjectTestComponent.SpawnedInstances.Count == clientCount);
109111
AssertOnTimeout($"Timed out waiting for total spawned in-scene placed NetworkObjects to reach a count of {clientCount} and is currently {NetworkObjectTestComponent.SpawnedInstances.Count}");
110112

113+
yield return WaitForConditionOrTimeOut(() => m_ServerSideSceneLoaded.IsValid() && m_ServerSideSceneLoaded.isLoaded);
114+
AssertOnTimeout($"Timed out waiting for server to finish loading scene {k_SceneToLoad}!");
115+
111116
// Get the server-side instance of the in-scene NetworkObject
112117
Assert.True(s_GlobalNetworkObjects.ContainsKey(m_ServerNetworkManager.LocalClientId), $"Could not find server instance of the test in-scene NetworkObject!");
113118
var serverObject = NetworkObjectTestComponent.ServerNetworkObjectInstance;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
2+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CMB/@EntryIndexedValue">CMB</s:String></wpf:ResourceDictionary>

0 commit comments

Comments
 (0)