2023-10-09 16:59:52 +02:00
|
|
|
using CodexTests;
|
2023-04-26 14:59:26 +02:00
|
|
|
using DistTestCore;
|
2023-09-11 10:43:27 +02:00
|
|
|
using FileUtils;
|
2023-04-26 14:59:26 +02:00
|
|
|
using NUnit.Framework;
|
2023-09-08 10:21:40 +02:00
|
|
|
using Utils;
|
2023-04-27 15:55:33 +02:00
|
|
|
|
2023-09-20 10:59:52 +02:00
|
|
|
namespace CodexLongTests.BasicTests
|
2023-04-26 14:59:26 +02:00
|
|
|
{
|
|
|
|
[TestFixture]
|
2023-09-20 10:59:52 +02:00
|
|
|
public class DownloadTests : CodexDistTest
|
2023-04-26 14:59:26 +02:00
|
|
|
{
|
2023-05-01 11:14:42 +02:00
|
|
|
[TestCase(3, 500)]
|
|
|
|
[TestCase(5, 100)]
|
2023-04-28 07:22:17 +02:00
|
|
|
[TestCase(10, 256)]
|
2023-04-27 15:55:33 +02:00
|
|
|
[UseLongTimeouts]
|
|
|
|
public void ParallelDownload(int numberOfNodes, int filesizeMb)
|
2023-04-26 14:59:26 +02:00
|
|
|
{
|
2023-09-20 10:59:52 +02:00
|
|
|
var group = AddCodex(numberOfNodes);
|
|
|
|
var host = AddCodex();
|
2023-04-26 14:59:26 +02:00
|
|
|
|
|
|
|
foreach (var node in group)
|
|
|
|
{
|
|
|
|
host.ConnectToPeer(node);
|
|
|
|
}
|
|
|
|
|
2023-04-27 15:55:33 +02:00
|
|
|
var testFile = GenerateTestFile(filesizeMb.MB());
|
2023-04-26 14:59:26 +02:00
|
|
|
var contentId = host.UploadFile(testFile);
|
2023-09-20 10:59:52 +02:00
|
|
|
var list = new List<Task<TrackedFile?>>();
|
2023-06-01 12:27:54 +02:00
|
|
|
|
2023-04-26 14:59:26 +02:00
|
|
|
foreach (var node in group)
|
|
|
|
{
|
|
|
|
list.Add(Task.Run(() => { return node.DownloadContent(contentId); }));
|
|
|
|
}
|
|
|
|
|
|
|
|
Task.WaitAll(list.ToArray());
|
|
|
|
foreach (var task in list)
|
|
|
|
{
|
|
|
|
testFile.AssertIsEqual(task.Result);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-05-04 11:34:43 +02:00
|
|
|
}
|