<?xml version="1.0" encoding="UTF-8"?>

<project name="testsuite" default="run" basedir=".">
  <!-- The property ${eclipse-home} should be passed into this script -->
  <!-- Set a meaningful default value for when it is not. -->
  <property name="eclipse-home" value="${basedir}\..\.."/>

  <!-- sets the properties eclipse-home, and library-file -->
  <property name="plugin-name" value="org.eclipse.jdt.ui.tests"/>
  <property name="library-file"
            value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>

  <!-- This target holds all initialization code that needs to be done for -->
  <!-- all tests that are to be run. Initialization for individual tests -->
  <!-- should be done within the body of the suite target. -->
  <target name="init">
    <tstamp/>
    <delete>
      <fileset dir="${eclipse-home}" includes="org*.xml"/>
    </delete>

  </target>

  <!-- This target defines the tests that need to be run. -->
  <target name="suite">
    <property name="jdt-folder" 
              value="${eclipse-home}/jdt_folder"/>
    <delete dir="${jdt-folder}" quiet="true"/>
   	<condition property="os.isWindows">
    	<os family="windows"/>
  	</condition>

  	
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${jdt-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" value="org.eclipse.jdt.ui.tests.AutomatedSuite"/>
    </ant>
    
  </target>
  
    <!-- leak test target -->
  <target name="leaksuite">
    <property name="jdt-folder" value="${eclipse-home}/jdt_folder"/>

    <delete dir="${jdt-folder}" quiet="true"/>
    <condition property="java9vmargs" value="--add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.localedata/sun.util.resources.cldr.provider=ALL-UNNAMED --add-opens jdk.localedata/sun.util.resources.provider=ALL-UNNAMED --add-opens java.base/jdk.internal.module=ALL-UNNAMED --add-opens java.base/java.lang.module=ALL-UNNAMED --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED --add-opens java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/jdk.internal.math=ALL-UNNAMED --add-opens java.base/jdk.internal.misc=ALL-UNNAMED --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED" else="">
      <matches pattern="^(9|10|11|12)$" string="${ant.java.version}" />
    </condition>
    
	<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${jdt-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" value="org.eclipse.jdt.ui.tests.LeakTestSuite"/>
      <property name="vmargs" value="${java9vmargs}" />
    </ant>
  </target>
  
  <!-- This target holds code to cleanup the testing environment after -->
  <!-- after all of the tests have been run. You can use this target to -->
  <!-- delete temporary files that have been created. -->
  <target name="cleanup">

  </target>

  <!-- This target runs the test suite. Any actions that need to happen -->
  <!-- after all the tests have been run should go here. -->
  <target name="run" depends="init,leaksuite,suite,cleanup">
    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
      <property name="includes" value="org*.xml"/>
      <property name="output-file" value="${plugin-name}.xml"/>
    </ant>

  </target>

  <!-- performance test target -->
  <target name="performance-suite">
    <property name="jdt-ui-performance-folder" value="${eclipse-home}/jdt_ui_performance_folder"/>
    <property name="data-dir" value="${jdt-ui-performance-folder}"/>
    <property name="plugin-name" value="${plugin-name}"/>
    
    <delete dir="${jdt-ui-performance-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="classname" value="org.eclipse.jdt.ui.tests.performance.views.PackageExplorerPerfTest"/>
    </ant>
    
    <delete dir="${jdt-ui-performance-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="classname" value="org.eclipse.jdt.ui.tests.performance.views.PackageExplorerEmptyPerfTest"/>
    </ant>
    
    <delete dir="${jdt-ui-performance-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="classname" value="org.eclipse.jdt.ui.tests.performance.views.PackageExplorerColdPerfTest"/>
    </ant>
    
    <delete dir="${jdt-ui-performance-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="classname" value="org.eclipse.jdt.ui.tests.performance.views.PackageExplorerWarmPerfTest"/>
    </ant>
  	
    <delete dir="${jdt-ui-performance-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="classname" value="org.eclipse.jdt.ui.tests.performance.views.CleanUpPerfTest"/>
    </ant>
  	
    <delete dir="${jdt-ui-performance-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="classname" value="org.eclipse.jdt.ui.tests.performance.views.OrganizeImportsPerfTest"/>
    </ant>
  	
    <delete dir="${jdt-ui-performance-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="classname" value="org.eclipse.jdt.ui.tests.performance.views.OpenTypePerfTest"/>
    </ant>
    
  	<!--
    <delete dir="${jdt-ui-performance-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="classname" value="org.eclipse.jdt.ui.tests.performance.views.PackageExplorerWorkspaceWarmPerfTest"/>
    </ant>
    
    <delete dir="${jdt-ui-performance-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="classname" value="org.eclipse.jdt.ui.tests.performance.views.PackageExplorerWorkspacePerfTest"/>
    </ant>
  	-->
  </target>
		
  <!-- This target runs the performance test suites. -->
  <target name="performance" depends="init,performance-suite,cleanup">
    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
      <property name="includes" value="org*.xml"/>
      <property name="output-file" value="${plugin-name}.xml"/>
    </ant>
  </target>		

</project>
