This commit is contained in:
benbierens 2023-06-06 14:36:37 +02:00
parent 10a0ac3311
commit e33a6776e5
No known key found for this signature in database
GPG Key ID: FE44815D96D0A1AA
5 changed files with 32 additions and 44 deletions

View File

@ -16,10 +16,18 @@ namespace DistTestCore.Helpers
public void AssertFullyConnected(IEnumerable<IOnlineCodexNode> nodes) public void AssertFullyConnected(IEnumerable<IOnlineCodexNode> nodes)
{ {
AssertFullyConnected(nodes.ToArray()); var n = nodes.ToArray();
AssertFullyConnected(n);
for (int i = 0; i < 5; i++)
{
Time.Sleep(TimeSpan.FromSeconds(30));
AssertFullyConnected(n);
}
} }
public void AssertFullyConnected(params IOnlineCodexNode[] nodes) private void AssertFullyConnected(IOnlineCodexNode[] nodes)
{ {
test.Log($"Asserting peers are fully-connected for nodes: '{string.Join(",", nodes.Select(n => n.GetName()))}'..."); test.Log($"Asserting peers are fully-connected for nodes: '{string.Join(",", nodes.Select(n => n.GetName()))}'...");
var entries = CreateEntries(nodes); var entries = CreateEntries(nodes);

View File

@ -1,4 +1,7 @@
namespace DistTestCore.Helpers using Nethereum.Model;
using NUnit.Framework;
namespace DistTestCore.Helpers
{ {
public class PeerDownloadTestHelpers public class PeerDownloadTestHelpers
{ {
@ -17,6 +20,8 @@
public void AssertFullDownloadInterconnectivity(IEnumerable<IOnlineCodexNode> nodes, ByteSize testFileSize) public void AssertFullDownloadInterconnectivity(IEnumerable<IOnlineCodexNode> nodes, ByteSize testFileSize)
{ {
test.Log($"Asserting full download interconnectivity for nodes: '{string.Join(",", nodes.Select(n => n.GetName()))}'..."); test.Log($"Asserting full download interconnectivity for nodes: '{string.Join(",", nodes.Select(n => n.GetName()))}'...");
var start = DateTime.UtcNow;
foreach (var node in nodes) foreach (var node in nodes)
{ {
var uploader = node; var uploader = node;
@ -29,6 +34,19 @@
} }
test.Log($"Success! Full download interconnectivity for nodes: {string.Join(",", nodes.Select(n => n.GetName()))}"); test.Log($"Success! Full download interconnectivity for nodes: {string.Join(",", nodes.Select(n => n.GetName()))}");
var timeTaken = DateTime.UtcNow - start;
AssertTimePerDownload(timeTaken, nodes.Count());
}
private void AssertTimePerDownload(TimeSpan timeTaken, int numberOfNodes)
{
var numberOfDownloads = numberOfNodes * (numberOfNodes - 1);
var timePerDownload = timeTaken / numberOfDownloads;
test.Log($"Performed {numberOfDownloads} downloads in {timeTaken.TotalSeconds} seconds, for an average of {timePerDownload.TotalSeconds} seconds per download.");
Assert.That(timePerDownload.TotalSeconds, Is.LessThan(20.0f), "Seconds-per-Download breached performance threshold.");
} }
private void PerformTest(IOnlineCodexNode uploader, IOnlineCodexNode[] downloaders, ByteSize testFileSize) private void PerformTest(IOnlineCodexNode uploader, IOnlineCodexNode[] downloaders, ByteSize testFileSize)

View File

@ -73,7 +73,9 @@ namespace DistTestCore
{ {
Assert.Fail("Node failed to store block."); Assert.Fail("Node failed to store block.");
} }
lifecycle.Log.AddStringReplace(response, $"(CID:{file.Describe()})"); var logReplacement = $"(CID:{file.Describe()})";
Log($"ContentId '{response}' is {logReplacement}");
lifecycle.Log.AddStringReplace(response, logReplacement);
Log($"Uploaded file. Received contentId: '{response}'."); Log($"Uploaded file. Received contentId: '{response}'.");
return new ContentId(response); return new ContentId(response);
} }

View File

@ -1,7 +1,6 @@
using DistTestCore; using DistTestCore;
using DistTestCore.Helpers; using DistTestCore.Helpers;
using NUnit.Framework; using NUnit.Framework;
using Utils;
namespace Tests.PeerDiscoveryTests namespace Tests.PeerDiscoveryTests
{ {
@ -35,7 +34,6 @@ namespace Tests.PeerDiscoveryTests
[TestCase(5)] [TestCase(5)]
[TestCase(10)] [TestCase(10)]
[TestCase(20)] [TestCase(20)]
[TestCase(50)]
public void NodeChainTest(int chainLength) public void NodeChainTest(int chainLength)
{ {
var node = SetupCodexNode(); var node = SetupCodexNode();
@ -45,12 +43,6 @@ namespace Tests.PeerDiscoveryTests
} }
AssertAllNodesConnected(); AssertAllNodesConnected();
for (int i = 0; i < 5; i++)
{
Time.Sleep(TimeSpan.FromSeconds(30));
AssertAllNodesConnected();
}
} }
private void AssertAllNodesConnected() private void AssertAllNodesConnected()

View File

@ -18,16 +18,6 @@ namespace Tests.PeerDiscoveryTests
Assert.That(result.IsPeerFound, Is.False); Assert.That(result.IsPeerFound, Is.False);
} }
[TestCase(2)]
[TestCase(3)]
[TestCase(10)]
public void VariableNodes(int number)
{
SetupCodexNodes(number);
AssertAllNodesConnected();
}
[TestCase(2)] [TestCase(2)]
[TestCase(3)] [TestCase(3)]
[TestCase(10)] [TestCase(10)]
@ -42,28 +32,6 @@ namespace Tests.PeerDiscoveryTests
AssertAllNodesConnected(); AssertAllNodesConnected();
} }
[TestCase(3, 3)]
[TestCase(3, 5)]
[TestCase(3, 10)]
[TestCase(5, 10)]
[TestCase(3, 20)]
[TestCase(5, 20)]
public void StagedVariableNodes(int numberOfNodes, int numberOfStages)
{
for (var i = 0; i < numberOfStages; i++)
{
SetupCodexNodes(numberOfNodes);
AssertAllNodesConnected();
}
for (int i = 0; i < 5; i++)
{
Time.Sleep(TimeSpan.FromSeconds(30));
AssertAllNodesConnected();
}
}
private void AssertAllNodesConnected() private void AssertAllNodesConnected()
{ {
PeerConnectionTestHelpers.AssertFullyConnected(GetAllOnlineCodexNodes()); PeerConnectionTestHelpers.AssertFullyConnected(GetAllOnlineCodexNodes());