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 tm...@apache.org on 2006/02/23 12:49:32 UTC
svn commit: r380099 - in
/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet:
dataSourcePermissions_net.java testSecMec.java
Author: tmnk
Date: Thu Feb 23 03:49:23 2006
New Revision: 380099
URL: http://svn.apache.org/viewcvs?rev=380099&view=rev
Log:
- DERBY-273_2 The derbynet/dataSourcePermissions_net.java test fails intermittently - Patch by Tomohito Nakayama (tomonaka@basil.ocn.ne.jp)
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dataSourcePermissions_net.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testSecMec.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dataSourcePermissions_net.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dataSourcePermissions_net.java?rev=380099&r1=380098&r2=380099&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dataSourcePermissions_net.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dataSourcePermissions_net.java Thu Feb 23 03:49:23 2006
@@ -62,7 +62,15 @@
private static int NETWORKSERVER_PORT;
private static String hostName;
private static NetworkServerControl networkServer = null;
-
+
+ private SwitchablePrintStream consoleLogStream_;
+ private PrintStream originalStream_;
+ private FileOutputStream shutdownLogStream_;
+
+ private SwitchablePrintStream consoleErrLogStream_;
+ private PrintStream originalErrStream_;
+ private FileOutputStream shutdownErrLogStream_;
+
public static void main(String[] args) throws Exception {
hostName = TestUtil.getHostName();
@@ -85,7 +93,25 @@
} catch (Exception e) {
e.printStackTrace();
}
-
+
+ PrintStream originalStream = System.out;
+ FileOutputStream shutdownLogStream =
+ new FileOutputStream("dataSourcePermissions_net." +
+ System.getProperty("framework","") + "." +
+ "shutdown.std.log");
+ SwitchablePrintStream consoleLogStream =
+ new SwitchablePrintStream( originalStream );
+
+ PrintStream originalErrStream = System.err;
+ FileOutputStream shutdownErrLogStream =
+ new FileOutputStream("dataSourcePermissions_net." +
+ System.getProperty("framework","") + "." +
+ "shutdown.err.log");
+ SwitchablePrintStream consoleErrLogStream =
+ new SwitchablePrintStream( originalErrStream );
+
+ System.setOut( consoleLogStream );
+ System.setErr( consoleErrLogStream );
if (hostName.equals("localhost"))
{
@@ -97,15 +123,27 @@
if (!isServerStarted(networkServer, 60))
System.exit(-1);
}
-
+
+
// Now, go ahead and run the test.
try {
- dataSourcePermissions_net tester = new dataSourcePermissions_net();
+ dataSourcePermissions_net tester =
+ new dataSourcePermissions_net( consoleLogStream ,
+ originalStream ,
+ shutdownLogStream ,
+ consoleErrLogStream ,
+ originalErrStream,
+ shutdownErrLogStream);
tester.setProperties();
tester.runTest();
if (TestUtil.isDerbyNetClientFramework())
tester.testClientDataSourceProperties();
- new dataSourcePermissions_net().cleanUp();
+ new dataSourcePermissions_net( consoleLogStream ,
+ originalStream ,
+ shutdownLogStream ,
+ consoleErrLogStream ,
+ originalErrStream ,
+ shutdownErrLogStream ).cleanUp();
} catch (Exception e) {
// if we catch an exception of some sort, we need to make sure to
@@ -120,21 +158,48 @@
// Shutdown the server.
if (hostName.equals("localhost"))
{
+
+ consoleLogStream.switchOutput( shutdownLogStream );
+ consoleErrLogStream.switchOutput( shutdownErrLogStream );
+
networkServer.shutdown();
+ consoleLogStream.flush();
+
+ consoleLogStream.switchOutput( originalStream );
+ consoleErrLogStream.switchOutput( originalErrStream );
+
// how do we do this with the new api?
//networkServer.join();
Thread.sleep(5000);
}
System.out.println("Completed dataSourcePermissions_net");
+
+ originalStream.close();
+ shutdownLogStream.close();
- System.out.close();
- System.err.close();
+ originalErrStream.close();
+ shutdownErrLogStream.close();
}
- public dataSourcePermissions_net() {
+ public dataSourcePermissions_net( SwitchablePrintStream consoleLogStream,
+ PrintStream originalStream,
+ FileOutputStream shutdownLogStream,
+ SwitchablePrintStream consoleErrLogStream,
+ PrintStream originalErrStream,
+ FileOutputStream shutdownErrLogStream ) {
+
+ consoleLogStream_ = consoleLogStream;
+ originalStream_ = originalStream;
+ shutdownLogStream_ = shutdownLogStream;
+
+ consoleErrLogStream_ = consoleErrLogStream;
+ originalErrStream_ = originalErrStream;
+ shutdownErrLogStream_ = shutdownErrLogStream;
+
}
+
public void setProperties() {
// Set required server properties.
@@ -241,16 +306,34 @@
}
public void shutdown() {
+
+ try{
try {
- DriverManager.getConnection(TestUtil.getJdbcUrlPrefix(hostName,
+
+ consoleLogStream_.switchOutput( shutdownLogStream_ );
+ consoleErrLogStream_.switchOutput( shutdownErrLogStream_ );
+
+ DriverManager.getConnection(TestUtil.getJdbcUrlPrefix(hostName,
NETWORKSERVER_PORT) +
"wombat;shutdown=true",
"EDWARD", "noodle");
+
+ consoleLogStream_.switchOutput( originalStream_ );
+ consoleErrLogStream_.switchOutput( originalErrStream_);
+
System.out.println("FAIL - Shutdown returned connection");
} catch (SQLException sqle) {
+ consoleLogStream_.switchOutput( originalStream_ );
+ consoleErrLogStream_.switchOutput( originalErrStream_ );
+
System.out.println("EXPECTED SHUTDOWN " + sqle.getMessage());
}
+
+ } catch (IOException ioe){
+ originalStream_.println("Switching stream was failed. Could not complete test ... ");
+ }
+
}
protected static boolean isServerStarted(NetworkServerControl server, int ntries)
@@ -525,6 +608,21 @@
}
+class SwitchablePrintStream extends PrintStream {
+
+ public SwitchablePrintStream( OutputStream firstStream ){
+ super( firstStream );
+ }
+
+
+ public void switchOutput( OutputStream newStream ) throws IOException{
+
+ out.flush();
+ out = newStream ;
+
+ }
+
+}
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testSecMec.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testSecMec.java?rev=380099&r1=380098&r2=380099&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testSecMec.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testSecMec.java Thu Feb 23 03:49:23 2006
@@ -56,12 +56,28 @@
private static int NETWORKSERVER_PORT;
private static NetworkServerControl networkServer = null;
+
+ private testSecMec(SwitchablePrintStream consoleLogStream,
+ PrintStream originalStream,
+ FileOutputStream shutdownLogStream,
+ SwitchablePrintStream consoleErrLogStream,
+ PrintStream originalErrStream,
+ FileOutputStream shutdownErrLogStream){
+
+ super(consoleLogStream,
+ originalStream,
+ shutdownLogStream,
+ consoleErrLogStream,
+ originalErrStream,
+ shutdownErrLogStream);
+
+ }
public static void main(String[] args) throws Exception {
// Load harness properties.
ij.getPropertyArg(args);
-
+
String hostName = TestUtil.getHostName();
if (hostName.equals("localhost"))
NETWORKSERVER_PORT = 20000;
@@ -77,6 +93,25 @@
} catch (Exception e) {
e.printStackTrace();
}
+
+ PrintStream originalStream = System.out;
+ FileOutputStream shutdownLogStream =
+ new FileOutputStream("testSecMec." +
+ System.getProperty("framework","") + "." +
+ "shutdown.std.log");
+ SwitchablePrintStream consoleLogStream =
+ new SwitchablePrintStream( originalStream );
+
+ PrintStream originalErrStream = System.err;
+ FileOutputStream shutdownErrLogStream =
+ new FileOutputStream("testSecMec." +
+ System.getProperty("framework","") + "." +
+ "shutdown.err.log");
+ SwitchablePrintStream consoleErrLogStream =
+ new SwitchablePrintStream( originalErrStream );
+
+ System.setOut( consoleLogStream );
+ System.setErr( consoleErrLogStream );
// Start the NetworkServer on another thread, unless it's a remote host
if (hostName.equals("localhost"))
@@ -88,10 +123,16 @@
if (!isServerStarted(networkServer, 60))
System.exit(-1);
}
-
+
// Now, go ahead and run the test.
try {
- testSecMec tester = new testSecMec();
+ testSecMec tester =
+ new testSecMec(consoleLogStream,
+ originalStream,
+ shutdownLogStream,
+ consoleErrLogStream,
+ originalErrStream,
+ shutdownErrLogStream);
tester.runTest();
} catch (Exception e) {
@@ -106,16 +147,26 @@
// Shutdown the server.
if (hostName.equals("localhost"))
- {
+ {
+ consoleLogStream.switchOutput( shutdownLogStream );
+ consoleErrLogStream.switchOutput( shutdownErrLogStream );
+
networkServer.shutdown();
// how do we do this with the new api?
//networkServer.join();
Thread.sleep(5000);
+
+ consoleLogStream.switchOutput( originalStream );
+ consoleErrLogStream.switchOutput( originalErrStream );
+
}
System.out.println("Completed testSecMec");
- System.out.close();
- System.err.close();
+ originalStream.close();
+ shutdownLogStream.close();
+
+ originalErrStream.close();
+ shutdownErrLogStream.close();
}