-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Open
Labels
area-middlewareIncludes: URL rewrite, redirect, response cache/compression, session, and other general middlewaresIncludes: URL rewrite, redirect, response cache/compression, session, and other general middlewaresfeature-response-compressiontest-failure
Description
ResponseCompression tests fail with system zlib
Problem
45 tests fail on systems using system zlib instead of bundled zlib-ng:
Assert.Equal() Failure: Values differ Expected: 29 Actual: 30
at Microsoft.AspNetCore.ResponseCompression.Tests.ResponseCompressionMiddlewareTest.CheckResponseCompressed(HttpResponseMessage response, Nullable`1 expectedBodyLength, String expectedEncoding) in /_/src/Middleware/ResponseCompression/test/ResponseCompressionMiddlewareTest.cs:line 1303
at Microsoft.AspNetCore.ResponseCompression.Tests.ResponseCompressionMiddlewareTest.Request_AcceptGzipDeflate_CompressedGzip() in /_/src/Middleware/ResponseCompression/test/ResponseCompressionMiddlewareTest.cs:line 62
Root Cause
Different zlib implementations produce different but functionally equivalent output:
- zlib-ng: 29 bytes → decompresses correctly
- system zlib: 30 bytes → decompresses correctly
Both are RFC compliant. Tests check exact byte counts instead of functionality.
Solution
Replace byte count checks with decompression verification:
Current:
Assert.Equal(expectedBodyLength, response.Content.Headers.ContentLength);
Proposed:
var decompressed = await DecompressResponse(response);
Assert.Equal(expectedContent, decompressed);
Files
src/Middleware/ResponseCompression/test/ResponseCompressionMiddlewareTest.cs
cc: @giritrivedi @omajid @tmds
Metadata
Metadata
Assignees
Labels
area-middlewareIncludes: URL rewrite, redirect, response cache/compression, session, and other general middlewaresIncludes: URL rewrite, redirect, response cache/compression, session, and other general middlewaresfeature-response-compressiontest-failure