|
- <?xml version="1.0"?>
- <!--
- 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.
- -->
- <project name="exec-test" default="spawn" basedir=".">
- <property name="output" location="${java.io.tmpdir}/testoutput"/>
- <target name="init">
- <!-- 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 -->
- <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"/>
- <condition property="test.can.run">
- <or>
- <isset property="sh.executable"/>
- <isset property="sh.exe.executable"/>
- </or>
- </condition>
- </target>
-
- <target name="spawn" depends="init" if="test.can.run">
- <exec executable="sh" spawn="true">
- <arg value="spawn.sh"/>
- <arg value="${timeToWait}" />
- <arg value="${logFile}" />
- </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}"/>
- <delete dir="${output}"/>
- </target>
- </project>
|