This is an automated email from the ASF dual-hosted git repository.
ashvin pushed a commit to branch
658-testbasefileupdatesextractor-convertdiff-is-flaky
in repository https://gitbox.apache.org/repos/asf/incubator-xtable.git
The following commit(s) were added to
refs/heads/658-testbasefileupdatesextractor-convertdiff-is-flaky by this push:
new d8b694b2 Fix flaky test, ignore order of elements in list validation
d8b694b2 is described below
commit d8b694b239e6370407e0d3c9addb5f0264bf4c78
Author: Ashvin Agrawal <[email protected]>
AuthorDate: Wed Mar 5 16:21:19 2025 -0800
Fix flaky test, ignore order of elements in list validation
---
.../apache/xtable/hudi/TestBaseFileUpdatesExtractor.java | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git
a/xtable-core/src/test/java/org/apache/xtable/hudi/TestBaseFileUpdatesExtractor.java
b/xtable-core/src/test/java/org/apache/xtable/hudi/TestBaseFileUpdatesExtractor.java
index 8f3b3f7e..df345460 100644
---
a/xtable-core/src/test/java/org/apache/xtable/hudi/TestBaseFileUpdatesExtractor.java
+++
b/xtable-core/src/test/java/org/apache/xtable/hudi/TestBaseFileUpdatesExtractor.java
@@ -28,6 +28,7 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -135,7 +136,7 @@ public class TestBaseFileUpdatesExtractor {
expectedPartitionToReplacedFileIds.put(
partitionPath1, Arrays.asList(fileName3, fileIdForFile4));
expectedPartitionToReplacedFileIds.put(partitionPath2,
Collections.singletonList(fileName5));
- assertEquals(
+ assertEqualsIgnoreOrder(
expectedPartitionToReplacedFileIds,
replaceMetadata.getPartitionToReplacedFileIds());
// validate added files
@@ -146,6 +147,16 @@ public class TestBaseFileUpdatesExtractor {
assertWriteStatusesEquivalent(expectedWriteStatuses,
replaceMetadata.getWriteStatuses());
}
+ private void assertEqualsIgnoreOrder(
+ Map<String, List<String>> expected, Map<String, List<String>> actual) {
+ for (Map.Entry<String, List<String>> entry : expected.entrySet()) {
+ List<?> expectedList = entry.getValue();
+ List<?> actualList = actual.get(entry.getKey());
+ assertEquals(expectedList.size(), actualList.size());
+ assertEquals(new HashSet<>(expectedList), new HashSet<>(actualList));
+ }
+ }
+
@Test
void extractSnapshotChanges_emptyTargetTable() throws IOException {
String tableBasePath =
tempDir.resolve(UUID.randomUUID().toString()).toString();