You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2014/03/25 17:19:29 UTC

svn commit: r1581403 - in /lucene/dev/branches/branch_4x: ./ dev-tools/ lucene/ lucene/analysis/ lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/std40/ lucene...

Author: hossman
Date: Tue Mar 25 16:19:27 2014
New Revision: 1581403

URL: http://svn.apache.org/r1581403
Log:
SOLR-5783: harden tests (merge r1581398)

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/dev-tools/   (props changed)
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/BUILD.txt   (props changed)
    lucene/dev/branches/branch_4x/lucene/JRE_VERSION_MIGRATION.txt   (props changed)
    lucene/dev/branches/branch_4x/lucene/LICENSE.txt   (props changed)
    lucene/dev/branches/branch_4x/lucene/MIGRATE.txt   (props changed)
    lucene/dev/branches/branch_4x/lucene/NOTICE.txt   (props changed)
    lucene/dev/branches/branch_4x/lucene/README.txt   (props changed)
    lucene/dev/branches/branch_4x/lucene/SYSTEM_REQUIREMENTS.txt   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/Lucene47WordDelimiterFilter.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/std40/ASCIITLD.jflex-macro   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/std40/SUPPLEMENTARY.jflex-macro   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/std40/StandardTokenizerImpl40.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/std40/StandardTokenizerImpl40.jflex   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/std40/UAX29URLEmailTokenizerImpl40.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/std40/UAX29URLEmailTokenizerImpl40.jflex   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/std40/package.html   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestLucene47WordDelimiterFilter.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/icu/src/java/org/apache/lucene/collation/ICUCollationKeyFilterFactory.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/backwards/   (props changed)
    lucene/dev/branches/branch_4x/lucene/benchmark/   (props changed)
    lucene/dev/branches/branch_4x/lucene/build.xml   (props changed)
    lucene/dev/branches/branch_4x/lucene/classification/   (props changed)
    lucene/dev/branches/branch_4x/lucene/classification/build.xml   (props changed)
    lucene/dev/branches/branch_4x/lucene/classification/ivy.xml   (props changed)
    lucene/dev/branches/branch_4x/lucene/classification/src/   (props changed)
    lucene/dev/branches/branch_4x/lucene/codecs/   (props changed)
    lucene/dev/branches/branch_4x/lucene/common-build.xml   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.cfs.zip   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.nocfs.zip   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.optimized.cfs.zip   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.optimized.nocfs.zip   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestSort.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestSortDocValues.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestSortRandom.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestTotalHitCountCollector.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/demo/   (props changed)
    lucene/dev/branches/branch_4x/lucene/expressions/   (props changed)
    lucene/dev/branches/branch_4x/lucene/facet/   (props changed)
    lucene/dev/branches/branch_4x/lucene/grouping/   (props changed)
    lucene/dev/branches/branch_4x/lucene/highlighter/   (props changed)
    lucene/dev/branches/branch_4x/lucene/ivy-settings.xml   (props changed)
    lucene/dev/branches/branch_4x/lucene/ivy-versions.properties   (props changed)
    lucene/dev/branches/branch_4x/lucene/join/   (props changed)
    lucene/dev/branches/branch_4x/lucene/licenses/   (props changed)
    lucene/dev/branches/branch_4x/lucene/memory/   (props changed)
    lucene/dev/branches/branch_4x/lucene/misc/   (props changed)
    lucene/dev/branches/branch_4x/lucene/module-build.xml   (props changed)
    lucene/dev/branches/branch_4x/lucene/queries/   (props changed)
    lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionQuerySort.java   (props changed)
    lucene/dev/branches/branch_4x/lucene/queryparser/   (props changed)
    lucene/dev/branches/branch_4x/lucene/replicator/   (props changed)
    lucene/dev/branches/branch_4x/lucene/sandbox/   (props changed)
    lucene/dev/branches/branch_4x/lucene/site/   (props changed)
    lucene/dev/branches/branch_4x/lucene/spatial/   (props changed)
    lucene/dev/branches/branch_4x/lucene/spatial/src/test-files/data/simple-bbox.txt   (props changed)
    lucene/dev/branches/branch_4x/lucene/spatial/src/test-files/simple-Queries-BBox.txt   (props changed)
    lucene/dev/branches/branch_4x/lucene/suggest/   (props changed)
    lucene/dev/branches/branch_4x/lucene/test-framework/   (props changed)
    lucene/dev/branches/branch_4x/lucene/tools/   (props changed)
    lucene/dev/branches/branch_4x/solr/   (props changed)
    lucene/dev/branches/branch_4x/solr/CHANGES.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/LICENSE.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/NOTICE.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/README.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/SYSTEM_REQUIREMENTS.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/build.xml   (props changed)
    lucene/dev/branches/branch_4x/solr/cloud-dev/   (props changed)
    lucene/dev/branches/branch_4x/solr/common-build.xml   (props changed)
    lucene/dev/branches/branch_4x/solr/contrib/   (props changed)
    lucene/dev/branches/branch_4x/solr/core/   (props changed)
    lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/TestConfig.java   (props changed)
    lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java
    lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java
    lucene/dev/branches/branch_4x/solr/example/   (props changed)
    lucene/dev/branches/branch_4x/solr/licenses/   (props changed)
    lucene/dev/branches/branch_4x/solr/licenses/httpclient-LICENSE-ASL.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/licenses/httpclient-NOTICE.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/licenses/httpcore-LICENSE-ASL.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/licenses/httpcore-NOTICE.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/licenses/httpmime-LICENSE-ASL.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/licenses/httpmime-NOTICE.txt   (props changed)
    lucene/dev/branches/branch_4x/solr/scripts/   (props changed)
    lucene/dev/branches/branch_4x/solr/site/   (props changed)
    lucene/dev/branches/branch_4x/solr/solrj/   (props changed)
    lucene/dev/branches/branch_4x/solr/test-framework/   (props changed)
    lucene/dev/branches/branch_4x/solr/webapp/   (props changed)

Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java?rev=1581403&r1=1581402&r2=1581403&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java Tue Mar 25 16:19:27 2014
@@ -105,10 +105,13 @@ public class TestIndexSearcher extends S
     int baseRefCount = rCtx3.reader().getRefCount();
     assertEquals(1, baseRefCount);
 
+    Object sr3SearcherRegAt = sr3.getSearcher().getStatistics().get("registeredAt");
     assertU(commit()); // nothing has changed
     SolrQueryRequest sr4 = req("q","foo");
     assertSame("nothing changed, searcher should be the same",
                sr3.getSearcher(), sr4.getSearcher());
+    assertEquals("nothing changed, searcher should not have been re-registered",
+                 sr3SearcherRegAt, sr4.getSearcher().getStatistics().get("registeredAt"));
     IndexReaderContext rCtx4 = sr4.getSearcher().getTopReaderContext();
 
     // force an index change so the registered searcher won't be the one we are testing (and

Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java?rev=1581403&r1=1581402&r2=1581403&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java Tue Mar 25 16:19:27 2014
@@ -105,7 +105,7 @@ public class TestSearcherReuse extends S
     try {
       // we make no index changes in this block, so the searcher should always be the same
       // NOTE: we *have* to call getSearcher() in advance, it's a delayed binding
-      final SolrIndexSearcher expectedSearcher = baseReq.getSearcher();
+      final SolrIndexSearcher expectedSearcher = getMainSearcher(baseReq);
 
       assertU(commit());
       assertSearcherHasNotChanged(expectedSearcher);
@@ -137,7 +137,8 @@ public class TestSearcherReuse extends S
     beforeReq = req("q","foo");
     try {
       // NOTE: we *have* to call getSearcher() in advance: delayed binding
-      SolrIndexSearcher before = beforeReq.getSearcher();
+      SolrIndexSearcher before = getMainSearcher(beforeReq);
+
       assertU(delI("1"));
       assertU(commit());
       assertSearcherHasChanged(before);
@@ -148,7 +149,8 @@ public class TestSearcherReuse extends S
     beforeReq = req("q","foo");
     try {
       // NOTE: we *have* to call getSearcher() in advance: delayed binding
-      SolrIndexSearcher before = beforeReq.getSearcher();
+      SolrIndexSearcher before = getMainSearcher(beforeReq);
+
       assertU(adoc("id", "0"));
       assertU(commit());
       assertSearcherHasChanged(before);
@@ -159,7 +161,8 @@ public class TestSearcherReuse extends S
     beforeReq = req("q","foo");
     try {
       // NOTE: we *have* to call getSearcher() in advance: delayed binding
-      SolrIndexSearcher before = beforeReq.getSearcher();
+      SolrIndexSearcher before = getMainSearcher(beforeReq);
+
       assertU(delQ("id:[0 TO 5]"));
       assertU(commit());
       assertSearcherHasChanged(before);
@@ -170,7 +173,7 @@ public class TestSearcherReuse extends S
     beforeReq = req("q","foo");
     try {
       // NOTE: we *have* to call getSearcher() in advance: delayed binding
-      SolrIndexSearcher before = beforeReq.getSearcher();
+      SolrIndexSearcher before = getMainSearcher(beforeReq);
 
       // create a new field & add it.
       assertTrue("schema not mutable", beforeReq.getSchema().isMutable());
@@ -194,7 +197,7 @@ public class TestSearcherReuse extends S
       SolrQueryRequest afterReq = req("q","foo");
       try {
         assertSame(newSchema, afterReq.getSchema());
-        assertSame(newSchema, afterReq.getSearcher().getSchema());
+        assertSame(newSchema, getMainSearcher(afterReq).getSchema());
       } finally {
         afterReq.close();
       }
@@ -204,7 +207,26 @@ public class TestSearcherReuse extends S
     }
 
   }
-  
+ 
+  /**
+   * Helper method to get the searcher from a request, and assert that it's the main searcher
+   */
+  public static SolrIndexSearcher getMainSearcher(SolrQueryRequest req) {
+    SolrIndexSearcher s = req.getSearcher();
+    assertMainSearcher(s);
+    return s;
+  }
+
+  /**
+   * Sanity check that we didn't get a realtime (non-caching) searcher
+   */
+  public static void assertMainSearcher(SolrIndexSearcher s) {
+    assertTrue("Searcher isn't 'main': " + s.toString(),
+               // TODO brittle, better solution?
+               s.toString().contains(" main{"));
+    assertTrue("Searcher is non-caching", s.isCachingEnabled());
+  }
+ 
   /**
    * Given an existing searcher, creates a new SolrRequest, and verifies that the 
    * searcher in that request is <b>not</b> the same as the previous searcher -- 
@@ -213,7 +235,7 @@ public class TestSearcherReuse extends S
   public static void assertSearcherHasChanged(SolrIndexSearcher previous) {
     SolrQueryRequest req = req("*:*");
     try {
-      SolrIndexSearcher newSearcher = req.getSearcher();
+      SolrIndexSearcher newSearcher = getMainSearcher(req);
       assertNotSame(previous, newSearcher);
     } finally {
       req.close();
@@ -228,7 +250,8 @@ public class TestSearcherReuse extends S
   public static void assertSearcherHasNotChanged(SolrIndexSearcher expected) {
     SolrQueryRequest req = req("*:*");
     try {
-      assertSame(expected, req.getSearcher());
+      SolrIndexSearcher newSearcher = getMainSearcher(req);
+      assertSame(expected, newSearcher);
     } finally {
       req.close();
     }