HADOOP-8699. some common testcases create core-site.xml in test-classes making other testcases to fail. (tucu)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1373206 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Alejandro Abdelnur 2012-08-15 04:21:04 +00:00
parent f41497c141
commit fd8ce04dc5
3 changed files with 20 additions and 3 deletions

View File

@ -420,6 +420,9 @@ Branch-2 ( Unreleased changes )
HADOOP-8660. TestPseudoAuthenticator failing with NPE. (tucu)
HADOOP-8699. some common testcases create core-site.xml in test-classes
making other testcases to fail. (tucu)
Release 2.0.0-alpha - 05-23-2012
INCOMPATIBLE CHANGES

View File

@ -17,6 +17,7 @@
*/
package org.apache.hadoop.http;
import com.google.common.annotations.VisibleForTesting;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.conf.Configuration;
@ -37,6 +38,11 @@ public class HttpConfig {
CommonConfigurationKeysPublic.HADOOP_SSL_ENABLED_DEFAULT);
}
@VisibleForTesting
static void setSecure(boolean secure) {
sslEnabled = secure;
}
public static boolean isSecure() {
return sslEnabled;
}

View File

@ -41,6 +41,8 @@ import java.net.URL;
* corresponding HTTPS URL.
*/
public class TestSSLHttpServer extends HttpServerFunctionalTest {
private static final String CONFIG_SITE_XML = "sslhttpserver-site.xml";
private static final String BASEDIR =
System.getProperty("test.build.dir", "target/test-dir") + "/" +
TestSSLHttpServer.class.getSimpleName();
@ -49,8 +51,10 @@ public class TestSSLHttpServer extends HttpServerFunctionalTest {
private static HttpServer server;
private static URL baseUrl;
@Before
public void setup() throws Exception {
HttpConfig.setSecure(true);
File base = new File(BASEDIR);
FileUtil.fullyDelete(base);
base.mkdirs();
@ -66,11 +70,12 @@ public class TestSSLHttpServer extends HttpServerFunctionalTest {
//we do this trick because the MR AppMaster is started in another VM and
//the HttpServer configuration is not loaded from the job.xml but from the
//site.xml files in the classpath
Writer writer = new FileWriter(classpathDir + "/core-site.xml");
Writer writer = new FileWriter(new File(classpathDir, CONFIG_SITE_XML));
conf.writeXml(writer);
writer.close();
conf.setInt(HttpServer.HTTP_MAX_THREADS, 10);
conf.addResource(CONFIG_SITE_XML);
server = createServer("test", conf);
server.addServlet("echo", "/echo", TestHttpServer.EchoServlet.class);
server.start();
@ -83,7 +88,8 @@ public class TestSSLHttpServer extends HttpServerFunctionalTest {
server.stop();
String classpathDir =
KeyStoreTestUtil.getClasspathDir(TestSSLHttpServer.class);
new File(classpathDir + "/core-site.xml").delete();
new File(classpathDir, CONFIG_SITE_XML).delete();
HttpConfig.setSecure(false);
}
@ -98,7 +104,9 @@ public class TestSSLHttpServer extends HttpServerFunctionalTest {
private static String readOut(URL url) throws Exception {
StringBuilder out = new StringBuilder();
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
SSLFactory sslf = new SSLFactory(SSLFactory.Mode.CLIENT, new Configuration());
Configuration conf = new Configuration();
conf.addResource(CONFIG_SITE_XML);
SSLFactory sslf = new SSLFactory(SSLFactory.Mode.CLIENT, conf);
sslf.init();
conn.setSSLSocketFactory(sslf.createSSLSocketFactory());
InputStream in = conn.getInputStream();