You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by rh...@apache.org on 2014/04/21 19:23:34 UTC

svn commit: r1588933 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting: functionTests/tests/lang/ junit/

Author: rhillegas
Date: Mon Apr 21 17:23:33 2014
New Revision: 1588933

URL: http://svn.apache.org/r1588933
Log:
DERBY-6544: Run locale-sensitive Lucene tests in single-use databases; commit derby-6544-01-aa-singleUseDatabases.diff.

Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneCoarseAuthorizationTest.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportPermsTest.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportTest.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/luceneSupport.policy
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/TestConfiguration.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneCoarseAuthorizationTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneCoarseAuthorizationTest.java?rev=1588933&r1=1588932&r2=1588933&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneCoarseAuthorizationTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneCoarseAuthorizationTest.java Mon Apr 21 17:23:33 2014
@@ -39,10 +39,13 @@ import java.sql.Timestamp;
 import java.sql.Types;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Locale;
 import java.util.Properties;
+import org.apache.lucene.analysis.Analyzer;
 import junit.framework.Test;
 import junit.framework.TestSuite;
 import org.apache.derby.iapi.sql.conn.ConnectionUtil;
+import org.apache.derby.optional.api.LuceneUtils;
 import org.apache.derbyTesting.junit.BaseJDBCTestCase;
 import org.apache.derbyTesting.junit.JDBC;
 import org.apache.derbyTesting.junit.DatabasePropertyTestSetup;
@@ -69,9 +72,13 @@ public class LuceneCoarseAuthorizationTe
     private static  final   String      READ_WRITE_USER = "READWRITEUSER";
     private static  final   String[]    LEGAL_USERS = { RUTH, READ_ONLY_USER, READ_WRITE_USER };
 
+    private static  final   String      ENGLISH_ANALYZER =
+        "org.apache.derbyTesting.functionTests.tests.lang.LuceneCoarseAuthorizationTest.getEnglishAnalyzer";
+
     private static  final   String      LOAD_TOOL = "call syscs_util.syscs_register_tool( 'luceneSupport', true )";
     private static  final   String      UNLOAD_TOOL = "call syscs_util.syscs_register_tool( 'luceneSupport', false )";
-    private static  final   String      INDEX_POEMS = "call LuceneSupport.createIndex( 'ruth', 'poems', 'poemText', null )";
+    private static  final   String      INDEX_POEMS =
+        "call LuceneSupport.createIndex( 'ruth', 'poems', 'poemText', '" + ENGLISH_ANALYZER + "' )";
     private static  final   String      UPDATE_POEMS_INDEX =
         "call LuceneSupport.updateIndex( 'ruth', 'poems', 'poemText', 'org.apache.derby.optional.api.LuceneUtils.standardAnalyzer' )";
     private static  final   String      DROP_POEMS_INDEX = "call LuceneSupport.dropIndex( 'ruth', 'poems', 'poemText' )";
@@ -118,8 +125,9 @@ public class LuceneCoarseAuthorizationTe
             ( unsecureTest, LEGAL_USERS, "LuceneCoarsePermissions" );
 
         Test        coarseTest = new DatabasePropertyTestSetup( authenticatedTest, makeProperties() );
+        Test        singleUseTest = TestConfiguration.singleUseDatabaseDecorator( coarseTest );
 
-        return coarseTest;
+        return singleUseTest;
     }
     private static  Properties  makeProperties()
     {
@@ -201,7 +209,7 @@ public class LuceneCoarseAuthorizationTe
         String[][]  defaultIndexList =
             new String[][]
             {
-                { "RUTH", "POEMS", "POEMTEXT", "org.apache.derby.optional.api.LuceneUtils.defaultAnalyzer" },
+                { "RUTH", "POEMS", "POEMTEXT", ENGLISH_ANALYZER },
             };
 
         assertResults
@@ -292,6 +300,20 @@ public class LuceneCoarseAuthorizationTe
 
     ///////////////////////////////////////////////////////////////////////////////////
     //
+    // EXTERNAL ENTRY POINTS
+    //
+    ///////////////////////////////////////////////////////////////////////////////////
+
+    /** Return the Analyzer for an English Locale */
+    public  static  Analyzer    getEnglishAnalyzer()
+        throws Exception
+    {
+        return LuceneUtils.getAnalyzerForLocale( Locale.US );
+    }
+    
+
+    ///////////////////////////////////////////////////////////////////////////////////
+    //
     // MINIONS
     //
     ///////////////////////////////////////////////////////////////////////////////////

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportPermsTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportPermsTest.java?rev=1588933&r1=1588932&r2=1588933&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportPermsTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportPermsTest.java Mon Apr 21 17:23:33 2014
@@ -75,6 +75,8 @@ public class LuceneSupportPermsTest exte
     private static  final   String      LUCENE_VERSION_PROPERTY = "derby.tests.lucene.version";
     private static  String              LUCENE_VERSION = "LUCENE_45";
 
+    private static  final   String      DB_NAME = "lucenesupportpermsdb";
+
     private static  final   String      TEST_DBO = "TEST_DBO";
     private static  final   String      RUTH = "RUTH";
     private static  final   String      ALICE = "ALICE";
@@ -152,12 +154,19 @@ public class LuceneSupportPermsTest exte
         Test        secureTest = new SecurityManagerSetup( suite, POLICY_FILE );
         Test        authenticatedTest = DatabasePropertyTestSetup.builtinAuthentication
             ( secureTest, LEGAL_USERS, "LuceneSupportPermissions" );
-        Test        authorizedTest = TestConfiguration.sqlAuthorizationDecorator( authenticatedTest );
+        Test        authorizedTest = TestConfiguration.sqlAuthorizationDecoratorSingleUse( authenticatedTest, DB_NAME, false );
         Test        localizedTest = new LocaleTestSetup( authorizedTest, new Locale( LANGUAGE, COUNTRY ) );
 
         return localizedTest;
     }
 
+    protected void tearDown()
+        throws Exception
+    {
+        TestConfiguration.getCurrent().shutdownEngine();
+        super.tearDown();
+    }
+
     ///////////////////////////////////////////////////////////////////////////////////
     //
     // TESTS

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportTest.java?rev=1588933&r1=1588932&r2=1588933&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportTest.java Mon Apr 21 17:23:33 2014
@@ -53,7 +53,8 @@ public class LuceneSupportTest extends B
 		TestSuite suite = new TestSuite("LuceneSupportTest");
 
         Test    baseTest = TestConfiguration.embeddedSuite(LuceneSupportTest.class);
-        Test        localizedTest = new LocaleTestSetup( baseTest, new Locale( "en", "US" ) );
+        Test        singleUseTest = TestConfiguration.singleUseDatabaseDecorator( baseTest );
+        Test        localizedTest = new LocaleTestSetup( singleUseTest, new Locale( "en", "US" ) );
 		
 		suite.addTest(SecurityManagerSetup.noSecurityManager(localizedTest));
  

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/luceneSupport.policy
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/luceneSupport.policy?rev=1588933&r1=1588932&r2=1588933&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/luceneSupport.policy (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/luceneSupport.policy Mon Apr 21 17:23:33 2014
@@ -454,8 +454,8 @@ grant codeBase "${derbyTesting.codejar}d
   permission java.util.PropertyPermission "derby.system.home", "read";
 
   // all databases under derby.system.home 
-  permission java.io.FilePermission "${derby.system.home}${/}dbsqlauth${/}lucene", "read,write,delete";
-  permission java.io.FilePermission "${derby.system.home}${/}dbsqlauth${/}lucene${/}-", "read,write,delete";
+  permission java.io.FilePermission "${derby.system.home}${/}lucenesupportpermsdb${/}lucene", "read,write,delete";
+  permission java.io.FilePermission "${derby.system.home}${/}lucenesupportpermsdb${/}lucene${/}-", "read,write,delete";
 
   permission java.io.FilePermission "${derbyTesting.lucene.core.jar.file}", "read";
   permission java.util.PropertyPermission "user.dir", "read";
@@ -468,8 +468,8 @@ grant codeBase "${derbyTesting.codejar}d
 grant codeBase "${derbyTesting.lucene.core}"
 {
   // permissions for file access, write access only to sandbox:
-  permission java.io.FilePermission "${derby.system.home}${/}dbsqlauth${/}lucene", "read,write,delete";
-  permission java.io.FilePermission "${derby.system.home}${/}dbsqlauth${/}lucene${/}-", "read,write,delete";
+  permission java.io.FilePermission "${derby.system.home}${/}lucenesupportpermsdb${/}lucene", "read,write,delete";
+  permission java.io.FilePermission "${derby.system.home}${/}lucenesupportpermsdb${/}lucene${/}-", "read,write,delete";
   
   // Basic permissions needed for Lucene to work:
   permission java.util.PropertyPermission "user.dir", "read";

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/TestConfiguration.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/TestConfiguration.java?rev=1588933&r1=1588932&r2=1588933&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/TestConfiguration.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/TestConfiguration.java Mon Apr 21 17:23:33 2014
@@ -950,6 +950,19 @@ public final class TestConfiguration {
      */
     public static Test sqlAuthorizationDecoratorSingleUse(Test test)
     {
+        return sqlAuthorizationDecoratorSingleUse( test, DEFAULT_DBNAME_SQL, true );
+    }
+    
+    /**
+     * Same as sqlAuthorizationDecoratorSingleUse, except that you can name the database yourself.
+     *
+     * @param test Test to be decorated
+     * @return decorated test.
+     *
+     * @see TestConfiguration#sqlAuthorizationDecorator(Test test)
+     */
+    public static Test sqlAuthorizationDecoratorSingleUse(Test test, String dbName, boolean removeDatabase)
+    {
         // Set the SQL authorization mode as a database property
         // with a modified DatabasePropertyTestSetup that does not
         // reset it.
@@ -958,14 +971,20 @@ public final class TestConfiguration {
         Test setSQLAuthMode = DatabasePropertyTestSetup.getNoTeardownInstance(
                 test, sqlAuth, true);
 
-        setSQLAuthMode = new DatabaseChangeSetup(
-            new DropDatabaseSetup(setSQLAuthMode, DEFAULT_DBNAME_SQL) {
-                protected void tearDown() throws Exception {
-                    // test responsible for shutdown
-                    removeDatabase();
-                }
-            },
-            DEFAULT_DBNAME_SQL, DEFAULT_DBNAME_SQL, true);
+        if ( removeDatabase )
+        {
+            setSQLAuthMode =
+                new DropDatabaseSetup(setSQLAuthMode, dbName)
+                {
+                    protected void tearDown() throws Exception {
+                        // test responsible for shutdown
+                        removeDatabase();
+                    }
+                };
+        }
+        
+        setSQLAuthMode = new DatabaseChangeSetup
+            ( setSQLAuthMode, dbName, dbName, true );
 
         return changeUserDecorator(setSQLAuthMode,
                                    DerbyConstants.TEST_DBO,