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 2007/04/10 23:42:35 UTC
svn commit: r527317 - in
/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests:
master/ master/DerbyNet/ master/DerbyNetClient/ master/j9_13/ master/j9_22/
suites/ tests/jdbcapi/
Author: myrnavl
Date: Tue Apr 10 14:42:33 2007
New Revision: 527317
URL: http://svn.apache.org/viewvc?view=rev&rev=527317
Log:
DERBY-2492 - convert checkDriver test to junit test DriverTest
Added:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DriverTest.java (with props)
Removed:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/checkDriver.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/checkDriver.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/checkDriver.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/j9_13/checkDriver.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/j9_22/checkDriver.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDriver.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDriver_app.properties
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDriver_derby.properties
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetClientUseprocess.exclude
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetUseprocess.exclude
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCHarnessJavaTest.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetClientUseprocess.exclude
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetClientUseprocess.exclude?view=diff&rev=527317&r1=527316&r2=527317
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetClientUseprocess.exclude (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetClientUseprocess.exclude Tue Apr 10 14:42:33 2007
@@ -5,7 +5,6 @@
# jdbcapi/bestrowidentifier.sql - test fails when db2jcc is in classpath, complaining about
# java.lang.ExceptionInInitializerError
# and access denied (java.lang.RuntimePermission loadLibrary.db2jcct2). (????!)
-# jdbcapi/checkDriver.java subtest createdbwithspaces fails, probably expecting different dir
# junitTests/derbyNet/CompatibilityTest.java - exits the suite
# derbynet/DerbyNetAutoStart.java - exits the suite...
# derbynet/NSinSameJVM.java - fails with different thread names. probably ok...
@@ -28,7 +27,6 @@
#
jdbcapi/HoldabilityTest.junit
jdbcapi/bestrowidentifier.sql
-jdbcapi/checkDriver.java
junitTests/derbyNet/CompatibilityTest.java
derbynet/DerbyNetAutoStart.java
derbynet/NSinSameJVM.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetUseprocess.exclude
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetUseprocess.exclude?view=diff&rev=527317&r1=527316&r2=527317
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetUseprocess.exclude (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetUseprocess.exclude Tue Apr 10 14:42:33 2007
@@ -6,7 +6,6 @@
# jdbcapi/bestrowidentifier.sql - test fails when db2jcc is in classpath, complaining about
# java.lang.ExceptionInInitializerError
# and access denied (java.lang.RuntimePermission loadLibrary.db2jcct2). (????!)
-# jdbcapi/checkDriver.java - subtest createdbwithspaces fails, probably expecting different dir
# derbynet/NSinSameJVM.java - diff between thread and main. kind of ok, but fails.
# derbynet/DerbyNetAutoStart.java - exits suite...
# derbynet/getCurrentProperties.java - fails with different sessions
@@ -25,7 +24,6 @@
jdbcapi/maxfieldsize.java
jdbcapi/HoldabilityTest.junit
jdbcapi/bestrowidentifier.sql
-jdbcapi/checkDriver.java
derbynet/NSinSameJVM.java
derbynet/DerbyNetAutoStart.java
derbynet/getCurrentProperties.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall?view=diff&rev=527317&r1=527316&r2=527317
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall Tue Apr 10 14:42:33 2007
@@ -1,5 +1,4 @@
jdbcapi/bestrowidentifier.sql
-jdbcapi/checkDriver.java
jdbcapi/nullSQLText.java
jdbcapi/resultsetStream.java
jdbcapi/parameterMapping.java
Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DriverTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DriverTest.java?view=auto&rev=527317
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DriverTest.java (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DriverTest.java Tue Apr 10 14:42:33 2007
@@ -0,0 +1,504 @@
+/*
+
+Derby - Class org.apache.derbyTesting.functionTests.tests.jdbcapi.DriverTest
+
+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.functionTests.tests.jdbcapi;
+
+import java.io.File;
+import java.security.AccessController;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.Driver;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import org.apache.derbyTesting.junit.BaseJDBCTestCase;
+import org.apache.derbyTesting.junit.DatabasePropertyTestSetup;
+import org.apache.derbyTesting.junit.JDBC;
+import org.apache.derbyTesting.junit.TestConfiguration;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+*
+* This test tests java.sql.Driver methods.
+* Right now it just tests acceptsURL and some attributes
+* Not tested in this test:
+* - Tests for getPropertyInfo
+* - tests for connection attributes
+*/
+
+public class DriverTest extends BaseJDBCTestCase {
+
+ // DERBY-618 - Database name with spaces
+ private static String DB_NAME_WITH_SPACES = "db name with spaces";
+
+ /**
+ * Set of additional databases for tests that
+ * require a one-off database. The additional
+ * database decorator wraps all the tests and phases.
+ * They are only created if a test opens a
+ * connection against them. In hard upgrade the test
+ * must explictly upgrade the database.
+ * The databases are shutdown at the end of each phase.
+ */
+ static final String[] ADDITIONAL_DBS = {
+ DB_NAME_WITH_SPACES,
+ "testcreatedb1",
+ "testcreatedb2"
+ };
+
+ public DriverTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ // java.sql.Driver is not supported with JSR169, so return empty suite
+ if (JDBC.vmSupportsJSR169())
+ {
+ return new TestSuite(
+ "DriverTest tests java.sql.Driver, not supported with JSR169");
+ }
+ TestSuite suite = new TestSuite("DriverTest");
+ suite.addTest(baseSuite("DriverTest:embedded"));
+ suite.addTest(TestConfiguration.clientServerDecorator(
+ baseSuite("DriverTest:client")));
+ return suite;
+ }
+
+ public static Test baseSuite(String name) {
+
+ TestSuite suite = new TestSuite("DriverTest");
+ setBaseProps(suite, new DriverTest("testDriverCompliantVersion"));
+ setBaseProps(suite, new DriverTest("testAcceptsURL"));
+ setBaseProps(suite, new DriverTest("testEmbeddedAttributes"));
+ setBaseProps(suite, new DriverTest("testClientAttributes"));
+ setBaseProps(suite, new DriverTest("testClientURL"));
+ setBaseProps(suite, new DriverTest("testDbNameWithSpaces"));
+
+ // This test needs to run in a new single use database as we're setting
+ // a number of properties
+ TestSetup setup = TestConfiguration.singleUseDatabaseDecorator(suite);
+
+ // also, we need a couple of extra databases
+ for (int i = 0; i < ADDITIONAL_DBS.length; i++)
+ {
+ setup = TestConfiguration.additionalDatabaseDecorator(setup,
+ ADDITIONAL_DBS[i]);
+ }
+
+ return setup;
+ }
+
+ private static void setBaseProps(TestSuite suite, Test test)
+ {
+ Properties dbprops = new Properties();
+
+ // Use DatabasePropertyTestSetup to add some settings.
+ // DatabasePropertyTestSetup uses SYSCS_SET_DATABASE_PROPERTY
+ // so users are added at database level.
+ // Note, that authentication is not switched on.
+ dbprops.setProperty("derby.infolog.append", "true");
+ dbprops.setProperty("derby.debug.true", "AuthenticationTrace");
+ dbprops.setProperty("derby.user.APP", "xxxx");
+ dbprops.setProperty("derby.user.testuser", "testpass");
+ String dbName = TestConfiguration.getCurrent().getDefaultDatabaseName();
+ dbprops.setProperty("derby.database.users." + dbName, "testuser,APP");
+ test = new DatabasePropertyTestSetup (test, dbprops, true);
+ suite.addTest(test);
+ }
+
+ /**
+ * Load the driver and check java.sql.Driver.jdbcCompliant() and
+ * driver.get*Version
+ * @throws Exception
+ */
+ public static void testDriverCompliantVersion() throws Exception
+ {
+ String dbName = TestConfiguration.getCurrent().getDefaultDatabaseName();
+ String url = TestConfiguration.getCurrent().getJDBCUrl(dbName);
+
+ loadDriver();
+ String defaultdburl = url + ";create=true";
+
+ // Test that we loaded the right driver by making a connection
+ Driver driver = DriverManager.getDriver(defaultdburl);
+ Properties props = new Properties();
+ props.put("user", "testuser");
+ props.put("password", "testpass");
+ Connection conn = DriverManager.getConnection(defaultdburl, props);
+ // Driver should be jdbc compliant.
+ assertTrue(driver.jdbcCompliant());
+
+ // compare driver.get*Version() with DatabaseMetadata.getDriver*Version.
+ DatabaseMetaData dbmd = conn.getMetaData();
+
+ assertEquals(dbmd.getDriverMajorVersion(), driver.getMajorVersion());
+ assertEquals(dbmd.getDriverMinorVersion(), driver.getMinorVersion());
+
+ conn.close();
+ }
+
+ /**
+ * Check that drivers accept the correct urls and reject those for other supported drivers.
+ *
+ * @throws SQLException, Exception
+ */
+ public static void testAcceptsURL() throws SQLException, Exception {
+ String dbName = TestConfiguration.getCurrent().getDefaultDatabaseName();
+ String orgurl = TestConfiguration.getCurrent().getJDBCUrl(dbName);
+
+ loadDriver();
+ String defaultdburl = orgurl + ";create=true";
+
+ // Test that we loaded the right driver by making a connection
+ Driver driver = DriverManager.getDriver(defaultdburl);
+
+ int frameworkOffset;
+ int EMBEDDED_OFFSET = 0;
+ int DERBYNETCLIENT_OFFSET = 1;
+ int DERBYNET_OFFSET = 2; // JCC
+ if (usingDerbyNetClient())
+ frameworkOffset = DERBYNETCLIENT_OFFSET;
+ else if (usingDerbyNet())
+ frameworkOffset = DERBYNET_OFFSET; // JCC
+ else // assume (usingEmbedded())
+ frameworkOffset = EMBEDDED_OFFSET;
+
+ // URLS to check. New urls need to also be added to the acceptsUrl table
+ String EMBEDDED_URL = "jdbc:derby:";
+ String INVALID_URL = "jdbc:db2j:";
+ String hostName = TestConfiguration.getCurrent().getHostName();
+ int port = TestConfiguration.getCurrent().getPort();
+ String CLIENT_URL =
+ "jdbc:derby://"+hostName+":"+port+"/"+dbName+";create=true";
+ String JCC_URL =
+ "jdbc:derby:net://"+hostName+":"+port+"/"+dbName+";create=true";
+
+ String[] urls = new String[]
+ {
+ EMBEDDED_URL,
+ CLIENT_URL,
+ JCC_URL,
+ INVALID_URL,
+ };
+
+ // Table that shows whether tested urls should return true for
+ // acceptsURL under the given framework
+ // The acceptsURLTable uses the frameworkOffset column int he table
+ // to check for valid results for each framework
+ boolean[][] acceptsURLTable = new boolean[][]
+ {
+ // Framework/url EMBEDDED DERBYNETCLIENT DERBYNET (JCC)
+ /* EMBEDDED_URL*/ { true , false , false },
+ /* CLIENT_URL */ { false , true , false },
+ /* JCC_URL */ { false , false , true },
+ /* INVALID_URL */ { false , false , false }
+ };
+
+ for (int u = 0; u < urls.length;u++)
+ {
+ String url = urls[u];
+ boolean expectedAcceptance = acceptsURLTable[u][frameworkOffset];
+ boolean actualAcceptance = driver.acceptsURL(url);
+ assertEquals(expectedAcceptance, actualAcceptance);
+ }
+ }
+
+ /**
+ * Tests that embedded attributes can be specified in either url or info
+ * argument to connect
+ * DERBY-530. Only valid for embedded driver and client. JCC has a
+ * different url format for embedded attributes
+ */
+ public static void testEmbeddedAttributes() throws SQLException
+ {
+ // JCC can't take embedded attributes in info or as normal url
+ // attributes, so not tested here.
+ if (usingDerbyNet())
+ return;
+
+ String dbName = TestConfiguration.getCurrent().getDefaultDatabaseName();
+ String protocol =
+ TestConfiguration.getCurrent().getJDBCClient().getUrlBase();
+ if (usingDerbyNetClient())
+ protocol = protocol + TestConfiguration.getCurrent().getHostName()
+ + ":" + TestConfiguration.getCurrent().getPort() + "/";
+ String url = TestConfiguration.getCurrent().getJDBCUrl(dbName);
+
+ Properties info = new Properties();
+ // create attribute as property
+ info.setProperty("create","true");
+ // networkserver / DerbyNetClient tags on create to url
+ if (usingEmbedded())
+ assertConnect(true, protocol + "testcreatedb1", info);
+ else
+ assertConnect(false, protocol + "testcreatedb1", info);
+
+ // create attribute in url
+ if (usingEmbedded())
+ assertConnect(false, protocol + "testcreatedb2;create=true", null);
+ else
+ assertConnect(true, protocol + "testcreatedb2;create=true", null);
+
+ // user/password in properties
+ info.clear();
+ info.setProperty("user","APP");
+ info.setProperty("password", "xxxx");
+ if (usingEmbedded())
+ assertConnect(true, url, info);
+ else
+ assertConnect(false, url, info);
+
+ // user/password in url
+ assertConnect(false,
+ url + ";user=testuser;password=testpass", null);
+
+ // user in url, password in property
+ info.clear();
+ info.setProperty("password","testpass");
+ assertConnect(false, url + ";user=testusr",info);
+
+ // different users in url and in properties. URL is the winner
+ info.clear();
+ info.setProperty("user","APP");
+ info.setProperty("password","xxxx");
+ assertConnect(false,
+ url + ";user=testuser;password=testpass", null);
+
+ // shutdown with properties
+ info.clear();
+ info.setProperty("shutdown","true");
+ try {
+ assertConnect(false, protocol + "testcreatedb1", info);
+ } catch (SQLException se)
+ {
+ assertSQLState("08006", se);
+ }
+ }
+
+ /**
+ * Tests that client side attributes cann be specified in either url or
+ * as info argument to connect.
+ * DERBY-530.
+ */
+ public static void testClientAttributes() throws SQLException
+ {
+ if (!usingDerbyNetClient())
+ return;
+
+ String dbName = TestConfiguration.getCurrent().getDefaultDatabaseName();
+ String url = TestConfiguration.getCurrent().getJDBCUrl(dbName);
+
+ Properties info = new Properties();
+ String traceFile = "trace1.out";
+
+ // traceFile attribute in url
+ assertConnect(true, url + ";traceFile=" + traceFile, info);
+
+ traceFile = "trace2.out";
+ // traceFile attribute in property
+ info.setProperty("traceFile",traceFile);
+ assertConnect(false, url, info);
+ assertTraceFilesExist();
+ }
+
+ /**
+ * Check that trace files exist
+ */
+ private static void assertTraceFilesExist()
+ {
+
+ AccessController.doPrivileged(new java.security.PrivilegedAction() {
+ public Object run() {
+ for (int i=0 ; i < 2 ; i++)
+ {
+ String traceFileName = "trace" + (i+1) + ".out";
+ File traceFile = new File(traceFileName);
+ //System.out.println("user.dir=" + System.getProperty("user.dir"));
+ //System.out.println("fullpath = " + traceFile.getAbsolutePath());
+ assertTrue(traceFile.exists());
+ }
+ return null;
+ }
+ });
+ }
+
+ /**
+ * Tests client URLs to see connection is successful or the correct exception is thrown.
+ */
+ public static void testClientURL() throws SQLException {
+ if (!usingDerbyNetClient())
+ return;
+
+ String dbName = TestConfiguration.getCurrent().getDefaultDatabaseName();
+ String protocol =
+ TestConfiguration.getCurrent().getJDBCClient().getUrlBase();
+ if (usingDerbyNetClient())
+ protocol = protocol + TestConfiguration.getCurrent().getHostName()
+ + ":" + TestConfiguration.getCurrent().getPort() + "/";
+
+ Properties info = null; //test with null Properties object
+
+ String CLIENT_URL_WITH_COLON1 = protocol + dbName + ":create=true";
+ //String CLIENT_URL_WITH_COLON2 = protocol + DERBY_SYSTEM_HOME +
+ // File.separator + dbName + ":create=true";
+ // String CLIENT_URL_WITH_DOUBLE_QUOTES1 =
+ // protocol + "\"" + dbName + "\";create=true";
+ // String CLIENT_URL_WITH_DOUBLE_QUOTES2 = protocol + "\"" +
+ // DERBY_SYSTEM_HOME + File.separator + dbName + "\";create=true";
+ // String CLIENT_URL_WITH_SINGLE_QUOTES1 = protocol + "'" +
+ // DERBY_SYSTEM_HOME + File.separator + dbName + "';create=true";
+ String CLIENT_URL_WITH_SINGLE_QUOTES2 =
+ protocol + "'" + dbName + "';create=true";
+
+ //Client URLS
+ String[] clientUrls = new String[]
+ {
+ CLIENT_URL_WITH_COLON1,
+ //CLIENT_URL_WITH_COLON2,
+ //CLIENT_URL_WITH_DOUBLE_QUOTES1,
+ //CLIENT_URL_WITH_DOUBLE_QUOTES2,
+ //CLIENT_URL_WITH_SINGLE_QUOTES1,
+ CLIENT_URL_WITH_SINGLE_QUOTES2
+ };
+
+ for (int i = 0; i < clientUrls.length;i++)
+ {
+ String url = clientUrls[i];
+ try{
+ if (url.equals(CLIENT_URL_WITH_COLON1))
+ {
+ Driver driver = DriverManager.getDriver(url);
+ assertNull(driver.connect(url,info));
+ }
+ else
+ assertConnect(true, url, info);
+ }
+ catch(SQLException se){
+ fail ("did not expect an exception");
+ }
+ }
+ }
+
+ /**
+ * Tests URL with spaces in database name to check create and connect works.
+ * (DERBY-618). Make sure that the specified database gets created. We need
+ * to check this because even without the patch for DERBY-618, no exception
+ * gets thrown when we try to connect to a database name with spaces.
+ * Instead, client driver extracts the database name as the string before
+ * the first occurence of space separator. Hence the database which gets
+ * created is wrong. e.g, if we specified database name as
+ * "db name with spaces", the database that got created by client driver
+ * was "db", which was wrong. We can check this by checking the correct URL
+ * is returned by call to conn.getMetaData().getURL(). This is currently
+ * checked inside the testConnect method. We do not explicilty check the
+ * database directory creation since this check fails in remote server
+ * testing.
+ *
+ * @throws SQLException
+ */
+ public static void testDbNameWithSpaces() throws SQLException {
+
+ Properties info = null;
+ String url = null;
+
+ String protocol =
+ TestConfiguration.getCurrent().getJDBCClient().getUrlBase();
+ if (usingDerbyNetClient())
+ protocol = protocol + TestConfiguration.getCurrent().getHostName()
+ + ":" + TestConfiguration.getCurrent().getPort() + "/";
+ else if (usingDerbyNet())
+ protocol = protocol + "net:" +
+ TestConfiguration.getCurrent().getHostName() + ":" +
+ TestConfiguration.getCurrent().getPort() + "/";
+
+ String EMBEDDED_URL_WITH_SPACES =
+ protocol + DB_NAME_WITH_SPACES + ";create=true";
+ String CLIENT_URL_WITH_SPACES =
+ protocol + DB_NAME_WITH_SPACES + ";create=true";
+ String JCC_URL_WITH_SPACES =
+ protocol + DB_NAME_WITH_SPACES + ";create=true";
+
+ if(usingEmbedded())
+ url = EMBEDDED_URL_WITH_SPACES;
+ else if(usingDerbyNetClient())
+ url = CLIENT_URL_WITH_SPACES;
+ else if(usingDerbyNet()) {
+ url = JCC_URL_WITH_SPACES;
+ // JCC requires user and password
+ info = new Properties();
+ info.put("user", "tester");
+ info.put("password", "testpass");
+ }
+
+ assertConnect(false, url, info);
+ }
+
+ /**
+ * Do java.sql.Driver.connect(String url, Properties info call)
+ *
+ * @param expectUrlEqualsGetUrl boolean indicating embedded would
+ * expect the url passed in to equal metadata.getURL()
+ * @param url url to pass to Driver.connect()
+ * @param info properties to pass to Driver.Connect()
+ *
+ * @throws SQLException on error.
+ */
+ private static Connection assertConnect(
+ boolean expectUrlEqualsGetUrl, String url, Properties info)
+ throws SQLException
+ {
+ Driver driver = DriverManager.getDriver(url);
+
+ Connection conn = driver.connect(url,info);
+ assertNotNull(conn);
+
+ if (expectUrlEqualsGetUrl)
+ assertEquals(url, conn.getMetaData().getURL());
+ else
+ assertNotSame(url, conn.getMetaData().getURL());
+ ResultSet rs =
+ conn.createStatement().executeQuery("VALUES(CURRENT SCHEMA)");
+ rs.next();
+ assertEquals(
+ rs.getString(1), conn.getMetaData().getUserName().toUpperCase());
+ conn.close();
+ return conn;
+ }
+
+ /**
+ Load the appropriate driver for the current framework
+ */
+ private static void loadDriver()
+ {
+ String driverClass =
+ TestConfiguration.getCurrent().getJDBCClient().getJDBCDriverName();
+ try {
+ Class.forName(driverClass).newInstance();
+ } catch (Exception e) {
+ fail ("could not instantiate driver");
+ }
+ }
+}
Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DriverTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCHarnessJavaTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCHarnessJavaTest.java?view=diff&rev=527317&r1=527316&r2=527317
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCHarnessJavaTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCHarnessJavaTest.java Tue Apr 10 14:42:33 2007
@@ -52,7 +52,6 @@
// "dataSourceReference", TODO: investigate failure/convert
// from old jdbcapi.runall
- // "checkDriver", TODO: investigate failure/convert
"derbyStress",
// "nullSQLText", TODO: investigate failure/convert
// "prepStmtMetaData", TODO: convert - different canon for client
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java?view=diff&rev=527317&r1=527316&r2=527317
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java Tue Apr 10 14:42:33 2007
@@ -74,6 +74,7 @@
suite.addTest(ClosedObjectTest.suite());
suite.addTest(SetTransactionIsolationTest.suite());
suite.addTest(AuthenticationTest.suite());
+ suite.addTest(DriverTest.suite());
// Old harness .java tests that run using the HarnessJavaTest
// adapter and continue to use a single master file.