2
0
mirror of synced 2025-02-13 08:56:30 +00:00

50 lines
1.4 KiB
C#
Raw Normal View History

2023-09-20 10:59:52 +02:00
using CodexPlugin;
using CodexTests;
2023-04-20 15:58:47 +02:00
using DistTestCore;
using FileUtils;
2023-04-19 12:34:46 +02:00
using NUnit.Framework;
2023-09-08 10:21:40 +02:00
using Utils;
2023-09-20 10:59:52 +02:00
namespace CodexLongTests.BasicTests
2023-04-19 12:34:46 +02:00
{
[TestFixture]
2023-09-20 10:59:52 +02:00
public class UploadTests : CodexDistTest
2023-04-19 12:34:46 +02:00
{
[TestCase(3, 50)]
2023-04-28 07:22:17 +02:00
[TestCase(5, 75)]
[TestCase(10, 25)]
[UseLongTimeouts]
public void ParallelUpload(int numberOfNodes, int filesizeMb)
2023-04-20 12:43:25 +02:00
{
2023-09-20 10:59:52 +02:00
var group = AddCodex(numberOfNodes);
var host = AddCodex();
2023-04-20 12:43:25 +02:00
2023-04-25 13:43:51 +02:00
foreach (var node in group)
2023-04-20 12:43:25 +02:00
{
2023-04-25 13:43:51 +02:00
host.ConnectToPeer(node);
2023-04-20 12:43:25 +02:00
}
2023-04-25 13:43:51 +02:00
2023-09-20 10:59:52 +02:00
var testfiles = new List<TrackedFile>();
2023-04-25 13:43:51 +02:00
var contentIds = new List<Task<ContentId>>();
for (int i = 0; i < group.Count(); i++)
2023-04-20 12:43:25 +02:00
{
testfiles.Add(GenerateTestFile(filesizeMb.MB()));
2023-04-25 13:43:51 +02:00
var n = i;
contentIds.Add(Task.Run(() => { return host.UploadFile(testfiles[n]); }));
2023-04-20 12:43:25 +02:00
}
2023-09-20 10:59:52 +02:00
var downloads = new List<Task<TrackedFile?>>();
2023-04-25 13:43:51 +02:00
for (int i = 0; i < group.Count(); i++)
2023-04-20 12:43:25 +02:00
{
2023-04-25 13:43:51 +02:00
var n = i;
downloads.Add(Task.Run(() => { return group[n].DownloadContent(contentIds[n].Result); }));
}
Task.WaitAll(downloads.ToArray());
for (int i = 0; i < group.Count(); i++)
{
testfiles[i].AssertIsEqual(downloads[i].Result);
2023-04-20 12:43:25 +02:00
}
2023-04-19 12:34:46 +02:00
}
}
}