[#33] Client: Add extended life tests
More range variations Signed-off-by: Pavel Gross <p.gross@yadro.com>
This commit is contained in:
parent
389aae975e
commit
d579fd8dd4
1 changed files with 18 additions and 5 deletions
|
@ -132,17 +132,28 @@ public class ObjectTests(ITestOutputHelper testOutputHelper) : SmokeTestsBase
|
|||
}
|
||||
}
|
||||
|
||||
private static async Task ValidateRange(IFrostFSClient client, FrostFsContainerId containerId, byte[] bytes, FrostFsObjectId objectId)
|
||||
private async Task ValidateRange(IFrostFSClient client, FrostFsContainerId containerId, byte[] bytes, FrostFsObjectId objectId)
|
||||
{
|
||||
if (bytes.Length < 200)
|
||||
return;
|
||||
|
||||
var rangeParam = new PrmRangeGet(containerId, objectId, new FrostFsRange(50, 100));
|
||||
await CheckRange(client, containerId, bytes, objectId, new FrostFsRange(0, 50));
|
||||
await CheckRange(client, containerId, bytes, objectId, new FrostFsRange(50, 100));
|
||||
|
||||
await CheckRange(client, containerId, bytes, objectId, new FrostFsRange((ulong)bytes.Length-100, 100));
|
||||
|
||||
if (bytes.Length >= 6200)
|
||||
await CheckRange(client, containerId, bytes, objectId, new FrostFsRange(6000, 100));
|
||||
}
|
||||
|
||||
private async Task CheckRange(IFrostFSClient client, FrostFsContainerId containerId, byte[] bytes, FrostFsObjectId objectId, FrostFsRange range)
|
||||
{
|
||||
var rangeParam = new PrmRangeGet(containerId, objectId, range);
|
||||
|
||||
var rangeReader = await client.GetRangeAsync(rangeParam, default);
|
||||
|
||||
var downloadedBytes = new byte[rangeParam.Range.Length];
|
||||
MemoryStream ms = new(downloadedBytes);
|
||||
var rangeBytes = new byte[rangeParam.Range.Length];
|
||||
MemoryStream ms = new(rangeBytes);
|
||||
|
||||
ReadOnlyMemory<byte>? chunk;
|
||||
while ((chunk = await rangeReader!.ReadChunk()) != null)
|
||||
|
@ -150,7 +161,9 @@ public class ObjectTests(ITestOutputHelper testOutputHelper) : SmokeTestsBase
|
|||
ms.Write(chunk.Value.Span);
|
||||
}
|
||||
|
||||
Assert.Equal(SHA256.HashData(bytes.AsSpan().Slice(50, 100)), SHA256.HashData(downloadedBytes));
|
||||
Assert.Equal(SHA256.HashData(bytes.AsSpan().Slice((int)range.Offset, (int)range.Length)), SHA256.HashData(rangeBytes));
|
||||
|
||||
_testOutputHelper.WriteLine($"\t\trange {range.Offset};{range.Length} validated");
|
||||
}
|
||||
|
||||
private static async Task ValidatePatch(IFrostFSClient client, FrostFsContainerId containerId, byte[] bytes, FrostFsObjectId objectId)
|
||||
|
|
Loading…
Add table
Reference in a new issue