From 846e5659f83f39a7f4638ef5d8a9a5d0f00782fc Mon Sep 17 00:00:00 2001 From: Davide Angelocola Date: Fri, 10 Jul 2026 19:42:43 +0200 Subject: [PATCH] refactor: extract shared ItTestSupport helper in integration-tests Co-Authored-By: Claude Sonnet 4.6 --- .../io/github/dfa1/zstd/it/ItTestSupport.java | 30 +++++++++++++++++++ .../dfa1/zstd/it/ZstdInteropExtrasTest.java | 7 +---- .../dfa1/zstd/it/ZstdJniInteropTest.java | 20 +++---------- 3 files changed, 35 insertions(+), 22 deletions(-) create mode 100644 integration-tests/src/test/java/io/github/dfa1/zstd/it/ItTestSupport.java diff --git a/integration-tests/src/test/java/io/github/dfa1/zstd/it/ItTestSupport.java b/integration-tests/src/test/java/io/github/dfa1/zstd/it/ItTestSupport.java new file mode 100644 index 0000000..de8b0b0 --- /dev/null +++ b/integration-tests/src/test/java/io/github/dfa1/zstd/it/ItTestSupport.java @@ -0,0 +1,30 @@ +package io.github.dfa1.zstd.it; + +import io.github.dfa1.zstd.Zstd; + +import java.util.Random; + +final class ItTestSupport { + + static final int[] LEVELS = { + Zstd.minCompressionLevel(), 1, Zstd.defaultCompressionLevel(), Zstd.maxCompressionLevel() + }; + + static byte[] random(Random r, int size) { + byte[] b = new byte[size]; + r.nextBytes(b); + return b; + } + + static byte[] compressible(Random r, int size) { + byte[] b = new byte[size]; + for (int i = 0; i < size; i++) { + b[i] = (byte) ((i % 13 == 0) ? r.nextInt(256) : 'a' + (i % 8)); + } + return b; + } + + private ItTestSupport() { + // no instances + } +} diff --git a/integration-tests/src/test/java/io/github/dfa1/zstd/it/ZstdInteropExtrasTest.java b/integration-tests/src/test/java/io/github/dfa1/zstd/it/ZstdInteropExtrasTest.java index 529ee32..714bc22 100644 --- a/integration-tests/src/test/java/io/github/dfa1/zstd/it/ZstdInteropExtrasTest.java +++ b/integration-tests/src/test/java/io/github/dfa1/zstd/it/ZstdInteropExtrasTest.java @@ -27,6 +27,7 @@ import java.util.Random; import java.util.stream.Stream; +import static io.github.dfa1.zstd.it.ItTestSupport.random; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -294,11 +295,5 @@ private static void writeInChunks(java.io.OutputStream out, byte[] data) throws out.flush(); } } - - private static byte[] random(Random r, int size) { - byte[] b = new byte[size]; - r.nextBytes(b); - return b; - } } } diff --git a/integration-tests/src/test/java/io/github/dfa1/zstd/it/ZstdJniInteropTest.java b/integration-tests/src/test/java/io/github/dfa1/zstd/it/ZstdJniInteropTest.java index 8ea9ad6..993f321 100644 --- a/integration-tests/src/test/java/io/github/dfa1/zstd/it/ZstdJniInteropTest.java +++ b/integration-tests/src/test/java/io/github/dfa1/zstd/it/ZstdJniInteropTest.java @@ -23,6 +23,9 @@ import java.util.Random; import java.util.stream.Stream; +import static io.github.dfa1.zstd.it.ItTestSupport.LEVELS; +import static io.github.dfa1.zstd.it.ItTestSupport.compressible; +import static io.github.dfa1.zstd.it.ItTestSupport.random; import static org.assertj.core.api.Assertions.assertThat; /// Format-compatibility tests: frames produced by the reference zstd-jni binding @@ -35,10 +38,9 @@ static Stream payloadsAndLevels() { Random r = new Random(0xABCD); List cases = new ArrayList<>(); int[] sizes = {0, 1, 1024, 64 * 1024, 1024 * 1024}; - int[] levels = {Zstd.minCompressionLevel(), 1, Zstd.defaultCompressionLevel(), Zstd.maxCompressionLevel()}; for (int size : sizes) { byte[] data = size % 2 == 0 ? compressible(r, size) : random(r, size); - for (int level : levels) { + for (int level : LEVELS) { cases.add(Arguments.of(level, data)); } } @@ -171,18 +173,4 @@ private byte[] sample(int i) { .getBytes(StandardCharsets.UTF_8); } } - - private static byte[] random(Random r, int size) { - byte[] b = new byte[size]; - r.nextBytes(b); - return b; - } - - private static byte[] compressible(Random r, int size) { - byte[] b = new byte[size]; - for (int i = 0; i < size; i++) { - b[i] = (byte) ((i % 13 == 0) ? r.nextInt(256) : 'a' + (i % 8)); - } - return b; - } }