You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by tf...@apache.org on 2014/08/14 04:06:41 UTC

svn commit: r1617863 - in /lucene/dev/branches/branch_4x: ./ solr/ solr/core/ solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java

Author: tflobbe
Date: Thu Aug 14 02:06:40 2014
New Revision: 1617863

URL: http://svn.apache.org/r1617863
Log:
SOLR-6374: Improved TestIntervalFaceting: Avoid asserting on number of segments as that depends on the seed. Skip tests when multiple segments can't be generated easily

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/solr/   (props changed)
    lucene/dev/branches/branch_4x/solr/core/   (props changed)
    lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java

Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java?rev=1617863&r1=1617862&r2=1617863&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java Thu Aug 14 02:06:40 2014
@@ -68,7 +68,6 @@ public class TestIntervalFaceting extend
     assertU(adoc("id", "9", "test_ss_dv", "cat"));
     assertU(adoc("id", "10"));
     assertU(commit());
-    assertMultipleReaders();
 
     assertIntervalQueriesString("test_ss_dv");
     assertU(delQ("*:*"));
@@ -100,7 +99,18 @@ public class TestIntervalFaceting extend
     assertU(adoc("id", "9", "test_s_dv", "cat"));
     assertU(adoc("id", "10"));
     assertU(commit());
-    assertMultipleReaders();
+    int i = 11;
+    while (getNumberOfReaders() < 2 && i < 10) {
+      //try to get more than one segment
+      assertU(adoc("id", String.valueOf(i), "test_i_dv", String.valueOf(i)));
+      assertU(commit());
+    }
+    if (getNumberOfReaders() < 2) {
+      // It is OK if for some seeds we fall into this case (for example, TieredMergePolicy with
+      // segmentsPerTier=2). Most of the case we shouldn't and the test should proceed.
+      log.warn("Could not generate more than 1 segment for this seed. Will skip the test");
+      return;
+    }
 
     assertIntervalQueriesString("test_s_dv");
 
@@ -126,12 +136,11 @@ public class TestIntervalFaceting extend
     assertIntervalQuery("test_s_dv", "[Las\\,,Los Angeles]", "1");
   }
 
-  private void assertMultipleReaders() {
+  private int getNumberOfReaders() {
     RefCounted<SolrIndexSearcher> searcherRef = h.getCore().getSearcher();
     try {
       SolrIndexSearcher searcher = searcherRef.get();
-      int numReaders = searcher.getTopReaderContext().leaves().size();
-      assertTrue("Expected multiple reader leaves. Found " + numReaders, numReaders >= 2);
+      return searcher.getTopReaderContext().leaves().size();
     } finally {
       searcherRef.decref();
     }
@@ -708,7 +717,19 @@ public class TestIntervalFaceting extend
     assertU(adoc("id", "10"));
     assertU(adoc("id", "11", "test_i_dv", "10"));
     assertU(commit());
-    assertMultipleReaders();
+    
+    int i = 12;
+    while (getNumberOfReaders() < 2 && i < 10) {
+      //try to get more than one segment
+      assertU(adoc("id", String.valueOf(i), "test_s_dv", String.valueOf(i)));
+      assertU(commit());
+    }
+    if (getNumberOfReaders() < 2) {
+      // It is OK if for some seeds we fall into this case (for example, TieredMergePolicy with
+      // segmentsPerTier=2). Most of the case we shouldn't and the test should proceed.
+      log.warn("Could not generate more than 1 segment for this seed. Will skip the test");
+      return;
+    }
 
     assertIntervalQueriesNumeric("test_i_dv");
   }