From 841d3c53f859dd80313501eccc2f0dab0635e626 Mon Sep 17 00:00:00 2001 From: kkolinko Date: Wed, 19 May 2010 15:55:33 +0000 Subject: [PATCH] Add method TomcatBaseTest#getTemporaryDirectory() Use mkdirs() to create tempDir directory in TomcatBaseTest#setUp() Fix issue with TestRegistration test failing when ${tomcat.output} ant property had non-default value. The failure was due to the contextDir.mkdir() call in TestRegistration#testMBeanDeregistration() failing to create a subdirectory because its parent directory did not exist. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@946241 13f79535-47bb-0310-9956-ffa450edef68 --- test/org/apache/catalina/mbeans/TestRegistration.java | 4 ++-- test/org/apache/catalina/startup/TomcatBaseTest.java | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/test/org/apache/catalina/mbeans/TestRegistration.java b/test/org/apache/catalina/mbeans/TestRegistration.java index 5f8c2036c..b2c031a7e 100644 --- a/test/org/apache/catalina/mbeans/TestRegistration.java +++ b/test/org/apache/catalina/mbeans/TestRegistration.java @@ -45,7 +45,7 @@ public class TestRegistration extends TomcatBaseTest { assertEquals("Remaining: " + onames, 0, onames.size()); final Tomcat tomcat = getTomcatInstance(); - final File contextDir = new File("output/webappFoo"); + final File contextDir = new File(getTemporaryDirectory(), "webappFoo"); contextDir.mkdir(); tomcat.addContext("/foo", contextDir.getAbsolutePath()); tomcat.start(); @@ -69,7 +69,7 @@ public class TestRegistration extends TomcatBaseTest { host.setName("otherhost"); tomcat.getEngine().addChild(host); - final File contextDir2 = new File("output/webappFoo2"); + final File contextDir2 = new File(getTemporaryDirectory(), "webappFoo2"); contextDir2.mkdir(); tomcat.addContext(host, "/foo2", contextDir2.getAbsolutePath()); diff --git a/test/org/apache/catalina/startup/TomcatBaseTest.java b/test/org/apache/catalina/startup/TomcatBaseTest.java index 20d016b29..9199ae919 100644 --- a/test/org/apache/catalina/startup/TomcatBaseTest.java +++ b/test/org/apache/catalina/startup/TomcatBaseTest.java @@ -68,6 +68,15 @@ public abstract class TomcatBaseTest extends TestCase { } /** + * Helper method that returns the path of the temporary directory used by + * the test runs. The directory is configured during {@link #setUp()} and is + * deleted at {@link #tearDown()}. + */ + public File getTemporaryDirectory() { + return tempDir; + } + + /** * Helper method that returns the directory where Tomcat build resides. It * is used to access resources that are part of default Tomcat deployment. * E.g. the examples webapp. @@ -84,7 +93,7 @@ public abstract class TomcatBaseTest extends TestCase { "org.apache.juli.ClassLoaderLogManager"); tempDir = new File(System.getProperty("tomcat.test.temp", "output/tmp")); - if (!tempDir.exists() && !tempDir.mkdir()) { + if (!tempDir.exists() && !tempDir.mkdirs()) { fail("Unable to create temporary directory for test"); } -- 2.11.0