<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/releases/photon/201806271001">
    <equals
      arg1="${release}"
      arg2="photon" />
  </condition>
  <condition
    property="referenceRepoDir"
    value="/home/data/httpd/download.eclipse.org/releases/oxygen/201712201001">
    <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: applicationResult: ${applicationResult}" />
    <condition property="failuresoccurred">
      <and>
        <isset property="applicationResult" />
        <not>
          <equals
            arg1="${applicationResult}"
            arg2="0" />
        </not>
      </and>
    </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>