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

  <!-- define 'env' globally -->
  <property environment="env" />

  <!-- The 'aggrPropertyFile' 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" />
  <echo message="aggrPropertyFile: ${aggrPropertyFile}" />
  <property file="${aggrPropertyFile}" />

  <!-- We'll put test output files right in "the p2 repository". Though, later
       we will want to "save old reports", without saving the entire repository.
       .../reporeports/reports contains the actual reports.
       .../reporeports contains the index.html file.
  -->
  <property
    name="testRepoDirectory"
    value="${BUILD_HOME}/aggregation/final" />

  <property
    name="reportOutputDir"
    value="${testRepoDirectory}/buildInfo" />

  <!-- buildInfo should already exist, and contain "properties" of build -->
  <mkdir dir="${reportOutputDir}" />

  <!-- We should be passed (or, inherit) the release value from where
       this script it called in build.xml.
       TODO: would be best to control this value from Hudson property,
       so that changes in future do not require changes in code.
       NOTE: another example of where "update" and "mainline" would
       be useful variables to have?
  -->
  <!-- reference repository for update releases is alwasy the previous release.
       reference repository for mainline release should be the latest "update staging" repostory,
       once it exists and is accurate.
  -->
  <condition
    property="referenceRepoDir"
    value="/home/data/httpd/download.eclipse.org/staging/neon/">
    <equals
      arg1="${release}"
      arg2="oxygen" />
  </condition>
  <condition
    property="referenceRepoDir"
    value="/home/data/httpd/download.eclipse.org/releases/neon/201610111000">
    <equals
      arg1="${release}"
      arg2="neon" />
  </condition>
  <echo message="[DEBUG] Computing referenceRepoDir. release: ${release}" />
  <echo message="[DEBUG] Computed referenceRepoDir: ${referenceRepoDir}" />

  <property
    name="eclipseTestExecutable"
    value="${ECLIPSE_EXE}" />

  <!--
     Each "type" of build, ends by calling one of these targets.
     So far, only the "clean build" has any real tests, be eventually others
     could have some checks/tests.
  -->
  <target
    name="validateOnlyTests"
    description="Tests appropriate when only metadata available">
    <echo message="No validation-only tests, yet (other then the aggregation validation itself)." />
  </target>

  <target
    name="cachedBuildTests"
    description="Tests appropriate when metadata and artifacts available (though, for cached build, may be 'extra' artifacts not cleaned up yet">
    <echo message="No cached build tests, yet (other then the cached aggregation build itself)." />
  </target>

  <target
    name="cleanBuildTests"
    description="The primary and final time to test metadata and artifacts."
    depends="runReports">
    <echo>
      Ran standard clean build reports and tests.
      See report in ${reportOutputDir}.
    </echo>
  </target>

  <target name="runReports">
    <echo message="Creating Reports" />
    <property
      name="REPORT_APP_NAME"
      value="org.eclipse.cbi.p2repo.analyzers.repoReport" />
    <property
      name="VM_TEST_ARGS"
      value="-Djava.io.tmpdir=${BUILD_HOME}/tmp -DreportOutputDir=${reportOutputDir} -DreportRepoDir=${testRepoDirectory} -DreferenceRepo=${referenceRepoDir}" />
    <echo message="in runReports: eclipseTestExecutable: ${eclipseTestExecutable}" />
    <echo message="in runReports: REPORT_APP_NAME: ${REPORT_APP_NAME}" />
    <echo message="in runReports: JAVA_HOME: ${JAVA_HOME}" />
    <echo message="in runReports: VM_TEST_ARGS: ${VM_TEST_ARGS}" />
    <echo message="in runReports: reportOutputDir: ${reportOutputDir}" />
    <echo message="in runReports: testRepoDirectory: ${testRepoDirectory}" />
    <echo message="in runReports: referenceRepoDir: ${referenceRepoDir}" />
    <echo message="in runReports: basedir: ${basedir}" />
    <exec
      executable="${eclipseTestExecutable}"
      dir="${basedir}"
      failonerror="false"
      failifexecutionfails="true"
      resultproperty="applicationResult">
      <arg value="-nosplash" />
      <arg value="-debug" />
      <arg value="--launcher.suppressErrors" />
      <arg value="-application" />
      <arg value="${REPORT_APP_NAME}" />
      <arg value="-vmargs" />
      <arg line="${VM_TEST_ARGS}" />
    </exec>

    <echo message="DEBUG: resultproperty: ${resultproperty}" />
    <condition property="failuresoccurred">
      <not>
        <equals
          arg1="resultproperty"
          arg2="0" />
      </not>
    </condition>
      <!-- currently, we (should) never "fail" ... but, will in future -->
      <!-- need to learn how to signal "unstable" to Hudson, as opposed to outright failure. -->
    <fail if="failuresoccurred" />
  </target>

</project>