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 2013/05/10 02:52:47 UTC
svn commit: r1480843 - in /db/derby/code/branches/10.10: ./
java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java
java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCDriversEmbeddedTest.java
Author: myrnavl
Date: Fri May 10 00:52:46 2013
New Revision: 1480843
URL: http://svn.apache.org/r1480843
Log:
DERBY-6181; fix AutoloadTest to support running concurrently when different base ports are specified.
backport revision 1480462 from trunk.
Modified:
db/derby/code/branches/10.10/ (props changed)
db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java
db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCDriversEmbeddedTest.java
Propchange: db/derby/code/branches/10.10/
------------------------------------------------------------------------------
Merged /db/derby/code/trunk:r1480462
Modified: db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java?rev=1480843&r1=1480842&r2=1480843&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java (original)
+++ db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java Fri May 10 00:52:46 2013
@@ -21,6 +21,7 @@
package org.apache.derbyTesting.functionTests.tests.jdbcapi;
+import java.net.InetAddress;
import java.sql.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -226,21 +227,6 @@ public class AutoloadTest extends BaseJD
* </ul>
*/
static Test fullAutoloadSuite() {
- if (!TestConfiguration.getCurrent().isDefaultBasePort())
- {
- // DERBY-6178
- // test is not currently coded to work properly when calling
- // system is depending on setting -Dderby.tests.basePort=3500
- // to avoid conflict on concurrent tests starting and stopping
- // network server.
-
- // for now just skip this test if tests are setting a non-default
- // base port.
- return new TestSuite(
- "empty: test not supported with non-default base port: " +
- TestConfiguration.getCurrent().getBasePort());
- }
-
TestSuite suite = new TestSuite("AutoloadTest:All");
suite.addTest(new AutoloadTest(AutoloadTest.class));
suite.addTest(new AutoloadTest(JDBCDriversEmbeddedTest.class));
@@ -262,15 +248,29 @@ public class AutoloadTest extends BaseJD
* Run {@code AutoloadTest} in a separate JVM.
*/
public void spawnProcess() throws Exception {
- String[] cmd = {
- "junit.textui.TestRunner", spawnedTestClass.getName()
- };
-
- SpawnedProcess proc =
- new SpawnedProcess(execJavaCmd(cmd), spawnedTestClass.getName());
-
- if (proc.complete() != 0) {
- fail(proc.getFailMessage("Test process failed"));
+ if (TestConfiguration.isDefaultBasePort()) {
+ String[] cmd = {
+ "junit.textui.TestRunner", spawnedTestClass.getName()
+ };
+ SpawnedProcess proc = new SpawnedProcess
+ (execJavaCmd(cmd), spawnedTestClass.getName());
+ if (proc.complete() != 0) {
+ fail(proc.getFailMessage("Test process failed"));
+ }
+ }
+ else
+ {
+ // if we're not using the default port of 1527, ensure we're
+ // passing on the baseport value to the spawned process.
+ String[] cmd = {
+ "-Dderby.tests.basePort=" + TestConfiguration.getBasePort(),
+ "junit.textui.TestRunner", spawnedTestClass.getName()
+ };
+ SpawnedProcess proc = new SpawnedProcess
+ (execJavaCmd(cmd), spawnedTestClass.getName());
+ if (proc.complete() != 0) {
+ fail(proc.getFailMessage("Test process failed"));
+ }
}
}
@@ -518,7 +518,9 @@ public class AutoloadTest extends BaseJD
String user = getTestConfiguration().getUserName();
String pw = getTestConfiguration().getUserPassword();
- NetworkServerControl control = new NetworkServerControl(user, pw);
+ int port = TestConfiguration.getBasePort();
+ final InetAddress host = InetAddress.getByName(TestConfiguration.getCurrent().getHostName());
+ NetworkServerControl control = new NetworkServerControl(host, port, user, pw);
if (!serverShouldBeUp) {
// If we expect the server not to come up, wait a little before
Modified: db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCDriversEmbeddedTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCDriversEmbeddedTest.java?rev=1480843&r1=1480842&r2=1480843&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCDriversEmbeddedTest.java (original)
+++ db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/JDBCDriversEmbeddedTest.java Fri May 10 00:52:46 2013
@@ -20,6 +20,8 @@
*/
package org.apache.derbyTesting.functionTests.tests.jdbcapi;
+import org.apache.derbyTesting.junit.BaseTestCase;
+
import junit.framework.Test;
/**
@@ -36,7 +38,15 @@ public class JDBCDriversEmbeddedTest ext
// when this property is set and the embedded driver
// is autoloaded by jdbc.drivers
System.setProperty("derby.drda.startNetworkServer", "true");
-
+ // if the property derby.tests.basePort has been set, we need to
+ // ensure we specify the portNumber as well, because we're then
+ // not using 1527 for checks and shutting down.
+ String portNumberString = System.getProperty("derby.tests.basePort");
+ if (portNumberString != null )
+ {
+ System.setProperty("derby.drda.portNumber", portNumberString);
+ }
+
return getSuite("org.apache.derby.jdbc.EmbeddedDriver");
}
}