From 18ccac8302af3a4e83de01174f12ad862b87b912 Mon Sep 17 00:00:00 2001 From: Matthew Jason Benson Date: Wed, 24 Feb 2010 21:59:13 +0000 Subject: [PATCH] antunit-ize exec test to minimize number of layers at work git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@915991 13f79535-47bb-0310-9956-ffa450edef68 --- src/etc/testcases/taskdefs/exec/exec.xml | 339 +--------- src/tests/antunit/taskdefs/exec/exec-test.xml | 639 ++++++++++++++++++ .../antunit}/taskdefs/exec/expected/utf-8 | 0 .../antunit}/taskdefs/exec/input/iso8859-1 | 0 .../tools/ant/taskdefs/ExecTaskTest.java | 334 +-------- 5 files changed, 657 insertions(+), 655 deletions(-) create mode 100644 src/tests/antunit/taskdefs/exec/exec-test.xml rename src/{etc/testcases => tests/antunit}/taskdefs/exec/expected/utf-8 (100%) rename src/{etc/testcases => tests/antunit}/taskdefs/exec/input/iso8859-1 (100%) diff --git a/src/etc/testcases/taskdefs/exec/exec.xml b/src/etc/testcases/taskdefs/exec/exec.xml index 4a6157ed6..6f2615902 100644 --- a/src/etc/testcases/taskdefs/exec/exec.xml +++ b/src/etc/testcases/taskdefs/exec/exec.xml @@ -32,26 +32,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -62,324 +42,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - x y z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - x y z - - - - - - - - - - - - blah before blah - - - - - - - - - - - - - - blah before blah - - - - - - - - - - - - - - - - - - - - - - - - - - blah before blah - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Files were not created. - - - - - - - - - - - - - Files were created. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/src/tests/antunit/taskdefs/exec/exec-test.xml b/src/tests/antunit/taskdefs/exec/exec-test.xml new file mode 100644 index 000000000..afa6adc11 --- /dev/null +++ b/src/tests/antunit/taskdefs/exec/exec-test.xml @@ -0,0 +1,639 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ant.file} out${line.separator}${ant.file} err + + + + + + + + + + + + + ${ant.file} out + + + + + + ${ant.file} err + + + + + + + + + + + + + ${ant.file} out + + + + + + + + + + + + + + + ${ant.file} out + + + + + + + ${ant.file} err + + + + + + + + + + + + + + + + + + + + + + + + + + x y z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ant.file} out${line.separator}${ant.file} err + + + + + + + + + + + + + + ${ant.file} out + + + + + + ${ant.file} err + + + + + + + + + + + + + + ${ant.file} out + + + + + + + + + + + + + + + + ${ant.file} out + + + + + + + ${ant.file} err + + + + + + + + + + + + + + + + + + ${ant.file} out + + + + + + + ${ant.file} err + + + + + + + + + + + + + + + + + + + + + ${ant.file} out + + + + + + + ${ant.file} ERROR!!! + + + + + + + + x y z + + + + + + + + + + + + + + + + + + + + + + + + blah before blah + + + + + + + + + + + + + + + + + + + + + + + + + + + blah before blah + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + blah before blah + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/etc/testcases/taskdefs/exec/expected/utf-8 b/src/tests/antunit/taskdefs/exec/expected/utf-8 similarity index 100% rename from src/etc/testcases/taskdefs/exec/expected/utf-8 rename to src/tests/antunit/taskdefs/exec/expected/utf-8 diff --git a/src/etc/testcases/taskdefs/exec/input/iso8859-1 b/src/tests/antunit/taskdefs/exec/input/iso8859-1 similarity index 100% rename from src/etc/testcases/taskdefs/exec/input/iso8859-1 rename to src/tests/antunit/taskdefs/exec/input/iso8859-1 diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/ExecTaskTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/ExecTaskTest.java index d3a143f22..3c1749c56 100644 --- a/src/tests/junit/org/apache/tools/ant/taskdefs/ExecTaskTest.java +++ b/src/tests/junit/org/apache/tools/ant/taskdefs/ExecTaskTest.java @@ -22,12 +22,8 @@ import org.apache.tools.ant.*; import org.apache.tools.ant.util.FileUtils; import java.io.File; -import java.io.FileReader; -import java.io.IOException; import java.util.GregorianCalendar; -import junit.framework.ComparisonFailure; - /** * Unit test for the <exec> task. */ @@ -38,7 +34,8 @@ public class ExecTaskTest extends BuildFileTest { /** maximum time allowed for the build in milliseconds */ private static final int MAX_BUILD_TIME = 4000; private static final int SECURITY_MARGIN = 2000; // wait 2 second extras - // the test failed with 100 ms of margin on cvs.apache.org on August 1st, 2003 + // the test failed with 100 ms of margin on cvs.apache.org on August 1st, + // 2003 /** Utilities used for file operations */ private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); @@ -46,6 +43,7 @@ public class ExecTaskTest extends BuildFileTest { private File logFile; private MonitoredBuild myBuild = null; volatile private boolean buildFinished = false; + public ExecTaskTest(String name) { super(name); } @@ -61,293 +59,13 @@ public class ExecTaskTest extends BuildFileTest { executeTarget("cleanup"); } - public void testNoRedirect() { - executeTarget("no-redirect"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - assertEquals("unexpected log content", - getProject().getProperty("ant.file") + " out" - + getProject().getProperty("ant.file") + " err", getLog()); - } - - public void testRedirect1() throws IOException { - executeTarget("redirect1"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - String expectedOut = getProject().getProperty("ant.file") + " out\n" - + getProject().getProperty("ant.file") + " err\n"; - - assertEquals("unexpected output", - expectedOut, getFileString("redirect.out")); - } - - public void testRedirect2() throws IOException { - executeTarget("redirect2"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - - assertEquals("unexpected output", - getProject().getProperty("ant.file") + " out\n", - getFileString("redirect.out")); - assertEquals("unexpected error output", - getProject().getProperty("ant.file") + " err\n", - getFileString("redirect.err")); - } - - public void testRedirect3() throws IOException { - executeTarget("redirect3"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - assertEquals("unexpected log content", - getProject().getProperty("ant.file") + " err", getLog()); - String expectedOut = getProject().getProperty("ant.file") + " out\n"; - - assertEquals("unexpected output", - expectedOut, getFileString("redirect.out")); - assertPropertyEquals("redirect.out", expectedOut.trim()); - } - - public void testRedirect4() throws IOException { - executeTarget("redirect4"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - String expectedOut = getProject().getProperty("ant.file") + " out\n"; - String expectedErr = getProject().getProperty("ant.file") + " err\n"; - - assertEquals("unexpected output", - expectedOut, getFileString("redirect.out")); - assertPropertyEquals("redirect.out", expectedOut.trim()); - assertEquals("unexpected error output", - expectedErr, getFileString("redirect.err")); - assertPropertyEquals("redirect.err", expectedErr.trim()); - } - - public void testRedirect5() throws IOException { - testRedirect5or6("redirect5"); - } - - public void testRedirect6() throws IOException { - testRedirect5or6("redirect6"); - } - - public void testRedirect5or6(String target) throws IOException { - executeTarget(target); - if (getProject().getProperty("wc.can.run") == null) { - return; - } - - assertEquals("unexpected output", "3", getFileString("redirect.out").trim()); - assertEquals("property redirect.out", "3", - getProject().getProperty("redirect.out").trim()); - assertNull("unexpected error output", getFileString("redirect.err")); - assertPropertyEquals("redirect.err", ""); - } - - public void testRedirect7() throws IOException { - executeTarget("redirect7"); - if (getProject().getProperty("wc.can.run") == null) { - return; - } - - assertEquals("unexpected output", "3", getFileString("redirect.out").trim()); - assertEquals("property redirect.out", "3", - getProject().getProperty("redirect.out").trim()); - assertNull("unexpected error output", getFileString("redirect.err")); - } - - public void testRedirector1() { - executeTarget("init"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - expectBuildException("redirector1", "cannot have > 1 nested s"); - } - - public void testRedirector2() throws IOException { - executeTarget("redirector2"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - - assertEquals("unexpected output", - getProject().getProperty("ant.file") + " out\n" - + getProject().getProperty("ant.file") + " err\n", - getFileString("redirector.out")); - } - - public void testRedirector3() throws IOException { - executeTarget("redirector3"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - - assertEquals("unexpected output", - getProject().getProperty("ant.file") + " out\n", - getFileString("redirector.out")); - assertEquals("unexpected error output", - getProject().getProperty("ant.file") + " err\n", - getFileString("redirector.err")); - } - - public void testRedirector4() throws IOException { - executeTarget("redirector4"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - String expectedOut = getProject().getProperty("ant.file") + " out\n"; - - assertEquals("unexpected log content", - getProject().getProperty("ant.file") + " err", getLog()); - assertEquals("unexpected output", expectedOut, - getFileString("redirector.out")); - assertPropertyEquals("redirector.out", expectedOut.trim()); - } - - public void testRedirector5() throws IOException { - testRedirector5or6("redirector5"); - } - - public void testRedirector6() throws IOException { - testRedirector5or6("redirector6"); - } - - private void testRedirector5or6(String target) throws IOException { - executeTarget(target); - if (getProject().getProperty("test.can.run") == null) { - return; - } - String expectedOut = getProject().getProperty("ant.file") + " out\n"; - String expectedErr = getProject().getProperty("ant.file") + " err\n"; - - assertEquals("unexpected output", expectedOut, - getFileString("redirector.out")); - assertPropertyEquals("redirector.out", expectedOut.trim()); - assertEquals("unexpected error output", expectedErr, - getFileString("redirector.err")); - assertPropertyEquals("redirector.err", expectedErr.trim()); - } - - public void testRedirector7() throws IOException { - executeTarget("redirector7"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - String expectedOut = getProject().getProperty("ant.file") + " out\n"; - String expectedErr = getProject().getProperty("ant.file") + " ERROR!!!\n"; - - assertEquals("unexpected output", expectedOut, - getFileString("redirector.out")); - assertPropertyEquals("redirector.out", expectedOut.trim()); - assertEquals("unexpected error output", expectedErr, - getFileString("redirector.err")); - assertPropertyEquals("redirector.err", expectedErr.trim()); - } - - public void testRedirector8() throws IOException { - executeTarget("redirector8"); - if (getProject().getProperty("wc.can.run") == null) { - return; - } - - assertEquals("unexpected output", "3", getFileString("redirector.out").trim()); - assertEquals("property redirector.out", "3", - getProject().getProperty("redirector.out").trim()); - assertNull("unexpected error output", getFileString("redirector.err")); - assertPropertyEquals("redirector.err", ""); - } - - public void testRedirector9() throws IOException { - testRedirector9Thru12("redirector9"); - } - - public void testRedirector10() throws IOException { - testRedirector9Thru12("redirector10"); - } - - public void testRedirector11() throws IOException { - testRedirector9Thru12("redirector11"); - } - - public void testRedirector12() throws IOException { - testRedirector9Thru12("redirector12"); - } - - private void testRedirector9Thru12(String target) throws IOException { - executeTarget(target); - if (getProject().getProperty("cat.can.run") == null) { - return; - } - String expectedOut = "blah after blah"; - - assertEquals("unexpected output", - expectedOut, getFileString("redirector.out").trim()); - assertPropertyEquals("redirector.out", expectedOut.trim()); - assertNull("unexpected error output", getFileString("redirector.err")); - assertPropertyEquals("redirector.err", ""); - } - - public void testRedirector13() { - executeTarget("redirector13"); - if (getProject().getProperty("test.can.run") == null) { - return; - } - String antfile = getProject().getProperty("ant.file"); - try { - //no point in setting a message - assertEquals(antfile + " OUTPUT???" + antfile + " ERROR!!!", getLog()); - } catch (ComparisonFailure cf) { - assertEquals("unexpected log content", - antfile + " ERROR!!!" + antfile + " OUTPUT???", getLog()); - } - } - - public void testRedirector14() { - executeTarget("redirector14"); - if (getProject().getProperty("cat.can.run") == null) { - return; - } - assertEquals("unexpected log output", "blah after blah", getLog()); - } - - public void testRedirector15() throws IOException { - executeTarget("redirector15"); - if (getProject().getProperty("cat.can.run") == null) { - return; - } - assertTrue("error with transcoding", - FILE_UTILS.contentEquals( - getProject().resolveFile("expected/utf-8"), - getProject().resolveFile("redirector.out"))); - } - - public void testRedirector16() { - executeTarget("redirector16"); - } - - public void testRedirector17() { - executeTarget("redirector17"); - } - - public void testRedirector18() { - if (getProject().getProperty("test.can.run") == null) { - return; - } - expectLog("redirector18", getProject().getProperty("ant.file") - + " out" + getProject().getProperty("ant.file") + " err"); - } - public void testspawn() { project.executeTarget("init"); if (project.getProperty("test.can.run") == null) { return; } myBuild = new MonitoredBuild(new File(System.getProperty("root"), BUILD_FILE), "spawn"); - logFile = FILE_UTILS.createTempFile("spawn","log", project.getBaseDir(), false, false); + logFile = FILE_UTILS.createTempFile("spawn", "log", project.getBaseDir(), false, false); // this is guaranteed by FileUtils#createTempFile assertTrue("log file not existing", !logFile.exists()); // make the spawned process run 4 seconds @@ -366,7 +84,9 @@ public class ExecTaskTest extends BuildFileTest { GregorianCalendar now = new GregorianCalendar(); // security if (now.getTime().getTime() - startwait.getTime().getTime() > MAX_BUILD_TIME) { - System.out.println("aborting wait, too long " + (now.getTime().getTime() - startwait.getTime().getTime()) + "milliseconds"); + System.out.println("aborting wait, too long " + + (now.getTime().getTime() - startwait.getTime().getTime()) + + "milliseconds"); break; } } @@ -378,24 +98,12 @@ public class ExecTaskTest extends BuildFileTest { } // time of the build in milli seconds long elapsed = myBuild.getTimeElapsed(); - assertTrue("we waited more than the process lasted", TIME_TO_WAIT * 1000 - + SECURITY_MARGIN > elapsed); + assertTrue("we waited more than the process lasted", + TIME_TO_WAIT * 1000 + SECURITY_MARGIN > elapsed); logFile = new File(logFile.getAbsolutePath()); assertTrue("log file found after spawn", logFile.exists()); } - public void testExecUnknownOS() { - executeTarget("testExecUnknownOS"); - } - - public void testExecOSFamily() { - executeTarget("testExecOSFamily"); - } - - public void testExecInconsistentSettings() { - executeTarget("testExecInconsistentSettings"); - } - private static class MonitoredBuild implements Runnable { private Thread worker; private File myBuildFile = null; @@ -419,15 +127,17 @@ public class ExecTaskTest extends BuildFileTest { public void addBuildListener(BuildListener bl) { project.addBuildListener(bl); } + public MonitoredBuild(File buildFile, String target) { myBuildFile = buildFile; this.target = target; - project=new Project(); + project = new Project(); project = new Project(); project.init(); - project.setUserProperty( "ant.file" , myBuildFile.getAbsolutePath() ); + project.setUserProperty("ant.file", myBuildFile.getAbsolutePath()); ProjectHelper.configureProject(project, myBuildFile); } + /** * * @return time in millis of the build @@ -435,19 +145,23 @@ public class ExecTaskTest extends BuildFileTest { public long getTimeElapsed() { return timeFinished.getTime().getTime() - timeStarted.getTime().getTime(); } + public void start() { worker = new Thread(this, myBuildFile.toString() + "/" + target); worker.start(); } + public void run() { startProject(); } + private void startProject() { timeStarted = new GregorianCalendar(); project.executeTarget(target); timeFinished = new GregorianCalendar(); } } + private class MonitoredBuildListener implements BuildListener { public void buildStarted(BuildEvent event) { } @@ -474,18 +188,4 @@ public class ExecTaskTest extends BuildFileTest { } } - //borrowed from TokenFilterTest - private String getFileString(String filename) throws IOException { - String result = null; - FileReader reader = null; - try { - reader = new FileReader(getProject().resolveFile(filename)); - result = FileUtils.readFully(reader); - } catch (IOException eyeOhEx) { - } finally { - FileUtils.close(reader); - } - return result; - } - }