File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed
test/ICSharpCode.SharpZipLib.Tests/GZip Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change @@ -344,6 +344,56 @@ public void FlushToUnderlyingStream()
344
344
}
345
345
}
346
346
347
+ [ Test ]
348
+ [ Category ( "GZip" ) ]
349
+ public void SmallBufferDecompression ( )
350
+ {
351
+ var outputBufferSize = 100000 ;
352
+ var inputBufferSize = outputBufferSize * 4 ;
353
+
354
+ var outputBuffer = new byte [ outputBufferSize ] ;
355
+ var inputBuffer = new byte [ inputBufferSize ] ;
356
+
357
+ using ( var msGzip = new MemoryStream ( ) )
358
+ {
359
+ using ( var gzos = new GZipOutputStream ( msGzip ) )
360
+ {
361
+ gzos . IsStreamOwner = false ;
362
+
363
+ var rnd = new Random ( 0 ) ;
364
+ rnd . NextBytes ( inputBuffer ) ;
365
+ gzos . Write ( inputBuffer , 0 , inputBuffer . Length ) ;
366
+
367
+ gzos . Flush ( ) ;
368
+ gzos . Finish ( ) ;
369
+ }
370
+
371
+ msGzip . Seek ( 0 , SeekOrigin . Begin ) ;
372
+
373
+
374
+ using ( var gzis = new GZipInputStream ( msGzip ) )
375
+ using ( var msRaw = new MemoryStream ( ) )
376
+ {
377
+
378
+ int readOut ;
379
+ while ( ( readOut = gzis . Read ( outputBuffer , 0 , outputBuffer . Length ) ) > 0 )
380
+ {
381
+ msRaw . Write ( outputBuffer , 0 , readOut ) ;
382
+ }
383
+
384
+ var resultBuffer = msRaw . ToArray ( ) ;
385
+
386
+ for ( var i = 0 ; i < resultBuffer . Length ; i ++ )
387
+ {
388
+ Assert . AreEqual ( inputBuffer [ i ] , resultBuffer [ i ] ) ;
389
+ }
390
+
391
+
392
+ }
393
+ }
394
+
395
+ }
396
+
347
397
[ Test ]
348
398
[ Category ( "GZip" ) ]
349
399
[ Category ( "Performance" ) ]
You can’t perform that action at this time.
0 commit comments