[#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)
|
if (bytes.Length < 200)
|
||||||
return;
|
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 rangeReader = await client.GetRangeAsync(rangeParam, default);
|
||||||
|
|
||||||
var downloadedBytes = new byte[rangeParam.Range.Length];
|
var rangeBytes = new byte[rangeParam.Range.Length];
|
||||||
MemoryStream ms = new(downloadedBytes);
|
MemoryStream ms = new(rangeBytes);
|
||||||
|
|
||||||
ReadOnlyMemory<byte>? chunk;
|
ReadOnlyMemory<byte>? chunk;
|
||||||
while ((chunk = await rangeReader!.ReadChunk()) != null)
|
while ((chunk = await rangeReader!.ReadChunk()) != null)
|
||||||
|
@ -150,7 +161,9 @@ public class ObjectTests(ITestOutputHelper testOutputHelper) : SmokeTestsBase
|
||||||
ms.Write(chunk.Value.Span);
|
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)
|
private static async Task ValidatePatch(IFrostFSClient client, FrostFsContainerId containerId, byte[] bytes, FrostFsObjectId objectId)
|
||||||
|
|
Loading…
Add table
Reference in a new issue