Skip to content

Move common metrics test initialization to utility class #973

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
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 @@ -4,6 +4,7 @@
using System.IO;
using System.Linq;
using MLAPI.Metrics;
using MLAPI.RuntimeTests.Metrics.Utility;
using MLAPI.Serialization;
using NUnit.Framework;
using Unity.Multiplayer.MetricTypes;
Expand All @@ -23,25 +24,15 @@ public class MessagingMetricsTests
[UnitySetUp]
public IEnumerator SetUp()
{
if (!MultiInstanceHelpers.Create(2, out m_Server, out var clients))
{
Debug.LogError("Failed to create instances");
Assert.Fail("Failed to create instances");
}

if (!MultiInstanceHelpers.Start(true, m_Server, clients))
{
Debug.LogError("Failed to start instances");
Assert.Fail("Failed to start instances");
}
var initializer = new DualClientMetricTestInitializer();

yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));
yield return initializer.Initialize();

m_FirstClient = clients[0];
m_SecondClient = clients[1];
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
m_FirstClientMetrics = m_FirstClient.NetworkMetrics as NetworkMetrics;
m_Server = initializer.Server;
m_FirstClient = initializer.FirstClient;
m_SecondClient = initializer.SecondClient;
m_ServerMetrics = initializer.ServerMetrics;
m_FirstClientMetrics = initializer.FirstClientMetrics;
}

[UnityTearDown]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
using System.Collections;
using System.Linq;
using MLAPI.Metrics;
using MLAPI.RuntimeTests.Metrics.Utility;
using NUnit.Framework;
using Unity.Multiplayer.MetricTypes;
using UnityEngine;
using UnityEngine.TestTools;

namespace MLAPI.RuntimeTests.Metrics.RPC
namespace MLAPI.RuntimeTests.Metrics
{
public class NetworkMetricsRpcTests
{
Expand All @@ -18,32 +19,14 @@ public class NetworkMetricsRpcTests
[UnitySetUp]
public IEnumerator SetUp()
{
if (!MultiInstanceHelpers.Create(1, out m_Server, out NetworkManager[] clients))
{
Assert.Fail("Failed to create instances");
}

var playerPrefab = new GameObject("Player");
NetworkObject networkObject = playerPrefab.AddComponent<NetworkObject>();
playerPrefab.AddComponent<RpcTestComponent>();

MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(networkObject);

m_Server.NetworkConfig.PlayerPrefab = playerPrefab;
m_Client = clients.First();

m_Client.NetworkConfig.PlayerPrefab = playerPrefab;

if (!MultiInstanceHelpers.Start(true, m_Server, clients))
{
Assert.Fail("Failed to start instances");
}
var initializer = new SingleClientMetricTestInitializer(MetricTestInitializer.CreateAndAssignPlayerPrefabs);

yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));
yield return initializer.Initialize();

m_ClientMetrics = m_Client.NetworkMetrics as NetworkMetrics;
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
m_Server = initializer.Server;
m_Client = initializer.Client;
m_ClientMetrics = initializer.ClientMetrics;
m_ServerMetrics = initializer.ServerMetrics;
}

[TearDown]
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Linq;
using MLAPI.Configuration;
using MLAPI.Metrics;
using MLAPI.RuntimeTests.Metrics.Utility;
using NUnit.Framework;
using Unity.Multiplayer.MetricTypes;
using UnityEngine;
Expand All @@ -23,46 +24,29 @@ public class NetworkObjectMetricsTests
[UnitySetUp]
public IEnumerator SetUp()
{
if (!MultiInstanceHelpers.Create(1, out m_Server, out var clients))
var initializer = new SingleClientMetricTestInitializer((server, clients) =>
{
Debug.LogError("Failed to create instances");
Assert.Fail("Failed to create instances");
}

var playerPrefab = new GameObject("Player");
var networkObject = playerPrefab.AddComponent<NetworkObject>();

MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(networkObject);

m_Server.NetworkConfig.PlayerPrefab = playerPrefab;

var gameObject = new GameObject(m_NewNetworkObjectName);
m_NewNetworkObject = gameObject.AddComponent<NetworkObject>();
m_NewNetworkObject.NetworkManagerOwner = m_Server;
MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(m_NewNetworkObject);
var networkPrefab = new NetworkPrefab {Prefab = gameObject};
m_Server.NetworkConfig.NetworkPrefabs.Add(networkPrefab);

foreach (var client in clients)
{
client.NetworkConfig.PlayerPrefab = playerPrefab;
client.NetworkConfig.NetworkPrefabs.Add(networkPrefab);
}

if (!MultiInstanceHelpers.Start(true, m_Server, clients))
{
Debug.LogError("Failed to start instances");
Assert.Fail("Failed to start instances");
}

m_Client = clients.First();

yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));

m_ClientMetrics = m_Client.NetworkMetrics as NetworkMetrics;
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;

MetricTestInitializer.CreateAndAssignPlayerPrefabs(server, clients);

var gameObject = new GameObject(m_NewNetworkObjectName);
m_NewNetworkObject = gameObject.AddComponent<NetworkObject>();
m_NewNetworkObject.NetworkManagerOwner = server;
MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(m_NewNetworkObject);
var networkPrefab = new NetworkPrefab { Prefab = gameObject };
server.NetworkConfig.NetworkPrefabs.Add(networkPrefab);

foreach (var client in clients)
{
client.NetworkConfig.NetworkPrefabs.Add(networkPrefab);
}
});

yield return initializer.Initialize();

m_Server = initializer.Server;
m_Client = initializer.Client;
m_ClientMetrics = initializer.ClientMetrics;
m_ServerMetrics = initializer.ServerMetrics;
}

[UnityTearDown]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,54 +1,30 @@
using System.Collections;
using System.Linq;
using MLAPI.Metrics;
using MLAPI.RuntimeTests.Metrics.Utility;
using NUnit.Framework;
using Unity.Multiplayer.MetricTypes;
using UnityEngine;
using UnityEngine.TestTools;

namespace MLAPI.RuntimeTests.Metrics.NetworkVariables
namespace MLAPI.RuntimeTests.Metrics
{
public class NetworkVariableMetricsTests
{
NetworkManager m_Server;
NetworkMetrics m_ServerMetrics;
NetworkManager m_Client;
NetworkMetrics m_ClientMetrics;

[UnitySetUp]
public IEnumerator SetUp()
{
if (!MultiInstanceHelpers.Create(1, out m_Server, out var clients))
{
Debug.LogError("Failed to create instances");
Assert.Fail("Failed to create instances");
}
var initializer = new SingleClientMetricTestInitializer(MetricTestInitializer.CreateAndAssignPlayerPrefabs);

var playerPrefab = new GameObject("Player");
var networkObject = playerPrefab.AddComponent<NetworkObject>();
playerPrefab.AddComponent<NetworkVariableComponent>();
yield return initializer.Initialize();

MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(networkObject);

m_Server.NetworkConfig.PlayerPrefab = playerPrefab;

foreach (var client in clients)
{
client.NetworkConfig.PlayerPrefab = playerPrefab;
}

if (!MultiInstanceHelpers.Start(true, m_Server, clients))
{
Debug.LogError("Failed to start instances");
Assert.Fail("Failed to start instances");
}

yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));

m_Client = clients.First();
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
m_ClientMetrics = m_Client.NetworkMetrics as NetworkMetrics;
m_Server = initializer.Server;
m_ServerMetrics = initializer.ServerMetrics;
m_ClientMetrics = initializer.ClientMetrics;
}

[UnityTearDown]
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
using System.Collections;
using System.Linq;
using MLAPI.Metrics;
using MLAPI.RuntimeTests.Metrics.NetworkVariables;
using MLAPI.RuntimeTests.Metrics.Utility;
using NUnit.Framework;
using Unity.Multiplayer.MetricTypes;
using UnityEngine;
Expand All @@ -20,37 +20,14 @@ public class OwnershipChangeMetricsTests
[UnitySetUp]
public IEnumerator SetUp()
{
if (!MultiInstanceHelpers.Create(1, out m_Server, out var clients))
{
Debug.LogError("Failed to create instances");
Assert.Fail("Failed to create instances");
}

var playerPrefab = new GameObject("Player");
var networkObject = playerPrefab.AddComponent<NetworkObject>();
playerPrefab.AddComponent<NetworkVariableComponent>();

MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(networkObject);

m_Server.NetworkConfig.PlayerPrefab = playerPrefab;

foreach (var client in clients)
{
client.NetworkConfig.PlayerPrefab = playerPrefab;
}

if (!MultiInstanceHelpers.Start(true, m_Server, clients))
{
Debug.LogError("Failed to start instances");
Assert.Fail("Failed to start instances");
}

yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));

m_Client = clients.First();
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
m_ClientMetrics = m_Client.NetworkMetrics as NetworkMetrics;
var initializer = new SingleClientMetricTestInitializer(MetricTestInitializer.CreateAndAssignPlayerPrefabs);

yield return initializer.Initialize();

m_Server = initializer.Server;
m_Client = initializer.Client;
m_ServerMetrics = initializer.ServerMetrics;
m_ClientMetrics = initializer.ClientMetrics;
}

[UnityTearDown]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
using System.Linq;
using MLAPI.Logging;
using MLAPI.Metrics;
using MLAPI.RuntimeTests.Metrics.Utility;
using NUnit.Framework;
using Unity.Multiplayer.MetricTypes;
using UnityEngine;
using UnityEngine.TestTools;

namespace MLAPI.RuntimeTests.Metrics.ServerLogs
namespace MLAPI.RuntimeTests.Metrics
{
public class ServerLogsMetricTests
{
Expand All @@ -16,40 +16,17 @@ public class ServerLogsMetricTests
NetworkMetrics m_ClientMetrics;
NetworkMetrics m_ServerMetrics;


[UnitySetUp]
public IEnumerator SetUp()
{
if (!MultiInstanceHelpers.Create(1, out m_Server, out var clients))
{
Debug.LogError("Failed to create instances");
Assert.Fail("Failed to create instances");
}

var playerPrefab = new GameObject("Player");
var networkObject = playerPrefab.AddComponent<NetworkObject>();

MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(networkObject);

m_Server.NetworkConfig.PlayerPrefab = playerPrefab;

foreach (var client in clients)
{
client.NetworkConfig.PlayerPrefab = playerPrefab;
}

if (!MultiInstanceHelpers.Start(true, m_Server, clients))
{
Debug.LogError("Failed to start instances");
Assert.Fail("Failed to start instances");
}
var initializer = new SingleClientMetricTestInitializer();

yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));
yield return initializer.Initialize();

m_Client = clients.First();
m_ClientMetrics = m_Client.NetworkMetrics as NetworkMetrics;
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
m_Server = initializer.Server;
m_Client = initializer.Client;
m_ClientMetrics = initializer.ClientMetrics;
m_ServerMetrics = initializer.ServerMetrics;
}

[UnityTearDown]
Expand Down Expand Up @@ -80,7 +57,7 @@ public IEnumerator TrackServerLogSentMetric()
[UnityTest]
public IEnumerator TrackServerLogReceivedMetric()
{
var waitForReceivedMetric = new WaitForMetricValues<ServerLogEvent>(m_ClientMetrics.Dispatcher, MetricNames.ServerLogReceived);
var waitForReceivedMetric = new WaitForMetricValues<ServerLogEvent>(m_ServerMetrics.Dispatcher, MetricNames.ServerLogReceived);

NetworkLog.LogWarningServer("log message");

Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading