You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2019/05/02 21:00:22 UTC

[jspwiki] branch master updated: ensure failing test runs after lucene indexing has taken place; reapply last change on TestEngine regarding attachment directory

This is an automated email from the ASF dual-hosted git repository.

juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git


The following commit(s) were added to refs/heads/master by this push:
     new d5f9f4c  ensure failing test runs after lucene indexing has taken place; reapply last change on TestEngine regarding attachment directory
d5f9f4c is described below

commit d5f9f4cd0abbe1f5a67d9119c60f3a1199a7515c
Author: juanpablo <ju...@apache.org>
AuthorDate: Thu May 2 22:59:57 2019 +0200

    ensure failing test runs after lucene indexing has taken place; reapply last change on TestEngine regarding attachment directory
---
 .../apache/wiki/search/LuceneSearchProvider.java   | 10 ++++++++-
 .../src/test/java/org/apache/wiki/TestEngine.java  |  2 +-
 .../wiki/search/tika/TikaSearchProviderTest.java   | 24 ++++++++++++++--------
 .../src/test/resources/jspwiki-custom.properties   |  3 +++
 4 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java
index 5f15674..0abd4a7 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java
@@ -503,7 +503,6 @@ public class LuceneSearchProvider implements SearchProvider {
         }
     }
 
-
     /**
      *  Adds a page-text pair to the lucene update queue.  Safe to call always
      *
@@ -534,6 +533,15 @@ public class LuceneSearchProvider implements SearchProvider {
     }
 
     /**
+     * Returns a copy of the list of lucene's pending updates - useful for testing.
+     *
+     * @return a copy of the list of lucene's pending updates.
+     */
+    public List< Object[] > pendingUpdates() {
+        return new ArrayList<>( m_updates );
+    }
+
+    /**
      *  {@inheritDoc}
      */
     @Override
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/TestEngine.java b/jspwiki-main/src/test/java/org/apache/wiki/TestEngine.java
index 123c6a6..f372177 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/TestEngine.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/TestEngine.java
@@ -425,7 +425,7 @@ public class TestEngine extends WikiEngine
                                stripNumbers.replaceAll( "\\d", StringUtils.EMPTY ) + System.currentTimeMillis();
         props.put( AuthenticationManager.PROP_LOGIN_THROTTLING, "false" );
         props.setProperty( "jspwiki.fileSystemProvider.pageDir", testDir );
-        // props.setProperty( "jspwiki.basicAttachmentProvider.storageDir", testDir );
+        props.setProperty( "jspwiki.basicAttachmentProvider.storageDir", testDir );
         return props;
     }
 
diff --git a/jspwiki-tika-searchprovider/src/test/java/org/apache/wiki/search/tika/TikaSearchProviderTest.java b/jspwiki-tika-searchprovider/src/test/java/org/apache/wiki/search/tika/TikaSearchProviderTest.java
index 9eb3b20..e53dc43 100644
--- a/jspwiki-tika-searchprovider/src/test/java/org/apache/wiki/search/tika/TikaSearchProviderTest.java
+++ b/jspwiki-tika-searchprovider/src/test/java/org/apache/wiki/search/tika/TikaSearchProviderTest.java
@@ -33,8 +33,8 @@ import java.util.Properties;
 
 public class TikaSearchProviderTest {
 
-    private static final long SLEEP_TIME = 2_000L;
-    private static final int SLEEP_COUNT = 50;
+    private static final long SLEEP_TIME = 200L;
+    private static final int SLEEP_COUNT = 500;
     TestEngine engine;
     Properties props;
 
@@ -55,10 +55,20 @@ public class TikaSearchProviderTest {
         engine.addAttachment( "test-tika", "aaa-diagram.pdf", filePdf );
         engine.addAttachment( "test-tika", "favicon.png", filePng );
 
+        TikaSearchProvider tsp = ( TikaSearchProvider )engine.getSearchManager().getSearchEngine();
+        while( !tsp.pendingUpdates().isEmpty() ) { // allow Lucene full index to finish
+            Thread.sleep( 100L );
+        }
+
         engine.getSearchManager().getSearchEngine().reindexPage( engine.getPage( "test-tika" ) );
+
+        while( !tsp.pendingUpdates().isEmpty() ) { // allow Lucene reindex to finish
+            Thread.sleep( 100L );
+        }
+
         Collection< SearchResult > res = waitForIndex( "favicon.png" , "testGetAttachmentContent" );
         Assertions.assertNotNull( res );
-        Assertions.assertEquals( 1, res.size(), debugSearchResults( res ) );
+        Assertions.assertEquals( 2, res.size(), debugSearchResults( res ) );
 
         res = waitForIndex( "application\\/pdf" , "testGetAttachmentContent" );
         Assertions.assertNotNull( res );
@@ -80,18 +90,16 @@ public class TikaSearchProviderTest {
      * Should cover for both index and initial delay
      */
     Collection< SearchResult > waitForIndex( String text, String testName ) throws Exception {
-        Collection< SearchResult > res = null;
+        MockHttpServletRequest request = engine.newHttpRequest();
+        WikiContext ctx = engine.createContext( request, WikiContext.VIEW );
+        Collection< SearchResult > res = engine.getSearchManager().findPages( text, ctx );
         for( long l = 0; l < SLEEP_COUNT; l++ ) {
             if( res == null || res.isEmpty() ) {
                 Thread.sleep( SLEEP_TIME );
             } else {
                 break;
             }
-            MockHttpServletRequest request = engine.newHttpRequest();
-            WikiContext ctx = engine.createContext( request, WikiContext.EDIT );
-
             res = engine.getSearchManager().findPages( text, ctx );
-
         }
         return res;
     }
diff --git a/jspwiki-tika-searchprovider/src/test/resources/jspwiki-custom.properties b/jspwiki-tika-searchprovider/src/test/resources/jspwiki-custom.properties
index ebc68be..66a4c74 100644
--- a/jspwiki-tika-searchprovider/src/test/resources/jspwiki-custom.properties
+++ b/jspwiki-tika-searchprovider/src/test/resources/jspwiki-custom.properties
@@ -22,6 +22,7 @@ jspwiki.fileSystemProvider.pageDir = target/test-classes/testrepository
 jspwiki.workDir = target/test-classes/testworkdir
 jspwiki.searchProvider = org.apache.wiki.search.tika.TikaSearchProvider
 jspwiki.lucene.initialdelay = 1
+jspwiki.lucene.indexdelay = 1
 
 jspwiki.translatorReader.camelCaseLinks = true
 jspwiki.breakTitleWithSpaces = true
@@ -45,6 +46,8 @@ jspwiki.rss.fileName=./target/rss.rdf
 jspwiki.xmlGroupDatabaseFile = target/test-classes/groupdatabase.xml
 jspwiki.xmlUserDatabaseFile = target/test-classes/userdatabase.xml
 
+log4j.logger.org.apache.wiki.search=DEBUG,ConsoleAppender
+
 log4j.logger.SecurityLog=INFO, SecurityAppender
 log4j.appender.SecurityAppender = org.apache.log4j.RollingFileAppender
 log4j.appender.SecurityAppender.File = ./target/logs/security.log