This is an automated email from the ASF dual-hosted git repository. voonhous pushed a commit to branch dedupe-test-bloom-filter in repository https://gitbox.apache.org/repos/asf/hudi.git
commit c2d693d59538c988421fba014619bd566ebb7db2 Author: voon <[email protected]> AuthorDate: Fri Sep 18 14:05:21 2026 +0800 test(common): drop duplicated bloom-filter test helper TestBloomFilter and TestHoodieFileMetadataMerger each carried a byte-identical getBloomFilter(typeCode, numEntries, errorRate, maxEntries) helper. Its SIMPLE branch passes -1 for maxEntries, but BloomFilterFactory.createBloomFilter ignores maxNumberOfEntries when the type code is SIMPLE, so both branches build the same filter and the helper is just a rename of the factory call with the arguments reordered. Delete both copies and call BloomFilterFactory.createBloomFilter directly at the eight call sites, which is what every other bloom filter test in the repo already does. --- .../core/io/storage/TestHoodieFileMetadataMerger.java | 14 +++----------- .../org/apache/hudi/common/bloom/TestBloomFilter.java | 18 +++++------------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/hudi-common/src/test/java/org/apache/hudi/core/io/storage/TestHoodieFileMetadataMerger.java b/hudi-common/src/test/java/org/apache/hudi/core/io/storage/TestHoodieFileMetadataMerger.java index 96e589e7872d..92d13cd96989 100644 --- a/hudi-common/src/test/java/org/apache/hudi/core/io/storage/TestHoodieFileMetadataMerger.java +++ b/hudi-common/src/test/java/org/apache/hudi/core/io/storage/TestHoodieFileMetadataMerger.java @@ -124,7 +124,7 @@ public class TestHoodieFileMetadataMerger { int[] sizes = {100, 1000, 10000}; BloomFilter bloomFilter = null; for (int size : sizes) { - BloomFilter filter = getBloomFilter(bloomFilterType, 1000, 0.000001, 100000); + BloomFilter filter = BloomFilterFactory.createBloomFilter(1000, 0.000001, 100000, bloomFilterType); for (int i = 0; i < size; i++) { String key = String.format("key%d", size + i); filter.add(key); @@ -150,7 +150,7 @@ public class TestHoodieFileMetadataMerger { @Test public void testDifferentTypeOfBloomFilter() { HoodieFileMetadataMerger metaMerge = new HoodieFileMetadataMerger(); - BloomFilter simpleFilter = getBloomFilter(BloomFilterTypeCode.SIMPLE.name(), 1000, 0.000001, 100000); + BloomFilter simpleFilter = BloomFilterFactory.createBloomFilter(1000, 0.000001, 100000, BloomFilterTypeCode.SIMPLE.name()); for (int i = 0; i < 100; i++) { String key = String.format("key%d", 100 + i); simpleFilter.add(key); @@ -160,7 +160,7 @@ public class TestHoodieFileMetadataMerger { HOODIE_BLOOM_FILTER_TYPE_CODE, BloomFilterTypeCode.SIMPLE.name(), HOODIE_AVRO_BLOOM_FILTER_METADATA_KEY, simpleFilter.serializeToString()) ); - BloomFilter dynamicFilter = getBloomFilter(BloomFilterTypeCode.DYNAMIC_V0.name(), 1000, 0.000001, 100000); + BloomFilter dynamicFilter = BloomFilterFactory.createBloomFilter(1000, 0.000001, 100000, BloomFilterTypeCode.DYNAMIC_V0.name()); for (int i = 0; i < 100; i++) { String key = String.format("key%d", 100 + i); dynamicFilter.add(key); @@ -175,14 +175,6 @@ public class TestHoodieFileMetadataMerger { ); } - private BloomFilter getBloomFilter(String typeCode, int numEntries, double errorRate, int maxEntries) { - if (typeCode.equalsIgnoreCase(BloomFilterTypeCode.SIMPLE.name())) { - return BloomFilterFactory.createBloomFilter(numEntries, errorRate, -1, typeCode); - } else { - return BloomFilterFactory.createBloomFilter(numEntries, errorRate, maxEntries, typeCode); - } - } - private Map<String, String> newMap(String... kvs) { ValidationUtils.checkArgument(kvs.length == 0 || kvs.length % 2 == 0, "num of input args should be 0 or multiples of 2"); HashMap map = new HashMap(); diff --git a/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java index 80dba1e434a0..7a881bf4b331 100644 --- a/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java +++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java @@ -57,7 +57,7 @@ public class TestBloomFilter { int[] sizes = {100, 1000, 10000}; for (int size : sizes) { inputs = new ArrayList<>(); - BloomFilter filter = getBloomFilter(typeCode, size, 0.000001, size * 10); + BloomFilter filter = BloomFilterFactory.createBloomFilter(size, 0.000001, size * 10, typeCode); for (int i = 0; i < size; i++) { String key = UUID.randomUUID().toString(); inputs.add(key); @@ -82,7 +82,7 @@ public class TestBloomFilter { int[] sizes = {100, 1000, 10000}; BloomFilter bloomFilter = null; for (int size : sizes) { - BloomFilter filter = getBloomFilter(typeCode, 20000, 0.00000001, 100000); + BloomFilter filter = BloomFilterFactory.createBloomFilter(20000, 0.00000001, 100000, typeCode); for (int i = 0; i < size; i++) { String key = String.format("key%d",size + i); inputs.add(key); @@ -164,7 +164,7 @@ public class TestBloomFilter { int[] sizes = {100, 1000, 10000}; for (int size : sizes) { inputs = new ArrayList<>(); - BloomFilter filter = getBloomFilter(typeCode, size, 0.000001, size * 10); + BloomFilter filter = BloomFilterFactory.createBloomFilter(size, 0.000001, size * 10, typeCode); for (int i = 0; i < size; i++) { String key = UUID.randomUUID().toString(); inputs.add(key); @@ -215,7 +215,7 @@ public class TestBloomFilter { + ".bf.data"; serializedFilter = readLastLineFromResourceFile("/format/bloom-filter/hadoop/" + fileName); } else { - BloomFilter inputFilter = getBloomFilter(typeCode, numEntries, errorRate, maxEntries); + BloomFilter inputFilter = BloomFilterFactory.createBloomFilter(numEntries, errorRate, maxEntries, typeCode); for (String key : keyList) { inputFilter.add(key); } @@ -225,14 +225,6 @@ public class TestBloomFilter { serializedFilter, keyList, lib, typeCode, numEntries, errorRate, hashType, maxEntries); } - BloomFilter getBloomFilter(String typeCode, int numEntries, double errorRate, int maxEntries) { - if (typeCode.equalsIgnoreCase(BloomFilterTypeCode.SIMPLE.name())) { - return BloomFilterFactory.createBloomFilter(numEntries, errorRate, -1, typeCode); - } else { - return BloomFilterFactory.createBloomFilter(numEntries, errorRate, maxEntries, typeCode); - } - } - private void validateBloomFilter(String serializedFilter, List<String> keyList, String lib, String typeCode, int numEntries, double errorRate, int hashType, int maxEntries) { @@ -242,7 +234,7 @@ public class TestBloomFilter { assertTrue(bloomFilter.mightContain(key), "Filter should have returned true for " + key); } if ("hadoop".equals(lib) && hashType == Hash.MURMUR_HASH) { - BloomFilter hudiBloomFilter = getBloomFilter(typeCode, numEntries, errorRate, maxEntries); + BloomFilter hudiBloomFilter = BloomFilterFactory.createBloomFilter(numEntries, errorRate, maxEntries, typeCode); for (String key : keyList) { hudiBloomFilter.add(key); }
