You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by th...@apache.org on 2026/03/03 14:49:58 UTC
(jackrabbit-oak) 01/01: OAK-12122: add fixed seed and improve logging in DataStoreCommandTest
This is an automated email from the ASF dual-hosted git repository.
thomasm pushed a commit to branch OAK-12122
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit e7f225fcf5c6cae093e074b76693028181b16b9f
Author: Thomas Mueller <mu...@adobe.com>
AuthorDate: Tue Mar 3 15:41:17 2026 +0100
OAK-12122: add fixed seed and improve logging in DataStoreCommandTest
- Use Random(42) in prepareData for reproducible test data
- Add logFilesInDump when expected file is missing, listing all files with sizes
Made-with: Cursor
---
.../jackrabbit/oak/run/DataStoreCommandTest.java | 38 ++++++++++++++++++++--
1 file changed, 35 insertions(+), 3 deletions(-)
diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
index 5bdc3fa0b8..366b1e61ca 100644
--- a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
+++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
@@ -177,7 +177,7 @@ public class DataStoreCommandTest {
Data data = new Data();
List<Integer> toBeDeleted = new ArrayList<>();
- Random rand = new Random();
+ Random rand = new Random(42);
for (int i = 0; i < numMaxDeletions; i++) {
int n = rand.nextInt(numBlobs);
if (!toBeDeleted.contains(n)) {
@@ -201,7 +201,7 @@ public class DataStoreCommandTest {
}
for (int i = 0; i < numBlobs; i++) {
List<String> valuesList = new ArrayList<String>(map.keySet());
- int randomIndex = new Random().nextInt(valuesList.size());
+ int randomIndex = rand.nextInt(valuesList.size());
String pathRoot = valuesList.get(randomIndex);
@@ -901,12 +901,44 @@ public class DataStoreCommandTest {
private static void assertFileEquals(File dump, String prefix, Set<String> blobsAdded, String dirPrefix)
throws IOException {
File file = (dirPrefix == null) ? filterFiles(dump, prefix) : filterFiles(dump, dirPrefix, prefix);
- Assert.assertNotNull(file);
+ if (file == null || !file.exists()) {
+ logFilesInDump(dump, prefix);
+ }
+ Assert.assertNotNull("Expected file with prefix " + prefix + " in " + dump.getAbsolutePath(), file);
Assert.assertTrue(file.exists());
assertEquals(blobsAdded,
FileIOUtils.readStringsAsSet(new FileInputStream(file), true));
}
+ private static void logFilesInDump(File dump, String prefix) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("Expected file with prefix \"").append(prefix).append("\" not found in ")
+ .append(dump.getAbsolutePath()).append(". Contents:");
+ if (!dump.exists()) {
+ sb.append(" directory does not exist");
+ } else {
+ appendFilesWithSizes(sb, dump, "");
+ }
+ log.warn(sb.toString());
+ }
+
+ private static void appendFilesWithSizes(StringBuilder sb, File dir, String indent) {
+ File[] files = dir.listFiles();
+ if (files == null) {
+ sb.append(indent).append(" (unreadable)");
+ return;
+ }
+ for (File f : files) {
+ if (f.isDirectory()) {
+ sb.append("\n").append(indent).append(f.getName()).append("/");
+ appendFilesWithSizes(sb, f, indent + " ");
+ } else {
+ sb.append("\n").append(indent).append(f.getName())
+ .append(" (").append(f.length()).append(" bytes)");
+ }
+ }
+ }
+
private static void assertFileNull(File dump, String prefix) {
File file = filterFiles(dump, prefix);
Assert.assertNull(file);