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 my...@apache.org on 2014/06/18 20:05:26 UTC

svn commit: r1603557 - /db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/EnvTest.java

Author: myrnavl
Date: Wed Jun 18 18:05:25 2014
New Revision: 1603557

URL: http://svn.apache.org/r1603557
Log:
DERBY-4808; write a test that checks that optional packages are in place and clearly exposes when this is not the case
   Adding some more checks to the EnvTest, plus modifying output mechanism

Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/EnvTest.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/EnvTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/EnvTest.java?rev=1603557&r1=1603556&r2=1603557&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/EnvTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/EnvTest.java Wed Jun 18 18:05:25 2014
@@ -19,6 +19,15 @@
  */
 package org.apache.derbyTesting.junit;
 
+import java.io.PrintStream;
+import java.security.AccessController;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
 import junit.framework.TestCase;
 
 /**
@@ -36,41 +45,143 @@ public class EnvTest extends TestCase {
 	{
 		super(name);
 	}
+	
+    /**
+     * Print trace string.
+     * @param text String to print
+     */
+    public void traceit(final String text) {
+        setName(text);
+        PrintStream out = System.out;
+        String KEY_TRACE = "derby.tests.trace";
+        if (Boolean.valueOf(
+                getSystemProperties().getProperty(KEY_TRACE)).
+                booleanValue()) 
+        {
+            out.println(text);
+        }
+    }
+    
+    /**
+     * Get the system properties in a privileged block.
+     *
+     * @return the system properties.
+     */
+    public  static final Properties getSystemProperties() {
+        // Fetch system properties in a privileged block.
+        return AccessController.doPrivileged(
+                new PrivilegedAction<Properties>() {
+            public Properties run() {
+                return System.getProperties();
+            }
+        });
+    }
 	/*
 	** Tests of the JDBC.vmSupportsXXX to see which JDBC support is available.
 	*/
 	public void testJSR169() {
-		setName(JDBC.vmSupportsJSR169() + "_vmSupportsJSR169()");
+        traceit(String.valueOf(JDBC.vmSupportsJSR169()) +
+            "_vmSupportsJSR169()");
 	}
 	public void testJDBC3() {
-		setName(JDBC.vmSupportsJDBC3() + "_vmSupportsJDBC3()");
-	}
-	public void testJDBC4() {
-		setName(JDBC.vmSupportsJDBC4() + "_vmSupportsJDBC4()");
+        traceit(String.valueOf(JDBC.vmSupportsJDBC3()) +
+                "_vmSupportsJDBC3()");
 	}
+    public void testJDBC4() {
+        traceit(String.valueOf(JDBC.vmSupportsJDBC4()) +
+                "_vmSupportsJDBC4()");
+    }
+    public void testJDBC41() {
+        traceit(String.valueOf(JDBC.vmSupportsJDBC41()) +
+                "_vmSupportsJDBC41()");
+    }
+    public void testJDBC42() {
+        traceit(String.valueOf(JDBC.vmSupportsJDBC42()) +
+                "_vmSupportsJDBC42()");
+    }
+	
+	
 	/*
 	** Tests of the Derby.hasXXX to see which Derby code is
 	** available for the tests.
 	*/
 	public void testHasServer() {
-		setName(Derby.hasServer() + "_hasServer");
+        traceit(String.valueOf(Derby.hasServer() + "_hasServer"));
 	}
 	public void testHasClient() {
-		setName(Derby.hasClient() + "_hasClient");
+        traceit(String.valueOf(Derby.hasClient() + "_hasClient"));
 	}
 	public void testHasEmbedded() {
-		setName(Derby.hasEmbedded() + "_hasEmbedded");
+        traceit(String.valueOf(Derby.hasEmbedded() + "_hasEmbedded"));
 	}
 	public void testHasTools() {
-		setName(Derby.hasTools() + "_hasTools");
+        traceit(String.valueOf(Derby.hasTools() + "_hasTools"));
 	}
     /*
     ** XML related tests
     */
     public void testClasspathHasXalanAndJAXP() {
-        setName(XML.classpathHasJAXP() + "_classpathHasJAXP");
+        traceit(String.valueOf(XML.classpathHasJAXP() + "_classpathHasJAXP"));
     }
     public void testClasspathMeetsXMLReqs() {
-        setName(XML.classpathMeetsXMLReqs() + "_classpathMeetsXMLReqs");
+        traceit(String.valueOf(XML.classpathMeetsXMLReqs() +
+                "_classpathMeetsXMLReqs"));
+    }
+    public void testHasLuceneCoreJar() {
+        traceit(String.valueOf(JDBC.HAVE_LUCENE_CORE + "_hasLuceneCore"));
+    }
+    public void testHasLuceneQueryParserJar() {
+        traceit(String.valueOf(JDBC.HAVE_LUCENE_QUERYPARSER + 
+                "_hasLuceneQueryParser"));
+    }
+    public void testHasLuceneAnalyzersJar() {
+        traceit(String.valueOf(JDBC.HAVE_LUCENE_ANALYZERS + 
+                "_hasLuceneAnalyzers"));
+    }
+    
+    public void testHasLDAPConfig() {
+        // we need a bunch of properties for ldap testing
+        Properties props = getSystemProperties();
+        List<String> ldapSettings = new ArrayList<String>();
+        ldapSettings.add(props.getProperty("derbyTesting.ldapPassword"));
+        ldapSettings.add(props.getProperty("derbyTesting.ldapServer"));
+        ldapSettings.add(props.getProperty("derbyTesting.ldapPort"));
+        ldapSettings.add(props.getProperty("derbyTesting.dnString"));
+        ldapSettings.add(props.getProperty("derbyTesting.ldapContextFactory"));
+        boolean sofarsogood=true;
+        for (String s:ldapSettings) {
+            if (s == null || s.length()== 0 || s.isEmpty())
+            {
+                sofarsogood=false;
+                break;
+            }
+        }
+        traceit(String.valueOf(sofarsogood) + "_hasLDAPConfiguration");
+    }
+    
+    public void testHasJNDISupport() {
+        traceit(String.valueOf(JDBC.vmSupportsJNDI() + 
+                "_classpathMeetsJNDIReqs"));
+    }
+    
+    public void testHasBasicEncryptionSupport() {
+        try {
+            // First check for the preferred default, and return it if present
+            MessageDigest.getInstance("SHA-256");
+            traceit("true_hasBasicEncryptionAlgorithmSupport");
+        } catch (NoSuchAlgorithmException nsae) {
+            // Couldn't find the preferred algorithm
+            traceit("false_hasBasicEncryptionAlgorithmSupport");
+        }
+    }
+    
+    public void testHasSubStandardEncryptionSupport() {
+        try {
+            // First check for the preferred default, and return it if present
+            MessageDigest.getInstance("SHA-1");
+            traceit("true_hasSubstandardEncryptionAlgorithmSupport");
+        } catch (NoSuchAlgorithmException nsae) {
+            traceit("false_hasSubStandardEncryptionAlgorithmSupport");
+        }
     }
 }