From d579fd8dd4d1767394f56a698423da7dc7d7472e Mon Sep 17 00:00:00 2001 From: Pavel Gross Date: Wed, 26 Feb 2025 12:10:09 +0300 Subject: [PATCH] [#33] Client: Add extended life tests More range variations Signed-off-by: Pavel Gross --- .../Smoke/Client/ObjectTests/ObjectTests.cs | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/FrostFS.SDK.Tests/Smoke/Client/ObjectTests/ObjectTests.cs b/src/FrostFS.SDK.Tests/Smoke/Client/ObjectTests/ObjectTests.cs index 36a97cd..98e32f7 100644 --- a/src/FrostFS.SDK.Tests/Smoke/Client/ObjectTests/ObjectTests.cs +++ b/src/FrostFS.SDK.Tests/Smoke/Client/ObjectTests/ObjectTests.cs @@ -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? 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)