ADD Parallel download Tests

This commit is contained in:
Corbo12 2023-04-19 12:34:46 +02:00
parent d8ff9e4d02
commit 18e59f3490
2 changed files with 85 additions and 0 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
.vs
obj
bin
.vscode

View File

@ -0,0 +1,84 @@
using CodexDistTestCore;
using CodexDistTestCore.Config;
using NUnit.Framework;
namespace Tests.ParallelTests
{
[TestFixture]
public class DownloadTests : DistTest
{
[Test]
public void TwoNodeDownloads()
{
ParallelDownload(2, 64.MB());
}
[Test]
public void FiveNodeDownloads()
{
ParallelDownload(5, 1000.MB());
}
[Test]
public void TenNodeDownloads()
{
ParallelDownload(10, 16.MB());
}
public void download(ContentId contentId, CodexDistTestCore.IOnlineCodexNode node, TestFile testFile)
{
var downloadedFile = node.DownloadContent(contentId);
testFile.AssertIsEqual(downloadedFile);
}
void ParallelDownload(int numberOfNodes, ByteSize filesize)
{
var group = SetupCodexNodes(numberOfNodes).EnableMetrics().BringOnline();
var host = group[0];
for (int i = 1; i < numberOfNodes; i++)
{
host.ConnectToPeer(group[i]);
}
var testFile = GenerateTestFile(filesize);
var contentId = host.UploadFile(testFile);
for (int i = 1; i < numberOfNodes; i++)
{
new Task(() => { download(contentId, group[i], testFile); }).Start();
}
Task.WaitAll();
}
}
[TestFixture]
public class UploadTests : DistTest
{
[Test]
public void TwoNodeUploads()
{
}
public void FiveNodeUploads()
{
}
public void TenNodeUploads()
{
}
}
[TestFixture]
public class MixedTests : DistTest
{
[Test]
public void OneDownloadOneUpload()
{
}
public void ThreeDownloadTwoUpload()
{
}
public void FiveDownloadFiveUpload()
{
}
}
}