Skip to content

Commit 4e1490c

Browse files
committed
Add DisposedDecompressorThrows test
1 parent 5003e43 commit 4e1490c

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

test/LibDeflate.Tests/DecompressorTests.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,37 @@ private static byte[] GetOversizedInputBuffer(ReadOnlySpan<byte> input, out int
5353
return oversizedMs.GetBuffer()[..(int)oversizedMs.Length];
5454
}
5555

56+
[Theory]
57+
[MemberData(nameof(Decompressors))]
58+
public void DisposedDecompressorThrows(Decompressor decompressor, ReadOnlyMemory<byte> input, BclDeflater bclDeflater)
59+
{
60+
//compress with BCL
61+
var bclDeflated = bclDeflater(input);
62+
63+
using (decompressor)
64+
{
65+
//make sure we don't throw when not disposed
66+
Decompress();
67+
}
68+
69+
Assert.Throws<ObjectDisposedException>(Decompress);
70+
71+
void Decompress()
72+
{
73+
ReadOnlySpan<byte> inSpan = bclDeflated.Span;
74+
decompressor.Decompress(inSpan, input.Length, out var owner);
75+
owner.Dispose();
76+
77+
Span<byte> outSpan = new byte[input.Length];
78+
decompressor.Decompress(inSpan, outSpan, out int bytesWritten);
79+
80+
decompressor.Decompress(inSpan, input.Length, out owner, out int bytesRead);
81+
owner.Dispose();
82+
83+
decompressor.Decompress(inSpan, outSpan, out bytesWritten, out bytesRead);
84+
}
85+
}
86+
5687
[Theory]
5788
[MemberData(nameof(Decompressors))]
5889
public void DecompressOwnedBufferTest(Decompressor decompressor, ReadOnlyMemory<byte> inputMemory, BclDeflater bclDeflater)

0 commit comments

Comments
 (0)