8019341: Update CookieHttpsClientTest to use the newer framework

Reviewed-by: xuelei, smarks, michaelm
This commit is contained in:
Bradford Wetmore 2013-07-05 18:22:58 -07:00
parent 18748d45b6
commit 2c7b97640d
4 changed files with 132 additions and 56 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -21,15 +21,14 @@
* questions.
*/
// SunJSSE does not support dynamic system properties, no way to re-use
// system properties in samevm/agentvm mode.
/*
* @test
* @bug 7129083
* @summary Cookiemanager does not store cookies if url is read
* before setting cookiemanager
*
* SunJSSE does not support dynamic system properties, no way to re-use
* system properties in samevm/agentvm mode.
*
* @run main/othervm CookieHttpsClientTest
*/
@ -186,10 +185,10 @@ public class CookieHttpsClientTest {
public static void main(String args[]) throws Exception {
String keyFilename =
System.getProperty("test.src", "./") + "/" + pathToStores +
System.getProperty("test.src", ".") + "/" + pathToStores +
"/" + keyStoreFile;
String trustFilename =
System.getProperty("test.src", "./") + "/" + pathToStores +
System.getProperty("test.src", ".") + "/" + pathToStores +
"/" + trustStoreFile;
System.setProperty("javax.net.ssl.keyStore", keyFilename);
@ -205,40 +204,83 @@ public class CookieHttpsClientTest {
Thread clientThread = null;
Thread serverThread = null;
/*
* Primary constructor, used to drive remainder of the test.
*
* Fork off the other side, then do your work.
*/
CookieHttpsClientTest() throws Exception {
if (separateServerThread) {
startServer(true);
startClient(false);
} else {
startClient(true);
startServer(false);
Exception startException = null;
try {
if (separateServerThread) {
startServer(true);
startClient(false);
} else {
startClient(true);
startServer(false);
}
} catch (Exception e) {
startException = e;
}
/*
* Wait for other side to close down.
*/
if (separateServerThread) {
serverThread.join();
if (serverThread != null) {
serverThread.join();
}
} else {
clientThread.join();
if (clientThread != null) {
clientThread.join();
}
}
/*
* When we get here, the test is pretty much over.
*
* If the main thread excepted, that propagates back
* immediately. If the other thread threw an exception, we
* should report back.
* Which side threw the error?
*/
if (serverException != null)
throw serverException;
if (clientException != null)
throw clientException;
Exception local;
Exception remote;
if (separateServerThread) {
remote = serverException;
local = clientException;
} else {
remote = clientException;
local = serverException;
}
Exception exception = null;
/*
* Check various exception conditions.
*/
if ((local != null) && (remote != null)) {
// If both failed, return the curthread's exception.
local.initCause(remote);
exception = local;
} else if (local != null) {
exception = local;
} else if (remote != null) {
exception = remote;
} else if (startException != null) {
exception = startException;
}
/*
* If there was an exception *AND* a startException,
* output it.
*/
if (exception != null) {
if (exception != startException) {
exception.addSuppressed(startException);
}
throw exception;
}
// Fall-through: no exception to throw!
}
void startServer(boolean newThread) throws Exception {
@ -261,7 +303,13 @@ public class CookieHttpsClientTest {
};
serverThread.start();
} else {
doServerSide();
try {
doServerSide();
} catch (Exception e) {
serverException = e;
} finally {
serverReady = true;
}
}
}
@ -277,12 +325,16 @@ public class CookieHttpsClientTest {
*/
System.err.println("Client died...");
clientException = e;
}
}
}
};
clientThread.start();
} else {
doClientSide();
try {
doClientSide();
} catch (Exception e) {
clientException = e;
}
}
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -21,14 +21,14 @@
* questions.
*/
// SunJSSE does not support dynamic system properties, no way to re-use
// system properties in samevm/agentvm mode.
/*
* @test
* @bug 1234567
* @summary SSLEngine has not yet caused Solaris kernel to panic
* @run main/othervm SSLEngineTemplate
*
* SunJSSE does not support dynamic system properties, no way to re-use
* system properties in samevm/agentvm mode.
*/
/**

View File

@ -309,14 +309,25 @@ public class SSLSocketSSLEngineTemplate {
} catch (Exception e) {
serverException = e;
} finally {
socket.close();
if (socket != null) {
socket.close();
}
// Wait for the client to join up with us.
thread.join();
if (thread != null) {
thread.join();
}
if (serverException != null) {
if (clientException != null) {
serverException.initCause(clientException);
}
throw serverException;
}
if (clientException != null) {
if (serverException != null) {
clientException.initCause(serverException);
}
throw clientException;
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -21,14 +21,14 @@
* questions.
*/
// SunJSSE does not support dynamic system properties, no way to re-use
// system properties in samevm/agentvm mode.
/*
* @test
* @bug 1234567
* @summary Use this template to help speed your client/server tests.
* @run main/othervm SSLSocketTemplate
*
* SunJSSE does not support dynamic system properties, no way to re-use
* system properties in samevm/agentvm mode.
* @author Brad Wetmore
*/
@ -180,6 +180,7 @@ public class SSLSocketTemplate {
* Fork off the other side, then do your work.
*/
SSLSocketTemplate() throws Exception {
Exception startException = null;
try {
if (separateServerThread) {
startServer(true);
@ -189,16 +190,20 @@ public class SSLSocketTemplate {
startServer(false);
}
} catch (Exception e) {
// swallow for now. Show later
startException = e;
}
/*
* Wait for other side to close down.
*/
if (separateServerThread) {
serverThread.join();
if (serverThread != null) {
serverThread.join();
}
} else {
clientThread.join();
if (clientThread != null) {
clientThread.join();
}
}
/*
@ -207,36 +212,44 @@ public class SSLSocketTemplate {
*/
Exception local;
Exception remote;
String whichRemote;
if (separateServerThread) {
remote = serverException;
local = clientException;
whichRemote = "server";
} else {
remote = clientException;
local = serverException;
whichRemote = "client";
}
Exception exception = null;
/*
* Check various exception conditions.
*/
if ((local != null) && (remote != null)) {
// If both failed, return the curthread's exception.
local.initCause(remote);
exception = local;
} else if (local != null) {
exception = local;
} else if (remote != null) {
exception = remote;
} else if (startException != null) {
exception = startException;
}
/*
* If both failed, return the curthread's exception, but also
* print the remote side Exception
* If there was an exception *AND* a startException,
* output it.
*/
if ((local != null) && (remote != null)) {
System.out.println(whichRemote + " also threw:");
remote.printStackTrace();
System.out.println();
throw local;
if (exception != null) {
if (exception != startException) {
exception.addSuppressed(startException);
}
throw exception;
}
if (remote != null) {
throw remote;
}
if (local != null) {
throw local;
}
// Fall-through: no exception to throw!
}
void startServer(boolean newThread) throws Exception {