Author: antoine
Date: Tue Apr 19 21:45:54 2011
New Revision: 1095222
URL: http://svn.apache.org/viewvc?rev=1095222&view=rev
Log:
creating test for bugrep 50507 Exec task may mix the stderr and stdout output
while logging it
Added:
ant/core/trunk/src/etc/testcases/taskdefs/exec/blabla.sh
ant/core/trunk/src/etc/testcases/taskdefs/exec/blabla.xml
Modified:
ant/core/trunk/src/etc/testcases/taskdefs/exec/exec.xml
ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/ExecTaskTest.java
Added: ant/core/trunk/src/etc/testcases/taskdefs/exec/blabla.sh
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/etc/testcases/taskdefs/exec/blabla.sh?rev=1095222&view=auto
==============================================================================
--- ant/core/trunk/src/etc/testcases/taskdefs/exec/blabla.sh (added)
+++ ant/core/trunk/src/etc/testcases/taskdefs/exec/blabla.sh Tue Apr 19
21:45:54 2011
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+echo "some blablablablablablablablablablablabla error message" err>&2
+echo "some blablablablablablablablablablablabla info message" out
+echo "some blablablablablablablablablablablabla error message" err>&2
+echo "some blablablablablablablablablablablabla info message" out
+echo "some blablablablablablablablablablablabla error message" err>&2
+echo "some blablablablablablablablablablablabla info message" out
+echo "some blablablablablablablablablablablabla error message" err>&2
+echo "some blablablablablablablablablablablabla info message" out
+echo "some blablablablablablablablablablablabla error message" err>&2
+echo "some blablablablablablablablablablablabla info message" out
Added: ant/core/trunk/src/etc/testcases/taskdefs/exec/blabla.xml
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/etc/testcases/taskdefs/exec/blabla.xml?rev=1095222&view=auto
==============================================================================
--- ant/core/trunk/src/etc/testcases/taskdefs/exec/blabla.xml (added)
+++ ant/core/trunk/src/etc/testcases/taskdefs/exec/blabla.xml Tue Apr 19
21:45:54 2011
@@ -0,0 +1,19 @@
+<project name="blabla" default="doit">
+ <target name="blabla">
+ <exec executable="sh">
+ <arg value="blabla.sh" />
+ </exec>
+ </target>
+ <target name="doit">
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ <antcall target="blabla"/>
+ </target>
+</project>
Modified: ant/core/trunk/src/etc/testcases/taskdefs/exec/exec.xml
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/etc/testcases/taskdefs/exec/exec.xml?rev=1095222&r1=1095221&r2=1095222&view=diff
==============================================================================
--- ant/core/trunk/src/etc/testcases/taskdefs/exec/exec.xml (original)
+++ ant/core/trunk/src/etc/testcases/taskdefs/exec/exec.xml Tue Apr 19 21:45:54
2011
@@ -20,12 +20,15 @@
<!-- this property can be overriden programatically in the Java test
case -->
<property name="timeToWait" value="10"/>
<!-- this property can be overriden programatically in the Java test
case -->
- <property name="logFile" value="${java.io.tmpdir}/spawn.log"/>
+ <property name="output" location="${java.io.tmpdir}/testoutput"/>
+ <mkdir dir="${output}"/>
+ <property name="logFile" value="${output}/spawn.log"/>
<property environment="env"/>
<!-- UNIX -->
<available file="sh" filepath="${env.PATH}" property="sh.executable"/>
<!-- CYGWIN -->
<available file="sh.exe" filepath="${env.PATH}"
property="sh.exe.executable"/>
+ <property name="test.can.run" value="1"/>
<condition property="test.can.run">
<or>
<isset property="sh.executable"/>
@@ -42,7 +45,25 @@
</exec>
</target>
+ <target name="test-out-and-err" description="see
https://issues.apache.org/bugzilla/show_bug.cgi?id=50507" depends="init"
if="test.can.run">
+ <mkdir dir="${output}" />
+ <ant antfile="blabla.xml" output="${output}/test-out-and-err.txt">
+ </ant>
+ <loadfile srcfile="${output}/test-out-and-err.txt"
property="test-out-and-err">
+ <filterchain>
+ <replaceregex pattern="^\s*\[exec\] some
blablablablablablablablablablablabla error message err$" flags="m" />
+ <replaceregex pattern="^\s*\[exec\] some
blablablablablablablablablablablabla info message out$" flags="m" />
+ </filterchain>
+ </loadfile>
+ <echo>${test-out-and-err}</echo>
+ <fail message="output indicates a mixup of out and err">
+ <condition>
+ <contains string="${test-out-and-err}" substring="[exec]" />
+ </condition>
+ </fail>
+
+ </target>
+
<target name="cleanup">
- <delete file="${logFile}" />
</target>
</project>
Modified:
ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/ExecTaskTest.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/ExecTaskTest.java?rev=1095222&r1=1095221&r2=1095222&view=diff
==============================================================================
---
ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/ExecTaskTest.java
(original)
+++
ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/ExecTaskTest.java
Tue Apr 19 21:45:54 2011
@@ -103,6 +103,10 @@ public class ExecTaskTest extends BuildF
logFile = new File(logFile.getAbsolutePath());
assertTrue("log file found after spawn", logFile.exists());
}
+
+ public void testOutAndErr() {
+ project.executeTarget("test-out-and-err");
+ }
private static class MonitoredBuild implements Runnable {
private Thread worker;