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 02:21:29 UTC
svn commit: r1617858 -
/lucene/dev/trunk/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
Author: tflobbe
Date: Thu Aug 14 00:21:29 2014
New Revision: 1617858
URL: http://svn.apache.org/r1617858
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/trunk/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java?rev=1617858&r1=1617857&r2=1617858&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java Thu Aug 14 00:21:29 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");
}