1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
|
/*
*
* Derby - Class org.apache.derbyTesting.junit.EnvTest
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific
* language governing permissions and limitations under the License.
*/
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;
/**
* Simple Junit "test" that runs a number of fixtures to
* show the environment a test would run in.
* A fixture changes its name based upon the return
* of a method that checks for some environmental condition,
* e.g. does this vm support JDBC 3.
* Meant as a simple aid to help determine any environment problems.
*
*/
public class EnvTest extends TestCase {
public EnvTest(String name)
{
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() {
traceit(String.valueOf(JDBC.vmSupportsJSR169()) +
"_vmSupportsJSR169()");
}
public void testJDBC3() {
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() {
traceit(String.valueOf(Derby.hasServer() + "_hasServer"));
}
public void testHasClient() {
traceit(String.valueOf(Derby.hasClient() + "_hasClient"));
}
public void testHasEmbedded() {
traceit(String.valueOf(Derby.hasEmbedded() + "_hasEmbedded"));
}
public void testHasTools() {
traceit(String.valueOf(Derby.hasTools() + "_hasTools"));
}
/*
** XML related tests
*/
public void testClasspathHasXalanAndJAXP() {
traceit(String.valueOf(XML.classpathHasJAXP() + "_classpathHasJAXP"));
}
public void testClasspathMeetsXMLReqs() {
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");
}
}
}
|