From a8fdb0fc9d296db66ddd5cf14c88023e9bd9a364 Mon Sep 17 00:00:00 2001 From: Duarte Meneses Date: Thu, 15 Sep 2022 16:18:01 -0500 Subject: SONAR-17337 Scanner download of analyzer cache doesn't handle compression correctly --- .../sonar/scanner/cache/DefaultAnalysisCacheLoaderTest.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'sonar-scanner-engine/src/test/java') diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/cache/DefaultAnalysisCacheLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/cache/DefaultAnalysisCacheLoaderTest.java index 4f666a58a53..3147eadbb8c 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/cache/DefaultAnalysisCacheLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/cache/DefaultAnalysisCacheLoaderTest.java @@ -27,6 +27,8 @@ import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.Optional; import java.util.zip.DeflaterInputStream; +import java.util.zip.GZIPInputStream; +import java.util.zip.GZIPOutputStream; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -130,7 +132,7 @@ public class DefaultAnalysisCacheLoaderTest { } private void setCompressedResponse(AnalysisCacheMsg msg) throws IOException { - when(response.contentStream()).thenReturn(new DeflaterInputStream(createInputStream(msg))); + when(response.contentStream()).thenReturn(createCompressedInputStream(msg)); when(response.header(CONTENT_ENCODING)).thenReturn(Optional.of("gzip")); } @@ -144,4 +146,12 @@ public class DefaultAnalysisCacheLoaderTest { analysisCacheMsg.writeTo(serialized); return new ByteArrayInputStream(serialized.toByteArray()); } + + private InputStream createCompressedInputStream(AnalysisCacheMsg analysisCacheMsg) throws IOException { + ByteArrayOutputStream serialized = new ByteArrayOutputStream(analysisCacheMsg.getSerializedSize()); + GZIPOutputStream compressed = new GZIPOutputStream(serialized); + analysisCacheMsg.writeTo(compressed); + compressed.close(); + return new ByteArrayInputStream(serialized.toByteArray()); + } } -- cgit v1.2.3