| <?xml version="1.0" encoding="UTF-8"?> |
| <project |
| name="Automated Eclipse Testing in Production" |
| default="all" |
| basedir="."> |
| |
| <!--Directory name of org.eclipse.test plug-in installed in ${eclipse-home} --> |
| <target |
| name="setup" |
| unless="noclean" |
| depends="init"> |
| <condition |
| property="setupTarget" |
| value="setup-zip"> |
| <contains |
| string="${runtimeArchive}" |
| substring=".zip" /> |
| </condition> |
| <condition |
| property="setupTarget" |
| value="setup-tar.gz"> |
| <contains |
| string="${runtimeArchive}" |
| substring=".tar.gz" /> |
| </condition> |
| <condition |
| property="setupTarget" |
| value="setup-dmg"> |
| <contains |
| string="${runtimeArchive}" |
| substring=".dmg" /> |
| </condition> |
| |
| <condition |
| property="extraIU" |
| value="org.eclipse.equinox.p2.discovery.feature.feature.group"> |
| <equals |
| arg1="${testPlugin}" |
| arg2="org.eclipse.equinox.p2.tests.discovery" /> |
| </condition> |
| |
| <condition |
| property="extraIU" |
| value="org.eclipse.test.feature.group"> |
| <equals |
| arg1="${testPlugin}" |
| arg2="org.eclipse.pde.build.tests" /> |
| </condition> |
| |
| <condition |
| property="extraIU" |
| value="org.eclipse.unittest.ui"> |
| <equals |
| arg1="${testPlugin}" |
| arg2="org.eclipse.ua.tests.doc" /> |
| </condition> |
| |
| <antcall target="setupRepo" /> |
| <antcall target="${setupTarget}" /> |
| |
| <antcall target="installPreferences"> |
| <param |
| name="eclipse-home" |
| value="${eclipse-home}/eclipse" /> |
| </antcall> |
| <antcall target="installExtraPlugins" /> |
| <antcall target="installTestPlugins" /> |
| |
| </target> |
| |
| <target |
| name="installPreferences" |
| depends="initStreamSpecificProperties"> |
| <property |
| name="preferenceDirectory" |
| value="${eclipse-home}/configuration/.settings/" /> |
| <mkdir dir="${preferenceDirectory}" /> |
| <echo message="[PREFS] made preferenceDirectory at ${preferenceDirectory}" /> |
| <antcall target="installNetworkPreferences" /> |
| |
| </target> |
| |
| |
| <target |
| name="installNetworkPreferences" |
| if="org.eclipse.core.net.prefs"> |
| <echo |
| message="${org.eclipse.core.net.prefs}" |
| file="${preferenceDirectory}/org.eclipse.core.net.prefs" /> |
| <!-- TODO: be sure to check if quoted properly --> |
| <echo message="[PREFS] wrote ${org.eclipse.core.net.prefs} to ${preferenceDirectory}" /> |
| </target> |
| |
| <!--Extract test bundles repo --> |
| <target |
| name="setupRepo" |
| depends="init" |
| unless="testRepoCreated"> |
| <mkdir dir="${repoLocation}" /> |
| <exec |
| dir="${basedir}" |
| executable="unzip" |
| failonerror="false" |
| resultproperty="unzipResultCode"> |
| <arg value="-o" /> |
| <arg value="-qq" /> |
| <arg value="${repoZip}" /> |
| <arg value="-d" /> |
| <arg value="${repoLocation}" /> |
| </exec> |
| <echo message="unzip resultcode: ${unzipResultCode}" /> |
| <!-- TODO: can do more checking here, if successful, before we set to value --> |
| <property |
| name="testRepoCreated" |
| value="true" /> |
| </target> |
| |
| <!--setup for zip archives --> |
| <target |
| name="setup-zip" |
| depends="init" |
| description="Reinstall the test Eclipse installation if specified by user"> |
| <condition property="runtimeArchiveExists"> |
| <available file="${executionDir}/${runtimeArchive}" /> |
| </condition> |
| <fail |
| unless="runtimeArchiveExists" |
| message="runtime archive (SDK) did not exist where expected. runtimeArchive: ${executionDir}/${runtimeArchive}" /> |
| <echo message="Deleting existing ${eclipse-home}, if any." /> |
| <delete |
| dir="${eclipse-home}" |
| verbose="false" /> |
| <echo message="Fresh extract ${runtimeArchive} into ${install} for testing." /> |
| <exec |
| dir="${install}" |
| executable="unzip"> |
| <arg value="-q" /> |
| <arg path="${executionDir}/${runtimeArchive}" /> |
| <arg value="-d" /> |
| <arg path="${install}" /> |
| </exec> |
| |
| </target> |
| |
| <!--setup for tar.gz archives --> |
| <target |
| name="setup-tar.gz" |
| depends="init" |
| description="Reinstall the test Eclipse installation if specified by user"> |
| <condition property="runtimeArchiveExists"> |
| <available file="${executionDir}/${runtimeArchive}" /> |
| </condition> |
| <fail |
| unless="runtimeArchiveExists" |
| message="runtime archive (SDK) did not exist where expected. runtimeArchive: ${executionDir}/${runtimeArchive}" /> |
| <echo message="Deleting existing ${eclipse-home}, if any." /> |
| <delete |
| dir="${eclipse-home}" |
| verbose="false" /> |
| |
| <echo message="Fresh extract ${runtimeArchive} into ${install} for testing." /> |
| <exec |
| dir="${install}" |
| executable="tar"> |
| <arg value="-xf" /> |
| <arg path="${executionDir}/${runtimeArchive}" /> |
| <arg value="-C" /> |
| <arg path="${install}" /> |
| </exec> |
| |
| </target> |
| |
| <!--setup for dmg archives --> |
| <target |
| name="setup-dmg" |
| depends="init" |
| description="Reinstall the test Eclipse installation if specified by user"> |
| <condition property="runtimeArchiveExists"> |
| <available file="${executionDir}/${runtimeArchive}" /> |
| </condition> |
| <fail |
| unless="runtimeArchiveExists" |
| message="runtime archive (SDK) did not exist where expected. runtimeArchive: ${executionDir}/${runtimeArchive}" /> |
| <echo message="Deleting existing ${eclipse-home}, if any." /> |
| <delete |
| dir="${eclipse-home}" |
| verbose="false" /> |
| |
| <echo message="Fresh extract ${runtimeArchive} into ${install} for testing." /> |
| <exec |
| dir="${install}" |
| executable="hdiutil"> |
| <arg value="attach" /> |
| <arg path="${executionDir}/${runtimeArchive}" /> |
| </exec> |
| <exec |
| dir="${install}" |
| executable="cp"> |
| <arg value="-r" /> |
| <arg path="/Volumes/Eclipse/Eclipse.app" /> |
| <arg path="${install}/" /> |
| </exec> |
| <exec |
| dir="${install}" |
| executable="hdiutil"> |
| <arg value="detach" /> |
| <arg path="/Volumes/Eclipse" /> |
| </exec> |
| <exec |
| dir="${install}" |
| executable="xattr"> |
| <arg value="-rc" /> |
| <arg path="${install}/Eclipse.app" /> |
| </exec> |
| |
| </target> |
| |
| <!--use an stable version of the director so that instability in the current build doesn't cause all the tests to fail --> |
| <target |
| name="initPlatformArhiveName" |
| unless="platformArchive"> |
| <echo message="os.arch ${os.arch}" /> |
| |
| <condition |
| property="platformArchive" |
| value="eclipse-platform-${previousReleaseVersion}-macosx-cocoa-x86_64.dmg"> |
| <and> |
| <os family="mac" /> |
| <os family="unix" /> |
| <or> |
| <os arch="x86_64" /> |
| <os arch="amd64" /> |
| </or> |
| </and> |
| </condition> |
| <condition |
| property="platformArchive" |
| value="eclipse-platform-${previousReleaseVersion}-macosx-cocoa-aarch64.dmg"> |
| <and> |
| <os family="mac" /> |
| <os family="unix" /> |
| <or> |
| <os arch="aarch64" /> |
| <os arch="arm64" /> |
| <os arch="arm64e" /> |
| </or> |
| </and> |
| </condition> |
| <condition |
| property="platformArchive" |
| value="eclipse-platform-${previousReleaseVersion}-macosx-cocoa.dmg"> |
| <and> |
| <os family="mac" /> |
| <os family="unix" /> |
| <!-- should not need, as long as x86_64 rules (above) comes first |
| <os arch="i386" /> |
| --> |
| </and> |
| </condition> |
| <condition |
| property="platformArchive" |
| value="eclipse-platform-${previousReleaseVersion}-win32-x86_64.zip"> |
| <and> |
| <os family="windows" /> |
| <or> |
| <os arch="x86_64" /> |
| <os arch="amd64" /> |
| </or> |
| </and> |
| </condition> |
| <condition |
| property="platformArchive" |
| value="eclipse-platform-${previousReleaseVersion}-linux-gtk-x86_64.tar.gz"> |
| <and> |
| <os family="unix" /> |
| <or> |
| <os arch="x86_64" /> |
| <os arch="amd64" /> |
| </or> |
| </and> |
| </condition> |
| <condition |
| property="platformArchive" |
| value="eclipse-platform-${previousReleaseVersion}-linux-gtk-ppc64le.tar.gz"> |
| <and> |
| <os family="unix" /> |
| <os arch="ppc64le" /> |
| </and> |
| </condition> |
| <condition |
| property="platformArchive" |
| value="eclipse-platform-${previousReleaseVersion}-linux-gtk-aarch64.tar.gz"> |
| <and> |
| <os family="unix" /> |
| <os arch="aarch64" /> |
| </and> |
| </condition> |
| |
| <fail |
| unless="platformArchive" |
| message="platformArchive is not defined. Check that conditions cover os arch ${os.arch}. May be VM dependent.)" /> |
| |
| </target> |
| <target name="setupPlatform"> |
| <condition |
| property="platformTarget" |
| value="platform-zip"> |
| <contains |
| string="${platformArchive}" |
| substring=".zip" /> |
| </condition> |
| <condition |
| property="platformTarget" |
| value="platform-tar.gz"> |
| <contains |
| string="${platformArchive}" |
| substring=".tar.gz" /> |
| </condition> |
| <condition |
| property="platformTarget" |
| value="platform-dmg"> |
| <contains |
| string="${platformArchive}" |
| substring=".dmg" /> |
| </condition> |
| <fail |
| unless="platformTarget" |
| message="platformTarget is not defined. Check that platformArchive variable and value is defined correctly, such as in equinoxp2tests.properties in the appropriate testConfig" /> |
| <echo message="platformTarget ${platformTarget} platformArchive ${platformArchive}" /> |
| <!-- The "platformArchive" is a minimal, stable version of eclipse runtime binary, |
| that is used only for its "p2Director" application, to install tests into |
| to target test environment. The intent is to make sure that apart of the tests |
| works consistently, and does not "break the tests", simply because of some recent |
| but in p2Director. (while unlikely, these days ... since that code is not under active |
| development ... you never know). We test for both "Eclipse.app" and "eclipse.app" |
| since the case of our app may change, and the file system of MacOSX may or may |
| not be set to "case sensitive". |
| --> |
| <condition property="basePlatformInstalled"> |
| <or> |
| <available file="${platformLocation}/eclipse" /> |
| <available file="${platformLocation}/Eclipse.app" /> |
| <available file="${platformLocation}/eclipse.app" /> |
| </or> |
| </condition> |
| <antcall target="${platformTarget}" /> |
| <antcall target="installPreferences"> |
| <param |
| name="eclipse-home" |
| value="${platformLocation}/eclipse" /> |
| </antcall> |
| </target> |
| |
| |
| <!--setup for platform zip archives --> |
| <target |
| name="platform-zip" |
| unless="basePlatformInstalled" |
| depends="init" |
| description="Install the base binary platform installation"> |
| <condition property="platformArchiveExists"> |
| <available file="${platformLocation}/${platformArchive}" /> |
| </condition> |
| <fail |
| unless="platformArchiveExists" |
| message="plaform archive did not exist where expected. platformArchive: ${platformLocation}/${platformArchive}" /> |
| <!-- remove eclipse home directory, to be sure completely fresh --> |
| <delete |
| verbose="false" |
| dir="${platformLocation}/eclipse" /> |
| <exec |
| dir="${platformLocation}" |
| executable="unzip"> |
| <arg value="-q" /> |
| <arg path="${platformLocation}/${platformArchive}" /> |
| <arg value="-d" /> |
| <arg path="${platformLocation}" /> |
| </exec> |
| </target> |
| |
| <!--setup for platform tar.gz archives --> |
| <target |
| name="platform-tar.gz" |
| unless="basePlatformInstalled" |
| depends="init" |
| description="Install the base binary platform installation"> |
| <condition property="platformArchiveExists"> |
| <available file="${platformLocation}/${platformArchive}" /> |
| </condition> |
| <fail |
| unless="platformArchiveExists" |
| message="plaform archive did not exist where expected. platformArchive: ${platformLocation}/${platformArchive}" /> |
| <delete |
| verbose="false" |
| dir="${platformLocation}/eclipse" /> |
| <exec |
| dir="${platformLocation}" |
| executable="tar"> |
| <arg value="-xf" /> |
| <arg path="${platformLocation}/${platformArchive}" /> |
| <arg value="-C" /> |
| <arg path="${platformLocation}" /> |
| </exec> |
| </target> |
| |
| <!--setup for dmg archives --> |
| <target |
| name="platform-dmg" |
| unless="basePlatformInstalled" |
| depends="init" |
| description="Install the base binary platform installation"> |
| <condition property="platformArchiveExists"> |
| <available file="${platformLocation}/${platformArchive}" /> |
| </condition> |
| <fail |
| unless="platformArchiveExists" |
| message="plaform archive did not exist where expected. platformArchive: ${platformLocation}/${platformArchive}" /> |
| <delete |
| verbose="false" |
| dir="${platformLocation}/eclipse" /> |
| <echo message="Fresh extract ${runtimeArchive} into ${install} for testing." /> |
| <exec |
| dir="${platformLocation}" |
| executable="hdiutil"> |
| <arg value="attach" /> |
| <arg path="${platformLocation}/${platformArchive}" /> |
| </exec> |
| <exec |
| dir="${platformLocation}" |
| executable="cp"> |
| <arg value="-r" /> |
| <arg path="/Volumes/Eclipse/Eclipse.app" /> |
| <arg path="${platformLocation}/" /> |
| </exec> |
| <exec |
| dir="${platformLocation}" |
| executable="hdiutil"> |
| <arg value="detach" /> |
| <arg path="/Volumes/Eclipse" /> |
| </exec> |
| <exec |
| dir="${platformLocation}" |
| executable="xattr"> |
| <arg value="-rc Eclipse.app" /> |
| </exec> |
| </target> |
| |
| |
| <target |
| name="installExtraPlugins" |
| depends="init" |
| if="extraIU"> |
| |
| <path id="launcher.paths"> |
| <fileset |
| dir="${eclipse-home}" |
| includes="plugins/org.eclipse.equinox.launcher_*" /> |
| </path> |
| <property |
| name="launcherPath" |
| refid="launcher.paths" /> |
| |
| |
| <echo>-installExtraIU ${extraIU} +</echo> |
| <echo> from current.build.repo: ${current.build.repo} </echo> |
| <echo> into eclipse-home: ${eclipse-home} </echo> |
| <echo> using launcher: ${launcherPath} </echo> |
| <java |
| jar="${launcherPath}" |
| failonerror="false" |
| dir="${eclipse-home}" |
| timeout="900000" |
| fork="true" |
| output="${directorLogs}/director-${extraIU}.log" |
| append="true" |
| resultproperty="directorcode"> |
| <arg value="-vm" /> |
| <arg path="${java.home}/bin/java" /> |
| <arg value="-application" /> |
| <arg value="org.eclipse.equinox.p2.director" /> |
| <arg value="-consoleLog" /> |
| <arg value="-debug" /> |
| <arg value="-flavor" /> |
| <arg value="tooling" /> |
| <arg value="-installIUs" /> |
| <arg value="${extraIU}" /> |
| <arg value="-repository" /> |
| <arg value="${current.build.repo}" /> |
| </java> |
| </target> |
| |
| <target |
| name="installTestPlugins" |
| depends="init"> |
| <path id="launcher.paths"> |
| <fileset |
| dir="${eclipse-home}" |
| includes="plugins/org.eclipse.equinox.launcher_*" /> |
| </path> |
| <property |
| name="launcherPath" |
| refid="launcher.paths" /> |
| <antcall target="setupPlatform" /> |
| <antcall target="installPreferences"> |
| <param |
| name="eclipse-home" |
| value="${eclipse-home}" /> |
| </antcall> |
| <echo>-installTestIU ${testPlugin} +</echo> |
| <echo> from ${repoLocation} </echo> |
| <echo> into ${eclipse-home} </echo> |
| <echo> using launcher: ${launcherPath} </echo> |
| <java |
| jar="${launcherPath}" |
| failonerror="false" |
| dir="${eclipse-home}" |
| timeout="900000" |
| fork="true" |
| output="${directorLogs}/director-${testPlugin}.log" |
| append="true" |
| resultproperty="directorcode"> |
| <arg value="-vm" /> |
| <arg path="${java.home}/bin/java" /> |
| <arg value="-application" /> |
| <arg value="org.eclipse.equinox.p2.director" /> |
| <arg value="-consoleLog" /> |
| <arg value="-debug" /> |
| <arg value="-flavor" /> |
| <arg value="tooling" /> |
| <arg value="-installIUs" /> |
| <arg |
| value="${testPlugin},org.eclipse.test,org.eclipse.ant.optional.junit,org.eclipse.test.performance,org.eclipse.test.performance.win32" /> |
| <arg value="-repository" /> |
| <arg value="file:${repoLocation}" /> |
| </java> |
| |
| </target> |
| |
| <target |
| name="initWorkspace" |
| unless="WORKSPACE"> |
| <property environment="env" /> |
| <condition |
| property="WORKSPACE" |
| value="${env.WORKSPACE}" |
| else="${basedir}"> |
| <isset property="env.WORKSPACE" /> |
| </condition> |
| </target> |
| <target |
| name="initProductionProperties" |
| depends="initWorkspace"> |
| <!-- |
| during production testing, previous steps persists some properties |
| that we would otherwise not have access too. Such as those set on |
| Hudson command line. |
| --> |
| <property file="${WORKSPACE}/production.properties" /> |
| |
| </target> |
| <target |
| name="initBuildId" |
| unless="buildId"> |
| <!--property file that can contain the buildId, if not otherwise set --> |
| <property file="label.properties" /> |
| <fail |
| unless="buildId" |
| message="buildId (e.g I20140731-0800) needs to be provided to run the tests" /> |
| </target> |
| |
| <target |
| name="initBuildType" |
| depends="initBuildId" |
| unless="buildType"> |
| |
| <fail |
| unless="buildId" |
| message="buildId value must be provided by caller (such as 'I20120717-0800'" /> |
| <!-- |
| this "buildId check" may be overly strict, but best to start off strict for now, |
| loosen in future if we start to find/have variety |
| --> |
| <condition property="buildIdOK"> |
| <matches |
| pattern="^[IMXYNPSRU]\d{8}-\d{4}$" |
| string="${buildId}" /> |
| </condition> |
| <fail |
| message="buildId variable had unexpected format. Should be of the form [IMXYNPSRU] 8 digits '-' 4 digits, but was ${buildId}" |
| unless="buildIdOK" /> |
| |
| <loadresource property="buildType"> |
| <string value="${buildId}"/> |
| <filterchain> |
| <tokenfilter> |
| <replaceregex pattern="^([IMXYNPSRU])(\d{8})-(\d{4})$" replace="\1"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| <echo message="buildType: ${buildType}"/> |
| |
| <loadresource property="buildIdTimestamp"> |
| <string value="${buildId}"/> |
| <filterchain> |
| <tokenfilter> |
| <replaceregex pattern="^([IMXYNPSRU])(\d{8})-(\d{4})$" replace="\2\3"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| <echo message="buildIdTimestamp: ${buildIdTimestamp}"/> |
| |
| |
| <!-- |
| <script language="javascript"><![CDATA[ |
| var buildId = project.getProperty("buildId"); |
| var pattern = new RegExp(/^([IMXYNPSRU])(\d{8})-(\d{4})$/); |
| |
| var sArray = pattern.exec(buildId); |
| // sArray 0 is "whole match" |
| project.setProperty("buildType", sArray[1]); |
| project.setProperty("buildIdTimestamp",sArray[2]+sArray[3]); |
| ]]> |
| </script> |
| --> |
| <fail unless="buildType" /> |
| </target> |
| <target |
| name="initCurrentUpdateSite" |
| depends="initDownloadHosts, initStreamVariables, initBuildId, initBuildType" |
| unless="currentUpdateSite"> |
| <property |
| name="currentUpdateSite" |
| value="https://${DOWNLOAD_HOST}/eclipse/updates/${updateSiteSegment}-${buildType}-builds/${buildId}" /> |
| </target> |
| <target |
| name="initStreamSpecificProperties" |
| depends="initConfigurationDir" |
| unless="streamSpecificPropertiesSet"> |
| <!-- |
| Note: configurationDir used to be set by runTest2.xml in 'production' |
| environment only. We may want to set to basedir, if not already set. |
| But, this file, streamSpecific.properties should always be optional. |
| TODO: better document what is in that file. |
| --> |
| |
| <property file="${configurationDir}/streamSpecific.properties" /> |
| <property |
| name="streamSpecificPropertiesSet" |
| value="true" /> |
| </target> |
| |
| <!-- |
| main purpose of initStreamVariables, it to be sure we have eclipseStreamMajor |
| and eclipseStreamMinor. Uses Javascript, which requires Java 1.6 (or ... else gets complicated to |
| setup) |
| --> |
| <target |
| name="initStreamVariables" |
| depends="initDownloadHosts,initConfigurationDir,initStreamSpecificProperties"> |
| |
| <property file="${configurationDir}/streamSpecific.properties" /> |
| <fail |
| unless="eclipseStream" |
| message="eclipseStream value must be provided by caller, such as '4.3.0'." /> |
| <!-- |
| Not clear why, but I've seen "eclipseStream" value have a trailing |
| ?blank? that gets picked up when read in as string. |
| Seems it might be a couple of ant issues? |
| Luckily we never use it as a whole string (just major and minor) |
| so we can ignore spaces. |
| --> |
| <condition property="streamOK"> |
| <matches |
| pattern="^\s*\d+\.\d+(\.\d+)?\s*$" |
| string="${eclipseStream}" /> |
| </condition> |
| <fail |
| message="eclipseStream variable had unexpected format. Should be of form digit.digit[.digit], but was ${eclipseStream}" |
| unless="streamOK" /> |
| |
| <loadresource property="eclipseStreamMajor"> |
| <string value="${eclipseStream}"/> |
| <filterchain> |
| <tokenfilter> |
| <replaceregex pattern="^(\d+)\.(\d+)(\.(\d+))" replace="\1"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| <echo message="eclipseStreamMajor: ${eclipseStreamMajor}"/> |
| |
| <loadresource property="eclipseStreamMinor"> |
| <string value="${eclipseStream}"/> |
| <filterchain> |
| <tokenfilter> |
| <replaceregex pattern="^(\d+)\.(\d+)(\.(\d+))" replace="\2"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| <echo message="eclipseStreamMinor: ${eclipseStreamMinor}"/> |
| <!-- |
| <script language="javascript"><![CDATA[ |
| var eclipseStream = project.getProperty("eclipseStream"); |
| var pattern = new RegExp(/^\s*(\d+)\.(\d+)(\.(\d+))?\s*$/); |
| |
| var sArray = pattern.exec(eclipseStream); |
| // sArray[0] is "whole match" |
| |
| project.setProperty("eclipseStreamMajor", sArray[1]); |
| project.setProperty("eclipseStreamMinor", sArray[2]); |
| // currently don't |
| // set eclipseStreamService since not used, |
| // but it is optional in this context, so if needed, need to check |
| // length of array and assign "0" if not provided. |
| // project.setProperty("eclipseStreamService", sArray[3]); |
| ]]> |
| </script> |
| --> |
| <fail |
| unless="eclipseStreamMajor" |
| message="eclipseStreamMajor not defined or computable" /> |
| <fail |
| unless="eclipseStreamMinor" |
| message="eclipseStreamMinor not defined or computable" /> |
| <!-- |
| <fail |
| unless="eclipseStreamService" |
| message="eclipseStreamService not defined or computable" /> |
| --> |
| </target> |
| |
| <target |
| name="initBasicDirectories" |
| depends="initWorkspace,initBuildId, initStreamSpecificProperties,initInstallDir, initEclipseHome" |
| unless="basicDirectoriesInitialized"> |
| |
| <property environment="env" /> |
| |
| <condition |
| property="repoBuildIdToUse" |
| value="${baselinePerfBuildId}" |
| else="${buildId}"> |
| <istrue value="${baselinePerf}" /> |
| </condition> |
| <property |
| name="repoZip" |
| value="${executionDir}/eclipse-junit-tests-${repoBuildIdToUse}.zip" /> |
| <echo message="repoZip: ${repoZip}" /> |
| |
| <property |
| name="repoLocation" |
| value="${executionDir}/testRepo" /> |
| <echo message="repoLocation: ${repoLocation}" /> |
| |
| |
| <property |
| name="platformLocation" |
| value="${executionDir}/platformLocation" /> |
| <mkdir dir="${platformLocation}" /> |
| <echo message="platformLocation: ${platformLocation}" /> |
| |
| <!-- The directory that will contain all files containing information on the tests that ran. --> |
| <property |
| name="results" |
| value="${executionDir}/results" /> |
| <mkdir dir="${results}" /> |
| <mkdir dir="${results}/xml" /> |
| <mkdir dir="${results}/html" /> |
| <echo message="results: ${results}" /> |
| |
| <!--Directory for JUnit report output, console log output and .log content for each test suite. |
| Overrides default in org.eclipse.test/library.xml --> |
| <property |
| name="junit-report-output" |
| value="${results}/${testedPlatform}" /> |
| <mkdir dir="${junit-report-output}" /> |
| <echo message="junit-report-output: ${junit-report-output}" /> |
| |
| <property |
| name="directorLogs" |
| value="${results}/${testedPlatform}/directorLogs" /> |
| <mkdir dir="${directorLogs}" /> |
| <echo message="directorLogs: ${directorLogs}" /> |
| |
| <property |
| name="eclipse.perf.samples.out" |
| value="${results}/${testedPlatform}-perf-samples.dat" /> |
| <echo message="eclipse.perf.samples.out: ${eclipse.perf.samples.out}" /> |
| |
| <!-- this directory, with some sort files are created during unit tests |
| ... need to find where to disable/enable JaCoCo --> |
| <property |
| name="coverage-output" |
| value="${results}/coverageIGNORE" /> |
| |
| <property |
| name="basicDirectoriesInitialized" |
| value="true" /> |
| <echo message="basicDirectoriesInitialized" /> |
| </target> |
| |
| <!-- this method used only during "unit testing" of this test.xml itself --> |
| <target |
| name="testCopyFilesIfTesting" |
| if="env.TESTING_TEST_XML"> |
| <echo message="Test of test running on ${osgi.os}" /> |
| <echo |
| message="Reading config from ${WORKSPACE}/eclipse.platform.releng.aggregator/production/testScripts/configuration/sdk.tests/testConfigs/${osgi.os}" /> |
| <copy todir="${executionDir}"> |
| <fileset |
| dir="${WORKSPACE}/eclipse.platform.releng.aggregator/production/testScripts/configuration/sdk.tests/testConfigs/${osgi.os}" /> |
| </copy> |
| </target> |
| |
| <target name="initConfigurationDir"> |
| <property |
| name="configurationDir" |
| value="${WORKSPACE}/eclipse.platform.releng.aggregator/production/testScripts/configuration" /> |
| </target> |
| |
| <target |
| name="initInstallDir" |
| depends="initBuildId, initStreamSpecificProperties, checkInstallDir" |
| unless="install"> |
| <property |
| name="testDir" |
| value="${WORKSPACE}/workarea/${buildId}" /> |
| <echo message="[DEBUG] in test.xml: testDir: ${testDir}" /> |
| |
| <property |
| name="executionDir" |
| value="${testDir}/eclipse-testing" /> |
| <mkdir dir="${executionDir}" /> |
| <echo message="[DEBUG] in test.xml: executionDir: ${executionDir}" /> |
| |
| <!--default directory where test-eclipse-sdk will be installed --> |
| <property |
| name="install" |
| value="${executionDir}/test-eclipse" /> |
| <mkdir dir="${install}" /> |
| <echo message="[DEBUG] in test.xml: the value of install was set to: ${install}" /> |
| </target> |
| |
| <target |
| name="checkInstallDir" |
| if="install"> |
| <echo message="[DEBUG] in test.xml: Found the value of install already set, to ${install}" /> |
| </target> |
| |
| <!-- |
| eclipse-home set to be the folder that will later contain the plugins |
| folder. |
| Note: we have to set eclipse-home, rather than use "eclpse.home" or "eclipse.home.location" |
| because at this point we are executing from the "setup" version of eclipse |
| (aka basebuilder) |
| not the actual version of eclipse we will later be testing. |
| --> |
| <target |
| name="initEclipseHome" |
| depends="initStreamSpecificProperties, initInstallDir, checkEclipseHome" |
| unless="eclipse-home"> |
| |
| <condition |
| property="eclipse-home" |
| value="${install}/Eclipse.app/Contents/Eclipse" |
| else="${install}/eclipse"> |
| <and> |
| <os family="mac" /> |
| <istrue value="${isMacAppLayout}" /> |
| </and> |
| </condition> |
| <echo message="[DEBUG] the value of eclipse-home was set to: ${eclipse-home}" /> |
| </target> |
| |
| <!-- |
| Intended to be called only from initEclipseHome, simply as extra information |
| for debugging |
| --> |
| <target |
| name="checkEclipseHome" |
| if="eclipse-home"> |
| <echo message="[DEBUG] Found the value of eclipse-home already set, to ${eclipse-home}" /> |
| </target> |
| |
| <!-- |
| DOWNLOAD_HOST and ARCHIVE_HOST can be defined on command line, |
| if running on local test environments. |
| --> |
| <target |
| name="initDownloadHosts" |
| unless="DOWNLOAD_HOST"> |
| <!-- we assume if "DOWNLOAD_HOST" is defined, then ARCHIVE_HOST has been defined also. --> |
| <property environment="env" /> |
| <echo message="DEBUG: Found DOWNLOAD_HOST not defined. Setting in 'initDownloadHosts'" /> |
| <echo message="DEBUG: env.DOWNLOAD_HOST: ${env.DOWNLOAD_HOST}" /> |
| <condition |
| property="DOWNLOAD_HOST" |
| value="${env.DOWNLOAD_HOST}" |
| else="download.eclipse.org"> |
| <isset property="env.DOWNLOAD_HOST" /> |
| </condition> |
| <condition |
| property="ARCHIVE_HOST" |
| value="${env.ARCHIVE_HOST}" |
| else="archive.eclipse.org"> |
| <isset property="env.ARCHIVE_HOST" /> |
| </condition> |
| </target> |
| |
| <target |
| name="init" |
| depends="initWorkspace,initProductionProperties,initBuildId, initBuildType, initDownloadHosts, initStreamVariables, initCurrentUpdateSite, initBasicDirectories,initOSes, initPlatformArhiveName, setRuntimeArchive" |
| unless="testingIsInitialized"> |
| |
| <property environment="env" /> |
| |
| <!-- |
| Normally these files are copied by other scripts, if not simply testing this script with "testTestXMLScript.sh", |
| but when testing in isolation, want this simple way to |
| copy what we need. Note: the testCopyFileIfTesting target |
| will need adjustment, depending on OS that the testing is done on. |
| --> |
| <antcall target="testCopyFilesIfTesting" /> |
| |
| <property |
| name="current.build.repo" |
| value="https://${DOWNLOAD_HOST}/eclipse/updates/${eclipseStreamMajor}.${eclipseStreamMinor}-${buildType}-builds/${buildId}" /> |
| <echo message="current.build.repo: ${current.build.repo}" /> |
| |
| |
| <property |
| name="last.release.build.repo" |
| value="https://${DOWNLOAD_HOST}/eclipse/updates/${previousReleaseVersionRepo}" /> |
| <echo message="last.release.build.repo: ${last.release.build.repo}" /> |
| |
| <!-- |
| test.properties file contains the plugin name including version number, |
| and list of required test plug-ins expressed as command-line argument to unzip executable. |
| Generated and packaged at build time by CBI custom Maven task. |
| --> |
| <property file="test.properties" /> |
| |
| |
| <!--Unlock files on the Mac before starting tests. |
| Required to delete some workspace directories (org.eclipse.core.filebuffers.tests and Team CVS tests). --> |
| <exec |
| dir="${executionDir}" |
| executable="chflags" |
| os="Mac OS X"> |
| <arg value="-R" /> |
| <arg value="nouchg" /> |
| <arg path="${install}" /> |
| </exec> |
| |
| <!-- |
| Originally needed/provided for p2 tests, but they appear not to |
| be successful in reading or using these properties any longer. |
| Not clear why. So we'll leave it in until understood. (It may be |
| useful in other scenarios, such when tested stand alone?) |
| --> |
| <property |
| name="org.eclipse.equinox.p2.reconciler.tests.platform.archive" |
| value="${executionDir}/${platformArchive}" /> |
| |
| <property |
| name="org.eclipse.equinox.p2.reconciler.tests.platform.archive" |
| value="${executionDir}/${platformArchive}" /> |
| <property |
| name="org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive" |
| value="NotCurrentlyImplementedOrUsed" /> |
| <property |
| name="org.eclipse.equinox.p2.tests.current.build.repo" |
| value="${current.build.repo}" /> |
| <property |
| name="org.eclipse.equinox.p2.tests.last.release.build.repo" |
| value="${last.release.build.repo}" /> |
| |
| <!-- |
| It is likely we do not need the equinoxp2propertiesFile any longer, |
| during production tests, at least. |
| --> |
| <antcall target="rewriteEquinoxp2PropertiesFile" /> |
| |
| <property |
| name="testingIsInitialized" |
| value="true" /> |
| </target> |
| |
| <target name="rewriteEquinoxp2PropertiesFile"> |
| <property |
| name="EOL" |
| value="${line.separator}" /> |
| |
| <echo |
| message="# properties for p2 tests${EOL}" |
| file="${executionDir}/equinoxp2tests.properties" |
| append="false" |
| force="true" /> |
| |
| <echo |
| message="org.eclipse.equinox.p2.reconciler.tests.platform.archive=${org.eclipse.equinox.p2.reconciler.tests.platform.archive}${EOL}" |
| file="${executionDir}/equinoxp2tests.properties" |
| append="true" /> |
| <echo |
| message="org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive=${org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive}${EOL}" |
| file="${executionDir}/equinoxp2tests.properties" |
| append="true" /> |
| <echo |
| message="org.eclipse.equinox.p2.tests.current.build.repo=${current.build.repo}${EOL}" |
| file="${executionDir}/equinoxp2tests.properties" |
| append="true" /> |
| <echo |
| message="org.eclipse.equinox.p2.tests.last.release.build.repo=${last.release.build.repo}${EOL}" |
| file="${executionDir}/equinoxp2tests.properties" |
| append="true" /> |
| </target> |
| |
| <!-- runtimeArchive is set to either current, just built SDK, or |
| if "baselinePerf" has been set to true, then that baselinePerf version is used, |
| such as for performance baselinePerf run. baselinePerf is set in Hudson |
| job. |
| --> |
| <target |
| name="setRuntimeArchive" |
| unless="runtimeArchive"> |
| |
| <condition |
| property="buildIdToUse" |
| value="${baselinePerfVersionLabel}" |
| else="${buildId}"> |
| <istrue value="${baselinePerf}" /> |
| </condition> |
| <echo message="setRuntimeArchive os ${os} ws ${ws} arch ${arch}" /> |
| <echo message="build id of runtimeArchive ${buildIdToUse}" /> |
| <condition |
| property="runtimeArchive" |
| value="eclipse-SDK-${buildIdToUse}-win32-x86_64.zip"> |
| <and> |
| <equals |
| arg1="${os}" |
| arg2="win32" /> |
| <equals |
| arg1="${ws}" |
| arg2="win32" /> |
| <equals |
| arg1="${arch}" |
| arg2="x86_64" /> |
| </and> |
| </condition> |
| <condition |
| property="runtimeArchive" |
| value="eclipse-SDK-${buildIdToUse}-linux-gtk-x86_64.tar.gz"> |
| <and> |
| <equals |
| arg1="${os}" |
| arg2="linux" /> |
| <equals |
| arg1="${ws}" |
| arg2="gtk" /> |
| <equals |
| arg1="${arch}" |
| arg2="x86_64" /> |
| </and> |
| </condition> |
| <condition |
| property="runtimeArchive" |
| value="eclipse-SDK-${buildIdToUse}-linux-gtk-ppc64le.tar.gz"> |
| <and> |
| <equals |
| arg1="${os}" |
| arg2="linux" /> |
| <equals |
| arg1="${ws}" |
| arg2="gtk" /> |
| <equals |
| arg1="${arch}" |
| arg2="ppc64le" /> |
| </and> |
| </condition> |
| <condition |
| property="runtimeArchive" |
| value="eclipse-SDK-${buildIdToUse}-linux-gtk-aarch64.tar.gz"> |
| <and> |
| <equals |
| arg1="${os}" |
| arg2="linux" /> |
| <equals |
| arg1="${ws}" |
| arg2="gtk" /> |
| <equals |
| arg1="${arch}" |
| arg2="aarch64" /> |
| </and> |
| </condition> |
| <condition |
| property="runtimeArchive" |
| value="eclipse-SDK-${buildIdToUse}-macosx-cocoa-x86_64.dmg"> |
| <and> |
| <equals |
| arg1="${os}" |
| arg2="macosx" /> |
| <equals |
| arg1="${ws}" |
| arg2="cocoa" /> |
| <equals |
| arg1="${arch}" |
| arg2="x86_64" /> |
| </and> |
| </condition> |
| <condition |
| property="runtimeArchive" |
| value="eclipse-SDK-${buildIdToUse}-macosx-cocoa-aarch64.dmg"> |
| <and> |
| <equals |
| arg1="${os}" |
| arg2="macosx" /> |
| <equals |
| arg1="${ws}" |
| arg2="cocoa" /> |
| <equals |
| arg1="${arch}" |
| arg2="aarch64" /> |
| </and> |
| </condition> |
| <echo message="runtimeArchive ${runtimeArchive} !!! " /> |
| </target> |
| |
| <target |
| name="setJVMProperties" |
| depends="setJVMfromUserSpecified" |
| unless="jvm"> |
| <property |
| name="VMSource" |
| value="VM used for tests, is same that invoked Ant: '${java.home}/bin/java' (that is, 'jvm' not specified by caller)." /> |
| <echo message="VMSource: $VMSource" /> |
| <!-- |
| Remember, we don't want J2SE-X.0 set at all, if there is nothing |
| that can run tests that require that level. |
| --> |
| |
| <exec |
| executable="${java.home}/bin/java" |
| outputproperty="javaversion"> |
| <arg value="-version" /> |
| </exec> |
| <echo message="full output from 'java -version' of ${java.home}/bin/java is " /> |
| <echo message="${javaversion}" /> |
| |
| <!--enable tests requiring 1.5 or or greater vms to run if running vm level detected matches required execution environment --> |
| <condition |
| property="J2SE-5.0" |
| value="${java.home}/bin/java"> |
| <or> |
| <matches |
| string="${java.version}" |
| pattern="^1\.[5678].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[9].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[10].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[11].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[12].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[13].*$" /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-6.0" |
| value="${java.home}/bin/java"> |
| <or> |
| <matches |
| string="${java.version}" |
| pattern="^1\.[678].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[9].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[10].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[11].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[12].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[13].*$" /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-7.0" |
| value="${java.home}/bin/java"> |
| <or> |
| <matches |
| string="${java.version}" |
| pattern="^1\.[78].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[9].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[10].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[11].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[12].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[13].*$" /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-8.0" |
| value="${java.home}/bin/java"> |
| <or> |
| <matches |
| string="${java.version}" |
| pattern="^1\.[8].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[9].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[10].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[11].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[12].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[13].*$" /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-9.0" |
| value="${java.home}/bin/java"> |
| <or> |
| <matches |
| string="${java.version}" |
| pattern="^[9].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[10].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[11].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[12].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[13].*$" /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-10.0" |
| value="${java.home}/bin/java"> |
| <or> |
| <matches |
| string="${java.version}" |
| pattern="^[10].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[11].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[12].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[13].*$" /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-11.0" |
| value="${java.home}/bin/java"> |
| <or> |
| <matches |
| string="${java.version}" |
| pattern="^[11].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[12].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[13].*$" /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-12.0" |
| value="${java.home}/bin/java"> |
| <or> |
| <matches |
| string="${java.version}" |
| pattern="^[12].*$" /> |
| <matches |
| string="${java.version}" |
| pattern="^[13].*$" /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-13.0" |
| value="${java.home}/bin/java"> |
| <matches |
| string="${java.version}" |
| pattern="^[13].*$" /> |
| </condition> |
| <echo |
| level="info" |
| message="DEBUG: values from setJVMProperties" /> |
| <echo |
| level="info" |
| message="J2SE-13.0: ${J2SE-13.0}" /> |
| <echo |
| level="info" |
| message="J2SE-12.0: ${J2SE-12.0}" /> |
| <echo |
| level="info" |
| message="J2SE-11.0: ${J2SE-11.0}" /> |
| <echo |
| level="info" |
| message="J2SE-10.0: ${J2SE-10.0}" /> |
| <echo |
| level="info" |
| message="J2SE-9.0: ${J2SE-9.0}" /> |
| <echo |
| level="info" |
| message="J2SE-8.0: ${J2SE-8.0}" /> |
| <echo |
| level="info" |
| message="J2SE-7.0: ${J2SE-7.0}" /> |
| <echo |
| level="info" |
| message="J2SE-6.0: ${J2SE-6.0}" /> |
| <echo |
| level="info" |
| message="J2SE-5.0: ${J2SE-5.0}" /> |
| </target> |
| |
| <target |
| name="setJVMfromUserSpecified" |
| if="jvm"> |
| |
| <property |
| name="VMSource" |
| value="VM used for tests, specified by caller: 'jvm'=${jvm}" /> |
| <echo message="VMSource: $VMSource" /> |
| <!-- |
| Remember, we don't want J2SE-X.0 set at all, if there is nothing |
| that can run tests that require that level. |
| --> |
| <exec |
| executable="${jvm}" |
| outputproperty="javaversion"> |
| <arg value="-version" /> |
| </exec> |
| <echo message="full output from 'java -version' of ${jvm} is " /> |
| <echo message="${javaversion}" /> |
| |
| <condition |
| property="J2SE-13.0" |
| value="${jvm}"> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[13].*"' /> |
| </condition> |
| <condition |
| property="J2SE-12.0" |
| value="${jvm}"> |
| <or> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[12].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[13].*"' /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-11.0" |
| value="${jvm}"> |
| <or> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[11].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[12].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[13].*"' /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-10.0" |
| value="${jvm}"> |
| <or> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[10].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[11].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[12].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[13].*"' /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-9.0" |
| value="${jvm}"> |
| <or> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[9].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[10].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[11].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[12].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[13].*"' /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-8.0" |
| value="${jvm}"> |
| <or> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "1\.[8].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[9].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[10].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[11].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[12].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[13].*"' /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-7.0" |
| value="${jvm}"> |
| <or> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "1\.[78].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[9].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[10].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[11].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[12].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[13].*"' /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-6.0" |
| value="${jvm}"> |
| <or> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "1\.[678].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[9].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[10].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[11].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[12].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[13].*"' /> |
| </or> |
| </condition> |
| <condition |
| property="J2SE-5.0" |
| value="${jvm}"> |
| <or> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "1\.[5678].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[9].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='^java version "[10].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[11].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[12].*"' /> |
| <matches |
| string="${javaversion}" |
| pattern='.*version "[13].*"' /> |
| </or> |
| </condition> |
| <echo |
| level="info" |
| message="DEBUG: values from setJVMfromUserSpecified" /> |
| <echo message="J2SE-13.0: ${J2SE-13.0}" /> |
| <echo message="J2SE-12.0: ${J2SE-12.0}" /> |
| <echo message="J2SE-11.0: ${J2SE-11.0}" /> |
| <echo message="J2SE-10.0: ${J2SE-10.0}" /> |
| <echo message="J2SE-9.0: ${J2SE-9.0}" /> |
| <echo message="J2SE-8.0: ${J2SE-8.0}" /> |
| <echo message="J2SE-7.0: ${J2SE-7.0}" /> |
| <echo message="J2SE-6.0: ${J2SE-6.0}" /> |
| <echo message="J2SE-5.0: ${J2SE-5.0}" /> |
| </target> |
| |
| <macrodef name="runTests"> |
| <attribute name="testPlugin" /> |
| <sequential> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start @{testPlugin}" /> |
| </antcall> |
| <!--always use eclipse executable to launch tests with the exception of performance tests --> |
| <!--condition property="useEclipseExe" value="true"> |
| <not> |
| <equals arg1="${test.target}" arg2="performance"/> |
| </not> |
| </condition --> |
| |
| <condition |
| property="performance.target.present" |
| value="true"> |
| <isset property="@{testPlugin}.has.performance.target" /> |
| </condition> |
| |
| <!--override the value of this property with performance if the tests run on performance machine --> |
| <property |
| name="test.target" |
| value="junit" /> |
| <property |
| name="report" |
| value="@{testPlugin}" /> |
| |
| <echo message="test.target in 'runTests': ${test.target}" /> |
| |
| <!-- <param name="testPlugin" value="${@{testPlugin}}" /> --> |
| <antcall target="${test.target}"> |
| <param |
| name="testPlugin" |
| value="@{testPlugin}" /> |
| <param |
| name="output-file" |
| value="@{testPlugin}.xml" /> |
| </antcall> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end @{testPlugin}" /> |
| </antcall> |
| </sequential> |
| </macrodef> |
| |
| <target |
| name="junit" |
| depends="init" |
| unless="skip.test"> |
| <antcall target="setup"> |
| </antcall> |
| <property file="finalPluginsVersions.properties" /> |
| <property |
| name="library-file" |
| value="${executionDir}/library.xml" /> |
| <property |
| name="junit-stylesheet" |
| value="${executionDir}/JUNIT.XSL" /> |
| <fileset |
| id="plugin.test" |
| dir="${eclipse-home}/plugins"> |
| <filename name="${testPlugin}_*/test.xml" /> |
| </fileset> |
| <property |
| name="plugintest" |
| refid="plugin.test" /> |
| <echo>trying to find ${testPlugin}_*/test.xml</echo> |
| <condition |
| property="plugintest.present" |
| value="true"> |
| <not> |
| <equals |
| arg1="${plugintest}" |
| arg2="" /> |
| </not> |
| </condition> |
| <fileset |
| id="plugin.jar" |
| dir="${eclipse-home}/plugins"> |
| <filename name="${testPlugin}_*.jar" /> |
| </fileset> |
| <property |
| name="pluginjar" |
| refid="plugin.jar" /> |
| <echo>trying to find ${testPlugin}_*.jar</echo> |
| <condition |
| property="pluginjar.present" |
| value="true"> |
| <not> |
| <equals |
| arg1="${pluginjar}" |
| arg2="" /> |
| </not> |
| </condition> |
| <antcall target="extractTestXml" /> |
| <fileset |
| id="test.plugin.file" |
| dir="${eclipse-home}/plugins"> |
| <filename name="${testPlugin}_*/test.xml" /> |
| </fileset> |
| <property |
| name="testPluginX" |
| refid="test.plugin.file" /> |
| <echo>trying to find ${testPluginX}</echo> |
| <condition |
| property="pluginexists" |
| value="true"> |
| <not> |
| <equals |
| arg1="${testPluginX}" |
| arg2="" /> |
| </not> |
| </condition> |
| <antcall target="runSuite" /> |
| <antcall target="genResults" /> |
| </target> |
| |
| <target |
| name="extractTestXml" |
| if="pluginjar.present" |
| unless="plugintest.present"> |
| <echo>extracting jar</echo> |
| <basename property="plugindirectory" file="${eclipse-home}/plugins/${pluginjar}" suffix=".jar"/> |
| <unzip src="${eclipse-home}/plugins/${pluginjar}" dest="${eclipse-home}/plugins/${plugindirectory}" overwrite="true"> |
| <patternset> |
| <include name="test.xml"/> |
| </patternset> |
| </unzip> |
| </target> |
| |
| <target |
| name="runSuite" |
| if="pluginexists"> |
| <ant |
| antfile="${eclipse-home}/plugins/${testPluginX}" |
| dir="${eclipse-home}" /> |
| </target> |
| |
| |
| <target |
| name="runSuitePerf" |
| depends="initStreamVariables" |
| if="pluginexists"> |
| <echo message="testPluginX ${testPluginX}" /> |
| <property |
| name="junit-stylesheet" |
| value="${executionDir}/JUNIT.XSL" /> |
| <!-- |
| TODO: seems these "performance values" should "get into" library.xml in an easier way, that didn't require a change in library.xml. |
| TODO: some question on how "fine" to make name. Such as, should "platform, architecture, window system" be "separated" from "VM |
| value"? |
| TODO: for local, non-production tests, eclipse.perf.dbloc is not being assigned value from "localTestsProperties.shsource" as it |
| should. Perhaps needs tweak in Hudson job? |
| TODO: would have to compute these in runTest2.xml, to make part of production properties, |
| and phpproperties.php |
| --> |
| <!-- buildIdToUse equals either baselinePerfVersion or else equals buildId. In either case we want to collect the data --> |
| <!-- TODO: Do we need "buildID" coded somewhere, to know WHICH build to match with? |
| Or, else will take large number of "baselines" averaged? --> |
| |
| <condition |
| property="eclipse.perf.config" |
| value="build=${baselinePerfVersion}-${buildIdTimestamp};config=${testedPlatformConfig};jvm=${javaMajorVersion}" |
| else="build=${buildId};config=${testedPlatformConfig};jvm=${javaMajorVersion}"> |
| <istrue value="${baselinePerf}" /> |
| </condition> |
| <!-- |
| This "assert" property works, in this context, because we run baseline first, |
| when buildIdToUse != buildId that is a "baseline run" (so, no "assert" for that baseline run). |
| But, when buildIdToUse == buildId that is a "normal run" so then we do want to "assert" against the already-collected baseline |
| data. |
| Note: Note, docs say order does not matter, and could specify "just build" and reset filled in with what's in 'config', but some |
| experiences makes me doubt that? |
| TODO: design problem: how to distinguish assert against baseline vs. baseline alt. |
| --> |
| <condition |
| property="eclipse.perf.assertAgainst" |
| value="build=${baselinePerfVersion}-${buildIdTimestamp};config=${testedPlatformConfig};jvm=${javaMajorVersion};"> |
| <equals |
| arg1="${buildIdToUse}" |
| arg2="${buildId}" /> |
| </condition> |
| <!-- frameworkperfargs is used by library.xml ... probably an easier way? --> |
| <condition |
| property="frameworkperfargs" |
| value="-DInternalWriteRawPerformanceData=${eclipse.perf.samples.out} -Declipse.perf.config=${eclipse.perf.config} -Declipse.perf.assertAgainst=${eclipse.perf.assertAgainst}" |
| else="-DInternalWriteRawPerformanceData=${eclipse.perf.samples.out} -Declipse.perf.config=${eclipse.perf.config}"> |
| <isset property="eclipse.perf.assertAgainst" /> |
| </condition> |
| |
| <ant |
| antfile="${eclipse-home}/plugins/${testPluginX}" |
| dir="${eclipse-home}" |
| target="performance" /> |
| </target> |
| |
| <target |
| name="performance" |
| if="performance.target.present" |
| unless="skip.test" |
| depends="init"> |
| <antcall target="setup" /> |
| <property file="finalPluginsVersions.properties" /> |
| <property |
| name="library-file" |
| value="${executionDir}/library.xml" /> |
| |
| <fileset |
| id="plugin.test" |
| dir="${eclipse-home}/plugins"> |
| <filename name="${testPlugin}_*/test.xml" /> |
| </fileset> |
| <property |
| name="plugintest" |
| refid="plugin.test" /> |
| <echo>trying to find ${testPlugin}_*/test.xml</echo> |
| <condition |
| property="plugintest.present" |
| value="true"> |
| <not> |
| <equals |
| arg1="${plugintest}" |
| arg2="" /> |
| </not> |
| </condition> |
| <fileset |
| id="plugin.jar" |
| dir="${eclipse-home}/plugins"> |
| <filename name="${testPlugin}_*.jar" /> |
| </fileset> |
| <property |
| name="pluginjar" |
| refid="plugin.jar" /> |
| <echo>trying to find ${testPlugin}_*.jar</echo> |
| <condition |
| property="pluginjar.present" |
| value="true"> |
| <not> |
| <equals |
| arg1="${pluginjar}" |
| arg2="" /> |
| </not> |
| </condition> |
| <antcall target="extractTestXml" /> |
| <fileset |
| id="test.plugin.file" |
| dir="${eclipse-home}/plugins"> |
| <filename name="${testPlugin}_*/test.xml" /> |
| </fileset> |
| <property |
| name="testPluginX" |
| refid="test.plugin.file" /> |
| <echo>trying to find ${testPluginX}</echo> |
| <condition |
| property="pluginexists" |
| value="true"> |
| <not> |
| <equals |
| arg1="${testPluginX}" |
| arg2="" /> |
| </not> |
| </condition> |
| <antcall target="runSuitePerf" /> |
| <antcall target="genResults" /> |
| </target> |
| |
| <target name="genResults"> |
| <copy |
| file="${eclipse-home}/${report}.xml" |
| tofile="${results}/xml/${report}_${testedPlatform}.xml" |
| failonerror="false" /> |
| <property |
| name="junit-stylesheet" |
| value="${executionDir}/JUNIT.XSL" /> |
| <!-- some "failures" are "bad enough" that the tests were not unpacked, so style sheet won't exist --> |
| <available |
| file="${junit-stylesheet}" |
| property="stylesheetexists" /> |
| <antcall target="convertToHTML" /> |
| |
| </target> |
| |
| <target |
| name="convertToHTML" |
| if="stylesheetexists" |
| depends="checkStylesheetexists"> |
| <xslt |
| style="${junit-stylesheet}" |
| basedir="${results}/xml" |
| destdir="${results}/html" |
| filenameparameter="filename"> |
| <factory> |
| <feature name="http://www.oracle.com/xml/jaxp/properties/enableExtensionFunctions" value="true"/> |
| </factory> |
| </xslt> |
| </target> |
| |
| <target |
| name="checkStylesheetexists" |
| unless="stylesheetexists"> |
| <echo message="ERROR: previous suite test install failed, so style sheet did not exist" /> |
| </target> |
| |
| <target |
| name="ant" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ant.tests.core" /> |
| </target> |
| |
| <target |
| name="antui" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ant.tests.ui" /> |
| </target> |
| |
| <target |
| name="compare" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.compare.tests" /> |
| </target> |
| |
| <target |
| name="equinoxcommon" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.equinox.common.tests" /> |
| </target> |
| |
| <target |
| name="equinoxds" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.equinox.ds.tests" /> |
| </target> |
| |
| <target |
| name="debug" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.debug.tests" /> |
| </target> |
| |
| <target |
| name="coreresources" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.core.tests.resources" /> |
| </target> |
| |
| <target |
| name="coreruntime" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.core.tests.runtime" /> |
| </target> |
| |
| <target |
| name="osgi" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.osgi.tests" /> |
| </target> |
| |
| <target |
| name="coreexpressions" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.core.expressions.tests" /> |
| </target> |
| |
| <target |
| name="ltkuirefactoringtests" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ltk.ui.refactoring.tests" /> |
| </target> |
| |
| <target |
| name="ltkcorerefactoringtests" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ltk.core.refactoring.tests" /> |
| </target> |
| |
| <target |
| name="text" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.text.tests" /> |
| </target> |
| |
| <target |
| name="jfacetext" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.jface.text.tests" /> |
| </target> |
| |
| <target |
| name="jfacedatabinding" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.jface.tests.databinding" /> |
| </target> |
| |
| <target |
| name="jface" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.jface.tests" /> |
| </target> |
| |
| <target name="filebuffers"> |
| <runTests testPlugin="org.eclipse.core.filebuffers.tests" /> |
| </target> |
| |
| <target |
| name="jdttext" |
| unless="skip.jdttext"> |
| <runTests testPlugin="org.eclipse.jdt.text.tests" /> |
| </target> |
| |
| <target |
| name="relEng" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.releng.tests" /> |
| <move |
| todir="${results}/chkpii" |
| includeEmptyDirs="no" |
| failonerror="false"> |
| <fileset dir="${results}/chkpii" /> |
| <mapper |
| type="glob" |
| from="*" |
| to="${testedPlatform}_*" /> |
| </move> |
| </target> |
| |
| <target |
| name="ua" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ua.tests" /> |
| </target> |
| |
| <target |
| name="uadoc" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ua.tests.doc" /> |
| </target> |
| |
| <target |
| name="coretestsnet" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.core.tests.net" /> |
| </target> |
| |
| <target |
| name="jdtcorecompiler" |
| depends="init, setJVMProperties"> |
| <condition |
| property="jvm" |
| value="${J2SE-5.0}"> |
| <isset property="J2SE-5.0" /> |
| </condition> |
| <runTests testPlugin="org.eclipse.jdt.core.tests.compiler" /> |
| </target> |
| |
| <target |
| name="jdtapt" |
| depends="init,setJVMProperties"> |
| <property |
| name="jvm" |
| value="${J2SE-5.0}" /> |
| <!--only run test if J2SE-5.0 property set --> |
| <condition property="skip.test"> |
| <not> |
| <isset property="J2SE-5.0" /> |
| </not> |
| </condition> |
| <runTests testPlugin="org.eclipse.jdt.apt.tests" /> |
| </target> |
| |
| <target |
| name="jdtaptpluggable" |
| depends="init, setJVMProperties"> |
| <property |
| name="jvm" |
| value="${J2SE-6.0}" /> |
| <!--only run test if J2SE-5.0 property set --> |
| <condition property="skip.test"> |
| <not> |
| <or> |
| <isset property="J2SE-6.0" /> |
| <isset property="J2SE-7.0" /> |
| <isset property="J2SE-8.0" /> |
| <isset property="J2SE-9.0" /> |
| </or> |
| </not> |
| </condition> |
| <runTests testPlugin="org.eclipse.jdt.apt.pluggable.tests" /> |
| </target> |
| |
| |
| <target |
| name="jdtcorebuilder" |
| depends="init, setJVMProperties"> |
| <!--Run with 1.5 vm if it is available --> |
| <condition |
| property="jvm" |
| value="${J2SE-5.0}"> |
| <isset property="J2SE-5.0" /> |
| </condition> |
| <runTests testPlugin="org.eclipse.jdt.core.tests.builder" /> |
| </target> |
| |
| <target |
| name="jdtcompilertool" |
| depends="init, setJVMProperties"> |
| <property |
| name="jvm" |
| value="${J2SE-6.0}" /> |
| <!--only run test if J2SE-6.0 property or greater is set --> |
| <condition property="skip.test"> |
| <not> |
| <or> |
| <isset property="J2SE-6.0" /> |
| <isset property="J2SE-7.0" /> |
| <isset property="J2SE-8.0" /> |
| <isset property="J2SE-9.0" /> |
| </or> |
| </not> |
| </condition> |
| <runTests testPlugin="org.eclipse.jdt.compiler.tool.tests" /> |
| </target> |
| |
| <target |
| name="jdtcompilerapt" |
| depends="init, setJVMProperties"> |
| <property |
| name="jvm" |
| value="${J2SE-6.0}" /> |
| <!--only run test if J2SE-6.0 property or greater is set --> |
| <condition property="skip.test"> |
| <not> |
| <or> |
| <isset property="J2SE-6.0" /> |
| <isset property="J2SE-7.0" /> |
| <isset property="J2SE-8.0" /> |
| <isset property="J2SE-9.0" /> |
| </or> |
| </not> |
| </condition> |
| <runTests testPlugin="org.eclipse.jdt.compiler.apt.tests" /> |
| </target> |
| |
| <target |
| name="jdtcoremodel" |
| depends="init, setJVMProperties"> |
| <condition |
| property="jvm" |
| value="${J2SE-5.0}"> |
| <isset property="J2SE-5.0" /> |
| </condition> |
| <runTests testPlugin="org.eclipse.jdt.core.tests.model" /> |
| </target> |
| |
| <target |
| name="jdtcoreperf" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.jdt.core.tests.performance" /> |
| </target> |
| |
| <target |
| name="jdtdebug" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.jdt.debug.tests" /> |
| </target> |
| |
| <target |
| name="jdtui" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.jdt.ui.tests" /> |
| </target> |
| |
| <target |
| name="jdtuirefactoring" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.jdt.ui.tests.refactoring" /> |
| </target> |
| |
| <target |
| name="pdeui" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.pde.ui.tests" /> |
| </target> |
| |
| <target |
| name="pdeua" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.pde.ua.tests" /> |
| </target> |
| |
| <target |
| name="pdeuitemplates" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.pde.ui.templates.tests" /> |
| </target> |
| |
| <target |
| name="pdegenericeditor" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.pde.genericeditor.extension.tests" /> |
| </target> |
| |
| <target |
| name="pdebuild" |
| depends="init"> |
| <property |
| name="pdebuild" |
| value="true" /> |
| <runTests testPlugin="org.eclipse.pde.build.tests" /> |
| </target> |
| |
| <target |
| name="swt" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.swt.tests" /> |
| </target> |
| |
| <target |
| name="teamcore" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.team.tests.core" /> |
| </target> |
| |
| <target |
| name="ui" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ui.tests" /> |
| </target> |
| |
| <target |
| name="uinavigator" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ui.tests.navigator" /> |
| </target> |
| |
| <target |
| name="uircp" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ui.tests.rcp" /> |
| </target> |
| |
| <target |
| name="uiforms" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ui.tests.forms" /> |
| </target> |
| |
| <target |
| name="uieditors" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ui.editors.tests" /> |
| </target> |
| |
| <target |
| name="uiperformance" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ui.tests.performance" /> |
| </target> |
| |
| <target |
| name="uiviews" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ui.tests.views.properties.tabbed" /> |
| </target> |
| |
| <target |
| name="uiworkbenchtexteditor" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ui.workbench.texteditor.tests" /> |
| </target> |
| |
| <target |
| name="genericEditor" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ui.genericeditor.tests" /> |
| </target> |
| |
| <target |
| name="urischeme" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.tests.urischeme" /> |
| </target> |
| |
| <target |
| name="update" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.update.tests.core" /> |
| </target> |
| |
| <target |
| name="pdeapitooling" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.pde.api.tools.tests" /> |
| </target> |
| |
| <target |
| name="equinoxsecurity" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.equinox.security.tests" /> |
| </target> |
| |
| <target |
| name="equinoxpreferences" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.equinox.preferences.tests" /> |
| </target> |
| |
| <target |
| name="equinoxhttpservlet" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.equinox.http.servlet.tests" /> |
| </target> |
| |
| <target |
| name="equinoxp2" |
| depends="init"> |
| <echo |
| message="DEBUG: org.eclipse.equinox.p2.reconciler.tests.platform.archive: ${org.eclipse.equinox.p2.reconciler.tests.platform.archive} " /> |
| |
| <runTests testPlugin="org.eclipse.equinox.p2.tests" /> |
| </target> |
| |
| <target |
| name="equinoxp2ui" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.equinox.p2.tests.ui" /> |
| </target> |
| |
| <target |
| name="equinoxp2discovery" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.equinox.p2.tests.discovery" /> |
| </target> |
| |
| <target |
| name="search" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.search.tests" /> |
| </target> |
| |
| <target |
| name="pdeds" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.pde.ds.tests" /> |
| </target> |
| |
| <target |
| name="pdejunit" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.pde.junit.runtime.tests" /> |
| </target> |
| |
| <target |
| name="bidi" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.equinox.bidi.tests" /> |
| </target> |
| |
| <target |
| name="e4Core" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.e4.core.tests" /> |
| </target> |
| |
| <target |
| name="e4Commands" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.e4.core.commands.tests" /> |
| </target> |
| |
| <target |
| name="e4Bindings" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.e4.ui.bindings.tests" /> |
| </target> |
| |
| <target |
| name="e4CssCore" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.e4.ui.tests.css.core" /> |
| </target> |
| |
| <target |
| name="e4CssSwt" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.e4.ui.tests.css.swt" /> |
| </target> |
| |
| <target |
| name="e4UI" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.e4.ui.tests" /> |
| </target> |
| |
| <target |
| name="uipluginchecks" |
| depends="init"> |
| <runTests testPlugin="org.eclipse.ui.tests.pluginchecks" /> |
| </target> |
| |
| <target |
| name="all" |
| depends="init"> |
| <!-- |
| <antcall target="relEng" /> |
| <antcall target="equinoxp2" /> |
| --> |
| <antcall target="quickTests" /> |
| <antcall target="longRunningTests" /> |
| |
| </target> |
| |
| <target |
| name="sdkTests" |
| depends="init"> |
| <antcall target="quickTests" /> |
| <antcall target="sdkLongRunningTests" /> |
| |
| </target> |
| |
| <!-- This and all the performance specific targets |
| are temporary, just to help investigate which work, which |
| don't, etc. --> |
| <target |
| name="allPerformance" |
| depends="init"> |
| <!-- There are 41 test suites to claim they have |
| performance targets. These "sub groups" are just |
| and attempt to help investigate which work, which don't, etc. --> |
| <antcall target="selectPerformance" /> |
| <antcall target="otherPerformance" /> |
| |
| |
| </target> |
| <!-- This and all the performance specific targets |
| are temporary, just to help investigate which work, which |
| don't, etc. Visually inspected each, and found these 21 do |
| have performance targets, which means there's about 20 that |
| have empty performance targets. |
| --> |
| <target |
| name="selectPerformance" |
| depends="init"> |
| <antcall target="antui" /> |
| <antcall target="compare" /> |
| <antcall target="coreresources" /> |
| <antcall target="coreruntime" /> |
| <antcall target="jdtdebug" /> |
| <antcall target="jdtui" /> |
| <!--https://bugs.eclipse.org/bugs/show_bug.cgi?id=443233 |
| <antcall target="osgi" /> |
| --> |
| <antcall target="pdeui" /> |
| <antcall target="pdeapitooling" /> |
| <antcall target="swt" /> |
| <antcall target="ua" /> |
| <antcall target="uiforms" /> |
| <antcall target="uiperformance" /> |
| <!-- temp remove, we do not run these in unit tests? See bug 380553. |
| <antcall target="uircp" /> |
| --> |
| |
| </target> |
| <target |
| name="otherPerformance" |
| depends="init"> |
| <!-- There is no performance tests for org.eclipse.equinox.p2.tests.ui |
| https://bugs.eclipse.org/bugs/show_bug.cgi?id=455137 |
| It has an empty performance target. |
| <antcall target="equinoxp2ui" /> |
| --> |
| |
| <!-- These three ran but took longer an an hour, some memory issues with one of them? --> |
| <antcall target="jdtcoreperf" /> |
| <antcall target="jdttext" /> |
| <antcall target="jdtuirefactoring" /> |
| </target> |
| <target |
| name="quickTests" |
| depends="init"> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start quickTests" /> |
| </antcall> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start platform" /> |
| </antcall> |
| <antcall target="platform" /> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end platform" /> |
| </antcall> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start pde" /> |
| </antcall> |
| <antcall target="pde" /> |
| <antcall target="pdeapitooling" /> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end pde" /> |
| </antcall> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start jdt" /> |
| </antcall> |
| <antcall target="jdt" /> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end jdt" /> |
| </antcall> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end quickTests" /> |
| </antcall> |
| |
| </target> |
| |
| <target |
| name="longRunningTests" |
| depends="init"> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start longRunningTests" /> |
| </antcall> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start platformLR" /> |
| </antcall> |
| <antcall target="platformLR" /> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end platformLR" /> |
| </antcall> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start jdtLR" /> |
| </antcall> |
| <antcall target="jdtLR" /> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end jdtLR" /> |
| </antcall> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start pdeLR" /> |
| </antcall> |
| <antcall target="pdeLR" /> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end pdeLR" /> |
| </antcall> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end longRunningTests" /> |
| </antcall> |
| |
| </target> |
| |
| <target |
| name="sdkLongRunningTests" |
| depends="init"> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start longRunningTests" /> |
| </antcall> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start sdkPlatformLR" /> |
| </antcall> |
| <antcall target="sdkPlatformLR" /> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end sdkPlatformLR" /> |
| </antcall> |
| |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start jdtLR" /> |
| </antcall> |
| <antcall target="jdtLR" /> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end jdtLR" /> |
| </antcall> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="start pdeLR" /> |
| </antcall> |
| <antcall target="pdeLR" /> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end pdeLR" /> |
| </antcall> |
| <antcall target="markCurrentTime"> |
| <param |
| name="message" |
| value="end longRunningTests" /> |
| </antcall> |
| |
| </target> |
| |
| <!-- |
| admittedly, not quite all of 'platform', but for |
| now serves dual purpose of a "short set" of tests, that area |
| relatively quick, and relatively reliable on build.eclipse.org hardware |
| --> |
| <target |
| name="platform" |
| depends="init"> |
| <!-- was removed, temporarily, see bug 400385 --> |
| <antcall target="relEng" /> |
| |
| <antcall target="ant" /> |
| <antcall target="antui" /> |
| <antcall target="compare" /> |
| <antcall target="coreruntime" /> |
| <antcall target="swt" /> |
| <antcall target="coreexpressions" /> |
| <antcall target="coretestsnet" /> |
| <antcall target="text" /> |
| <antcall target="jfacedatabinding" /> |
| <antcall target="filebuffers" /> |
| <antcall target="teamcore" /> |
| <antcall target="uadoc" /> |
| <antcall target="uieditors" /> |
| <antcall target="uinavigator" /> |
| <antcall target="uiworkbenchtexteditor" /> |
| <antcall target="uipluginchecks" /> |
| <antcall target="genericEditor" /> |
| <antcall target="urischeme" /> |
| |
| <antcall target="equinoxhttpservlet" /> |
| <antcall target="ua" /> |
| <antcall target="uiforms" /> |
| <antcall target="equinoxp2ui" /> |
| <antcall target="equinoxsecurity" /> |
| <antcall target="equinoxpreferences" /> |
| <antcall target="search" /> |
| <antcall target="debug" /> |
| <antcall target="e4Core" /> |
| <antcall target="e4Commands" /> |
| <antcall target="e4Bindings" /> |
| <antcall target="e4CssCore" /> |
| <antcall target="e4CssSwt" /> |
| <antcall target="e4UI" /> |
| <antcall target="equinoxcommon" /> |
| <antcall target="equinoxds" /> |
| <antcall target="equinoxp2discovery" /> |
| <antcall target="bidi" /> |
| <antcall target="ltkuirefactoringtests" /> |
| <antcall target="ltkcorerefactoringtests" /> |
| |
| </target> |
| |
| <!-- this group is "platform tests" that are Long Running |
| (or, perhaps hang?, during performance tests. |
| --> |
| <target |
| name="platformLR" |
| depends="init"> |
| <antcall target="osgi" /> |
| <antcall target="coreresources" /> |
| <antcall target="equinoxp2" /> |
| <antcall target="jface" /> |
| <antcall target="jfacetext" /> |
| <antcall target="ui" /> |
| <antcall target="uiperformance" /> |
| |
| <!-- don't run now, for 4.2. See bug 380553. |
| <antcall target="uircp" /> |
| --> |
| <!-- disable for now, bug 398717 |
| antcall target="uiviews" / |
| --> |
| </target> |
| |
| <target |
| name="sdkPlatformLR" |
| depends="init"> |
| <antcall target="osgi" /> |
| <antcall target="coreresources" /> |
| <antcall target="equinoxp2" /> |
| <antcall target="jface" /> |
| <antcall target="ui" /> |
| <antcall target="uiperformance" /> |
| </target> |
| |
| |
| <target |
| name="pde" |
| depends="init"> |
| <antcall target="pdeds" /> |
| <antcall target="pdejunit" /> |
| <antcall target="pdeui" /> |
| <antcall target="pdeua" /> |
| <antcall target="pdeuitemplates" /> |
| <antcall target="pdegenericeditor" /> |
| </target> |
| |
| <target |
| name="pdeLR" |
| depends="init"> |
| |
| <antcall target="pdebuild" /> |
| </target> |
| |
| <target |
| name="jdt" |
| depends="init"> |
| <antcall target="jdtcompilertool" /> |
| <antcall target="jdtcompilerapt" /> |
| <antcall target="jdttext" /> |
| <antcall target="jdtcoreperf" /> |
| <antcall target="jdtcorebuilder" /> |
| <antcall target="jdtdebug" /> |
| <antcall target="jdtapt" /> |
| <antcall target="jdtaptpluggable" /> |
| </target> |
| |
| <target |
| name="jdtLR" |
| depends="init"> |
| <antcall target="jdtui" /> |
| <antcall target="jdtuirefactoring" /> |
| <antcall target="jdtcoremodel" /> |
| <antcall target="jdtcorecompiler" /> |
| </target> |
| |
| <!-- we could put other variables/os checks here, if needed --> |
| <target name="checkOS"> |
| <condition |
| property="isMac" |
| value="true"> |
| <os family="mac" /> |
| </condition> |
| <condition |
| property="isUnix" |
| value="true"> |
| <os family="unix" /> |
| </condition> |
| </target> |
| <macrodef name="markTime"> |
| <attribute name="msg" /> |
| <sequential> |
| <!-- |
| we write the message first, with no ${line.separator} so that the timestamp can |
| go on same line, and my side-effect writes an EOL |
| --> |
| <echo |
| message="@{msg} " |
| append="true" |
| file="${junit-report-output}/testTimes.log" /> |
| <!-- This executable should run on all unix platforms (Linux, mac) --> |
| <exec |
| executable="date" |
| append="true" |
| output="${junit-report-output}/testTimes.log" |
| osfamily="unix"> |
| <arg value="+%s" /> |
| </exec> |
| </sequential> |
| </macrodef> |
| <target |
| name="markCurrentTime" |
| depends="checkOS" |
| if="isUnix"> |
| <!-- caller in antcall is expected to supply msg --> |
| <property |
| name="message" |
| value="no message given by caller" /> |
| <markTime msg="${message}" /> |
| </target> |
| |
| |
| <!-- |
| function to centralize how we get (that is, set) the value of |
| 'javaMajorVersion'. (expected to be integer, such as 5,6,7,8,9, |
| or will be "0" if the version could not be determined, for some reason. |
| --> |
| |
| <target name="getJavaMajorVersion"> |
| <!-- |
| Since we don't support below java 11 we can safely ignore version numbers for java 8 and below |
| --> |
| |
| <loadresource property="javaMajorVersion"> |
| <string value="${java.version}"/> |
| <filterchain> |
| <tokenfilter> |
| <replaceregex pattern="^(\d+)([\.-](.*))" replace="\1"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| <echo message="javaMajorVersion: ${javaMajorVersion}"/> |
| |
| <!-- |
| <script language="javascript"> |
| |
| technically does not have to be wrapped in "CDATA" (Ant and BSD define |
| it that way, but if not done, other tools (such as XML Editor) can |
| break the code by changing the formatting. |
| |
| <![CDATA[ |
| var javaVersion = project.getProperty("java.version"); |
| var pattern = new |
| RegExp(/^1\.([456789]).*$/); |
| |
| var sArray = pattern.exec(javaVersion); |
| // sArray 0 is "whole match" |
| // so will always exist (even |
| // if no match?) |
| // for safety from programing |
| // errors, we'll check that there is |
| // something in '1'. |
| var length = sArray.length; |
| if (length > 1) { |
| project.setProperty("javaMajorVersion", sArray[1]); |
| } else { |
| project.setProperty("javaMajorVersion", "0"); |
| } |
| ]]> |
| </script> |
| --> |
| </target> |
| |
| <macrodef name="printProperty"> |
| <attribute name="property" /> |
| <sequential> |
| <echo message="@{property}: ${@{property}}" /> |
| </sequential> |
| </macrodef> |
| |
| |
| <target name="debug-allJavaProperties"> |
| <echoproperties regex="^java\..*$" /> |
| </target> |
| <target name="debug-allOSProperties"> |
| <echoproperties regex="^os\..*$" /> |
| </target> |
| |
| <!-- |
| initOSes is to make sure the values of os, ws, and arch are set. |
| We need them to match their "osgi.X" counterparts, so users often will |
| need to simply set the "osgi.X" values as system variables, since |
| our ability to guess varies from OS to OS and VM to VM ... but, if |
| the osgi.X values are not set, we'll take a guess based on common systems. |
| --> |
| <target name="initOSes"> |
| |
| <condition |
| property="guessed.os" |
| value="win32"> |
| <os family="windows" /> |
| </condition> |
| <condition |
| property="guessed.os" |
| value="macosx"> |
| <os family="mac" /> |
| </condition> |
| <condition |
| property="guessed.os" |
| value="linux"> |
| <or> |
| <os family="unix" /> |
| </or> |
| </condition> |
| <!-- if not set above, set to a ridiculous value, that will at least give hint of action to take once it causes a failure --> |
| <property |
| name="guessed.os" |
| value="Value of 'os' could not be determined. 'os' must be set as system variable." /> |
| |
| <condition |
| property="os" |
| value="${os}" |
| else="${guessed.os}"> |
| <isset property="os" /> |
| </condition> |
| |
| <!-- luckily, these days, not multiple windowing systems, for common OSes --> |
| <condition |
| property="guessed.ws" |
| value="win32"> |
| <os family="windows" /> |
| </condition> |
| <condition |
| property="guessed.ws" |
| value="cocoa"> |
| <os family="mac" /> |
| </condition> |
| <condition |
| property="guessed.ws" |
| value="gtk"> |
| <os family="unix" /> |
| </condition> |
| <!-- if not set above, set to a ridiculous value, that will at least give hint of action to take once it causes a failure --> |
| <property |
| name="guessed.ws" |
| value="Value of 'ws' could not be determined. 'ws' must be set as system variable." /> |
| |
| <condition |
| property="ws" |
| value="${ws}" |
| else="${guessed.ws}"> |
| <isset property="ws" /> |
| </condition> |
| |
| <!-- not sure this will work well? --> |
| <condition |
| property="guessed.arch" |
| value="x86_64"> |
| <or> |
| <os arch="x86_64" /> |
| <os arch="amd64" /> |
| </or> |
| </condition> |
| <!-- if not set above, set to a ridiculous value, that will at least give hint of action to take once it causes a failure --> |
| <property |
| name="guessed.ws" |
| value="Value of 'arch' could not be determined. 'arch' must be set as system variable." /> |
| |
| <condition |
| property="arch" |
| value="${arch}" |
| else="${guessed.arch}"> |
| <isset property="arch" /> |
| </condition> |
| |
| </target> |
| |
| <target |
| name="test-getJavaMajorVersion" |
| depends="debug-allJavaProperties,debug-allOSProperties,getJavaMajorVersion"> |
| <printProperty property="javaMajorVersion" /> |
| <printProperty property="java.version" /> |
| <printProperty property="java.runtime.version" /> |
| <printProperty property="java.vm.info" /> |
| <printProperty property="java.specification.version" /> |
| <printProperty property="java.vendor" /> |
| <printProperty property="ant.version" /> |
| <printProperty property="ant.java.version" /> |
| <!-- <antcall target="printMainProperties" /> --> |
| </target> |
| |
| <target |
| name="test-initOSes" |
| depends="debug-allProperties,initOSes"> |
| <printProperty property="os" /> |
| <printProperty property="ws" /> |
| <printProperty property="arch" /> |
| </target> |
| |
| <target |
| name="test-all" |
| depends="init,test-initOSes,test-getJavaMajorVersion"> |
| </target> |
| |
| <target |
| name="debug-allProperties" |
| depends="init"> |
| <echoproperties /> |
| </target> |
| </project> |