You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2015/04/01 05:55:45 UTC

svn commit: r1670551 - in /lucene/dev/trunk: ./ lucene/ lucene/core/ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java

Author: rmuir
Date: Wed Apr  1 03:55:45 2015
New Revision: 1670551

URL: http://svn.apache.org/r1670551
Log:
make this test more verbose when it fails

Modified:
    lucene/dev/trunk/   (props changed)
    lucene/dev/trunk/lucene/   (props changed)
    lucene/dev/trunk/lucene/core/   (props changed)
    lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java

Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java?rev=1670551&r1=1670550&r2=1670551&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java Wed Apr  1 03:55:45 2015
@@ -18,12 +18,18 @@ package org.apache.lucene.index;
  */
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.IOContext;
 import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.TestUtil;
@@ -146,6 +152,7 @@ public class TestIndexWriterForceMerge e
     if (VERBOSE) {
       System.out.println("TEST: start disk usage = " + startDiskUsage);
     }
+    String startListing = listFiles(dir);
 
     dir.resetMaxUsedSizeInBytes();
     dir.setTrackDiskUsage(true);
@@ -182,10 +189,31 @@ public class TestIndexWriterForceMerge e
         + startDiskUsage + " bytes; final usage was " + finalDiskUsage
         + " bytes; max temp usage was " + maxDiskUsage
         + " but should have been " + (3 * maxStartFinalDiskUsage)
-        + " (= 3X starting usage)", maxDiskUsage <= 3 * maxStartFinalDiskUsage);
+        + " (= 3X starting usage), BEFORE=" + startListing + "AFTER=" + listFiles(dir), maxDiskUsage <= 3 * maxStartFinalDiskUsage);
     dir.close();
   }
   
+  // print out listing of files and sizes, but recurse into CFS to debug nested files there.
+  private String listFiles(Directory dir) throws IOException {
+    SegmentInfos infos = SegmentInfos.readLatestCommit(dir);
+    StringBuilder sb = new StringBuilder();
+    sb.append(System.lineSeparator());
+    for (SegmentCommitInfo info : infos) {
+      for (String file : info.files()) {
+        sb.append(String.format(Locale.ROOT, "%-20s%d%n", file, dir.fileLength(file)));
+      }
+      if (info.info.getUseCompoundFile()) {
+        try (Directory cfs = info.info.getCodec().compoundFormat().getCompoundReader(dir, info.info, IOContext.DEFAULT)) {
+          for (String file : cfs.listAll()) {
+            sb.append(String.format(Locale.ROOT, " |- (inside compound file) %-20s%d%n", file, cfs.fileLength(file)));
+          }
+        }
+      }
+    }
+    sb.append(System.lineSeparator());
+    return sb.toString();
+  }
+  
   // Test calling forceMerge(1, false) whereby forceMerge is kicked
   // off but we don't wait for it to finish (but
   // writer.close()) does wait