<project
    name="SimRel Tests"
    basedir="."
    default="runTests">

    <property
        environment="env"/>
	<!--
	        This property file name is itself a property, so it can be overridden
	        on one machine versus another. We do it this way, instead of just specifying
	        -propertyFile on command line, so that the property values can be "nested"
	        in other property values and evaluated lazily.
	    -->

    <property
        name="aggrPropertyFile"
        value="aggr.properties"/>

    <property
        file="${aggrPropertyFile}"/>

	<!-- By default, we'll put test output files in "staging" so the index.html file   -->
    <property
        name="outputDirectory"
        value="${TEST_RESULTS}"/>

    <target
        name="runTests">
        <echo
            message="Creating Reports"/>

        <echoproperties/>

        <mkdir
            dir="${outputDirectory}"/>

    	<!-- NOTE: we strongly assume 'outputDirectory' is dedicated completely for our use! -->
        <delete>
            <fileset
                dir="${outputDirectory}">
            </fileset>
        </delete>
       <mkdir
           dir="${outputDirectory}/reports"/>

        <copy
            tofile="${outputDirectory}/index.html"
            file="${BUILD_TESTS_DIR}/templateFiles/indexPending.html"
            overwrite="true"/>

        <generateRepositoryReports
            tempWorkingDir="/tmp/tempWorkingLocation"
            directoryToCheck="${testRepoDirectory}"
            outputResultsDirectory="${outputDirectory}/reports"
            failuresoccurred="failuresoccurred"/>

        <copy
            tofile="${outputDirectory}/index.html"
            file="${BUILD_TESTS_DIR}/templateFiles/indexmainpresign.html"
            overwrite="true"/>

        <exec
            executable="${BUILD_TESTS_DIR}/verifydir.sh">
            <arg
                value="${testRepoDirectory}"/>
            <arg
                value="${outputDirectory}/reports"/>
	
        	<!-- we'll check jars only, to save time ... assume pack.gz files would be correct too  
           <arg
                value=".*\(\.jar$\|\.jar\.pack\.gz$\)"/> -->
        	
        	<!-- restricting to 'common' just for testing ... so finishes relatively quickly 
            <arg
                value=".*common.*\.jar$"/>
                -->
            <arg
                 value=".*\.jar$"/>
        </exec>

        <copy
            tofile="${outputDirectory}/index.html"
            file="${BUILD_TESTS_DIR}/templateFiles/indexmain.html"
            overwrite="true"/>

		<!--
        <mkdir
            dir="${outputDirectory}/output-eclipse"/>
        <testLayouttask
            tempWorkingDir="/tmp/tempWorkingLocation"
            directoryToCheck="/home/data/httpd/download.eclipse.org/eclipse/updates/3.7milestones/S-3.7RC3-I201105261708/"
            outputResultsDirectory="${outputDirectory}/output-eclipse"
            failuresoccurred="failuresoccurred"/>
-->

		<!-- TODO: use tmp on staging directory to avoid filling up /tmp? -->
        <delete
            dir="/tmp/tempWorkingLocation"/>

		<!-- currently, we never "fail" ... but, will in future -->
        <fail
            if="failuresoccurred"/>
    </target>
</project>