Merge all changes
This commit is contained in:
@@ -69,16 +69,16 @@ public sealed class LayerCacheRoundTripTests : IAsyncLifetime
|
||||
new("usage.cdx.json", usageStream, "application/json")
|
||||
});
|
||||
|
||||
var stored = await _layerCache.PutAsync(request, CancellationToken.None);
|
||||
var stored = await _layerCache.PutAsync(request, TestContext.Current.CancellationToken);
|
||||
stored.LayerDigest.Should().Be(layerDigest);
|
||||
stored.Artifacts.Should().ContainKey("inventory.cdx.json");
|
||||
stored.TotalSizeBytes.Should().BeGreaterThan(0);
|
||||
|
||||
var cached = await _layerCache.TryGetAsync(layerDigest, CancellationToken.None);
|
||||
var cached = await _layerCache.TryGetAsync(layerDigest, TestContext.Current.CancellationToken);
|
||||
cached.Should().NotBeNull();
|
||||
cached!.Metadata.Should().ContainKey("image");
|
||||
|
||||
await using (var artifact = await _layerCache.OpenArtifactAsync(layerDigest, "inventory.cdx.json", CancellationToken.None))
|
||||
await using (var artifact = await _layerCache.OpenArtifactAsync(layerDigest, "inventory.cdx.json", TestContext.Current.CancellationToken))
|
||||
{
|
||||
artifact.Should().NotBeNull();
|
||||
using var reader = new StreamReader(artifact!, Encoding.UTF8);
|
||||
@@ -89,34 +89,34 @@ public sealed class LayerCacheRoundTripTests : IAsyncLifetime
|
||||
// Store file CAS entry and validate export/import lifecycle.
|
||||
var casHash = "sha256:" + new string('f', 64);
|
||||
using var casStream = CreateStream("some-cas-content");
|
||||
await _fileCas.PutAsync(new FileCasPutRequest(casHash, casStream), CancellationToken.None);
|
||||
await _fileCas.PutAsync(new FileCasPutRequest(casHash, casStream), TestContext.Current.CancellationToken);
|
||||
|
||||
var exportPath = Path.Combine(_rootPath, "export");
|
||||
var exportCount = await _fileCas.ExportAsync(exportPath, CancellationToken.None);
|
||||
var exportCount = await _fileCas.ExportAsync(exportPath, TestContext.Current.CancellationToken);
|
||||
exportCount.Should().Be(1);
|
||||
|
||||
await _fileCas.RemoveAsync(casHash, CancellationToken.None);
|
||||
(await _fileCas.TryGetAsync(casHash, CancellationToken.None)).Should().BeNull();
|
||||
await _fileCas.RemoveAsync(casHash, TestContext.Current.CancellationToken);
|
||||
(await _fileCas.TryGetAsync(casHash, TestContext.Current.CancellationToken)).Should().BeNull();
|
||||
|
||||
var importCount = await _fileCas.ImportAsync(exportPath, CancellationToken.None);
|
||||
var importCount = await _fileCas.ImportAsync(exportPath, TestContext.Current.CancellationToken);
|
||||
importCount.Should().Be(1);
|
||||
var imported = await _fileCas.TryGetAsync(casHash, CancellationToken.None);
|
||||
var imported = await _fileCas.TryGetAsync(casHash, TestContext.Current.CancellationToken);
|
||||
imported.Should().NotBeNull();
|
||||
imported!.RelativePath.Should().EndWith("content.bin");
|
||||
|
||||
// TTL eviction
|
||||
_timeProvider.Advance(TimeSpan.FromHours(2));
|
||||
await _layerCache.EvictExpiredAsync(CancellationToken.None);
|
||||
(await _layerCache.TryGetAsync(layerDigest, CancellationToken.None)).Should().BeNull();
|
||||
await _layerCache.EvictExpiredAsync(TestContext.Current.CancellationToken);
|
||||
(await _layerCache.TryGetAsync(layerDigest, TestContext.Current.CancellationToken)).Should().BeNull();
|
||||
|
||||
// Compaction removes CAS entry once over threshold.
|
||||
// Force compaction by writing a large entry.
|
||||
using var largeStream = CreateStream(new string('x', 400_000));
|
||||
var largeHash = "sha256:" + new string('e', 64);
|
||||
await _fileCas.PutAsync(new FileCasPutRequest(largeHash, largeStream), CancellationToken.None);
|
||||
await _fileCas.PutAsync(new FileCasPutRequest(largeHash, largeStream), TestContext.Current.CancellationToken);
|
||||
_timeProvider.Advance(TimeSpan.FromMinutes(1));
|
||||
await _fileCas.CompactAsync(CancellationToken.None);
|
||||
(await _fileCas.TryGetAsync(casHash, CancellationToken.None)).Should().BeNull();
|
||||
await _fileCas.CompactAsync(TestContext.Current.CancellationToken);
|
||||
(await _fileCas.TryGetAsync(casHash, TestContext.Current.CancellationToken)).Should().BeNull();
|
||||
}
|
||||
|
||||
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
|
||||
|
||||
Reference in New Issue
Block a user