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)