blob: ef30cdd3282a5bebb4c2350d69ed7a78591973f6 [file] [log] [blame]
<project name="user" default="build" basedir=".">
<property name="gwt.root" location=".." />
<property name="project.tail" value="user" />
<property name="test.args" value="" />
<!-- support old variables names -->
<condition property="gwt.hosts.web.remote" value="${gwt.remote.browsers}">
<isset property="gwt.remote.browsers" />
</condition>
<condition property="gwt.hosts.web.selenium" value="${gwt.selenium.hosts}">
<isset property="gwt.selenium.hosts" />
</condition>
<!--
BrowserManagerServer_Stub compiled using rmic, which doesn't generate
full source code
-->
<property name="emma.filter.exclude" value="*BrowserManagerServer_Stub*" />
<import file="${gwt.root}/common.ant.xml" />
<property name="test.timeout" value="4" />
<property name="emma.merged.out" value="${junit.out}/emma-coverage" />
<property name="gwt.junit.testcase.web.includes" value="${gwt.junit.testcase.includes}" />
<property name="gwt.junit.testcase.web.excludes" value="" />
<property name="gwt.junit.testcase.dev.includes" value="${gwt.junit.testcase.includes}" />
<property name="gwt.junit.testcase.dev.excludes" value="" />
<property name="benchmark.timeout" value="30" />
<property name="gwt.benchmark.testcase.web.includes" value="${gwt.benchmark.testcase.includes}" />
<property name="gwt.benchmark.testcase.web.excludes" value="${gwt.benchmark.testcase.excludes}" />
<!--
Test args can be specified per test target type.
-->
<property name="test.args.dev.remote" value="${test.args}" />
<property name="test.args.dev.selenium" value="${test.args}" />
<property name="test.args.web.remote" value="${test.args}" />
<property name="test.args.web.selenium" value="${test.args}" />
<!--
Whether I18NSuite should test e.g. Foo$InnerMsgs_fr.properties (if the
value is "dollar") or Foo_Inner_fr.properties (for "bar")
-->
<property name="gwt.i18n.test.InnerClassChar" value="dollar"/>
<!-- Platform shouldn't matter here, just picking one -->
<property.ensure name="gwt.dev.jar" location="${gwt.build.lib}/gwt-dev.jar" />
<!--
Classpaths added for test cases
-->
<path id="test.extraclasspath">
<pathelement location="${gwt.build}/out/dev/bin-test" />
<pathelement location="test-super" />
<pathelement location="test_i18n_${gwt.i18n.test.InnerClassChar}" />
<pathelement location="${gwt.tools.lib}/cglib/cglib-2.2.jar"/>
<pathelement location="${gwt.tools.lib}/easymock/easymock.jar"/>
<pathelement location="${gwt.tools.lib}/easymock/easymockclassextension.jar"/>
<pathelement location="${gwt.tools.lib}/objectweb/asm-3.1.jar"/>
<pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" />
<pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA-sources.jar" />
<pathelement location="${gwt.tools}/redist/json/r2_20080312/json-1.5.jar" />
<pathelement location="${gwt.dev.jar}" />
</path>
<target name="compile" description="Compile all class files"
unless="compile.complete">
<mkdir dir="${javac.out}" />
<gwt.javac excludes="**/super/**">
<classpath>
<pathelement location="${gwt.tools.lib}/tomcat/servlet-api-2.5.jar" />
<pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
<pathelement location="${gwt.tools.lib}/jfreechart/jfreechart-1.0.3.jar" />
<pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
<pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
<pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg1.jar" />
<pathelement location="${gwt.tools}/redist/json/r2_20080312/json-1.5.jar" />
<pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" />
<!-- The source is included so validation is available from client code -->
<pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA-sources.jar" />
<pathelement location="${gwt.dev.jar}" />
</classpath>
</gwt.javac>
<!-- Build the BrowserManagerServer_Stub to allow remote browser testing -->
<rmic base="${javac.out}"
classname="com.google.gwt.junit.remote.BrowserManagerServer"
stubversion="1.2"/>
</target>
<!--
Compile test code for dev to pick up TypeOracleTestUtils and others.
Compiles test dependencies in dev/core
-->
<target name="compile.dev.tests">
<gwt.ant dir="../dev" target="compile.tests" />
</target>
<!--
Compiles the test code for this project
-->
<target name="compile.tests"
depends="compile.dev.tests, compile.emma.if.enabled"
unless="compile.tests.complete">
<mkdir dir="${javac.junit.out}" />
<gwt.javac srcdir="test" excludes="com/google/gwt/langtest/**"
destdir="${javac.junit.out}">
<classpath>
<pathelement location="${javac.out}" />
<pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
<pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
<path refid="test.extraclasspath" />
</classpath>
</gwt.javac>
</target>
<target name="build" depends="compile"
description="Build and package this project">
<mkdir dir="${gwt.build.lib}" />
<gwt.jar>
<fileset dir="src" excludes="**/package.html" />
<fileset dir="super" excludes="**/package.html" />
<fileset dir="${javac.out}" />
<zipfileset src="${gwt.tools.lib}/tomcat/servlet-api-2.5.jar" excludes="**/*.java"/>
<zipfileset src="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
<zipfileset src="${gwt.tools.lib}/w3c/flute/flute-1.3-gg1.jar" />
</gwt.jar>
</target>
<target name="checkstyle" description="Static analysis of source">
<gwt.checkstyle>
<fileset dir="src" >
<exclude name="javax/validation/super/javax/validation/constraints/Pattern.java"/>
<exclude name="javax/validation/super/javax/validation/spi/ConfigurationState.java"/>
<exclude name="javax/validation/super/javax/validation/MessageInterpolator.java"/>
<exclude name="javax/validation/super/javax/validation/Configuration.java"/>
<exclude name="javax/validation/super/javax/validation/Validation.java"/>
</fileset>
<fileset dir="super/com/google/gwt/emul" />
<fileset dir="super/com/google/gwt/junit/translatable" />
</gwt.checkstyle>
<gwt.checkstyle.tests>
<fileset dir="test">
<include name="com/google/**/*.java" />
<include name="test/**" />
</fileset>
</gwt.checkstyle.tests>
</target>
<target name="test.remoteweb" depends="test.web.remote">
<echo message="DEPRECATED: test.remoteweb has been renamed test.web.remote"/>
</target>
<target name="test.web.remote"
description="Run web test with remote browsers"
if="gwt.hosts.web.remote"
unless="test.web.remote.disable">
<echo message="Performing web remote testing at ${gwt.hosts.web.remote}" />
<property name="test.web.remote.args" value="${test.args.web.remote}" />
<fileset id="test.web.remote.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.web.includes}"
excludes="${gwt.junit.testcase.web.excludes}" />
<gwt.junit test.name="test.web.remote"
test.args="${test.web.remote.args} -out www -prod -standardsMode -runStyle RemoteWeb:${gwt.hosts.web.remote}"
test.out="${junit.out}/web-remote"
test.cases="test.web.remote.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.dev.remote"
depends="compile, compile.tests"
description="Run dev-mode tests with remote browsers"
if="gwt.hosts.dev.remote"
unless="test.dev.remote.disable">
<echo message="Performing dev-mode remote testing at ${gwt.remote.browsers}" />
<property name="test.dev.remote.args" value="${test.args.dev.remote}" />
<fileset id="test.dev.remote.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.dev.includes}"
excludes="${gwt.junit.testcase.dev.excludes}" />
<gwt.junit test.name="test.dev.remote"
test.args="${test.dev.remote.args} -out www -standardsMode -runStyle RemoteWeb:${gwt.hosts.dev.remote}"
test.out="${junit.out}/dev-remote" test.cases="test.dev.remote.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.emma.remote"
depends="compile, compile.tests"
description="Run emma tests with remote browsers"
if="gwt.hosts.dev.remote"
unless="test.emma.remote.disable">
<echo message="Performing emma remote testing at ${gwt.hosts.dev.remote}" />
<property name="test.emma.remote.args" value="${test.args.dev.remote}" />
<fileset id="test.emma.remote.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.dev.includes}"
excludes="${gwt.junit.testcase.dev.excludes}" />
<gwt.junit test.name="test.emma.remote"
test.args="${test.emma.remote.args} -out www -standardsMode -runStyle RemoteWeb:${gwt.hosts.dev.remote}"
test.out="${junit.out}/emma-remote"
test.cases="test.emma.remote.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
<pathelement location="${gwt.tools.redist}/emma/emma.jar" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.emma.selenium"
depends="compile, compile.tests"
description="Run emma tests with Selenium-RC servers"
if="gwt.hosts.dev.selenium"
unless="test.emma.selenium.disable">
<echo message="Performing emma selenium testing at ${gwt.hosts.dev.selenium}" />
<property name="test.emma.selenium.args" value="${test.args.dev.selenium}" />
<fileset id="test.emma.selenium.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.dev.includes}"
excludes="${gwt.junit.testcase.dev.excludes}" />
<gwt.junit test.name="test.emma.selenium"
test.args='${test.emma.selenium.args} -out www -standardsMode -runStyle "Selenium:${gwt.hosts.dev.selenium}"'
test.out="${junit.out}/emma-selenium"
test.cases="test.emma.selenium.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
<pathelement location="${gwt.tools.redist}/emma/emma.jar" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.draft.remote"
depends="compile, compile.tests"
description="Run draft compiled tests with remote browsers"
if="gwt.hosts.web.remote"
unless="test.draft.remote.disable">
<echo message="Performing draft remote testing at ${gwt.hosts.web.remote}" />
<property name="test.draft.remote.args" value="${test.args.web.remote}" />
<fileset id="test.draft.remote.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.web.includes}"
excludes="${gwt.junit.testcase.web.excludes}" />
<gwt.junit test.name="test.draft.remote"
test.args="${test.draft.remote.args} -draftCompile -prod -standardsMode -out www -runStyle RemoteWeb:${gwt.hosts.web.remote}"
test.out="${junit.out}/draft-remote"
test.cases="test.draft.remote.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.nometa.remote"
description="Run -XdisableClassMetadata tests with remote browsers"
if="gwt.hosts.web.remote"
unless="test.nometa.remote.disable">
<echo message="Performing nometa remote testing at ${gwt.hosts.web.remote}" />
<property name="test.nometa.remote.args" value="${test.args.web.remote}" />
<fileset id="test.nometa.remote.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.web.includes}"
excludes="${gwt.junit.testcase.web.excludes}" />
<gwt.junit test.name="test.nometa.remote"
test.args="${test.nometa.remote.args} -XdisableClassMetadata -prod -standardsMode -out www -runStyle RemoteWeb:${gwt.hosts.web.remote}"
test.out="${junit.out}/nometa-remote"
test.cases="test.nometa.remote.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.selenium" depends="test.web.selenium">
<echo message="DEPRECATED: test.selenium has been renamed test.web.selenium"/>
</target>
<target name="test.web.selenium"
depends="compile, compile.tests"
description="Run web tests using Selenium RC"
if="gwt.hosts.web.selenium"
unless="test.web.selenium.disable">
<echo message="Performing web testing using Selenium RC at ${gwt.hosts.web.selenium}" />
<property name="test.web.selenium.args" value="${test.args.web.selenium}" />
<fileset id="test.web.selenium.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.web.includes}"
excludes="${gwt.junit.testcase.web.excludes}" />
<gwt.junit test.name="test.web.selenium"
test.args='${test.web.selenium.args} -prod -out www -standardsMode -runStyle "Selenium:${gwt.hosts.web.selenium}"'
test.out="${junit.out}/web-selenium"
test.cases="test.web.selenium.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.dev.selenium"
depends="compile, compile.tests"
description="Run dev-mode tests using Selenium RC servers"
if="gwt.hosts.dev.selenium"
unless="test.dev.selenium.disable">
<echo message="Performing dev-mode testing using Selenium RC at ${gwt.hosts.dev.selenium}" />
<property name="test.dev.selenium.args" value="${test.args.dev.selenium}" />
<fileset id="test.dev.selenium.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.dev.includes}"
excludes="${gwt.junit.testcase.dev.excludes}" />
<gwt.junit test.name="test.dev.selenium"
test.args='${test.dev.selenium.args} -out www -standardsMode -runStyle "Selenium:${gwt.hosts.dev.selenium}"'
test.out="${junit.out}/dev-selenium"
test.cases="test.dev.selenium.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.nometa.selenium"
description="Run nometa tests using Selenium RC"
if="gwt.hosts.web.selenium"
unless="test.nometa.selenium.disable">
<echo message="Performing nometa testing using Selenium RC at ${gwt.hosts.web.selenium}" />
<property name="test.nometa.selenium.args"
value="${test.args.web.selenium}" />
<fileset id="test.nometa.selenium.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.web.includes}"
excludes="${gwt.junit.testcase.web.excludes}" />
<gwt.junit test.name="test.nometa.selenium"
test.args='${test.nometa.selenium.args} -XdisableClassMetadata -prod -standardsMode -out www -runStyle "Selenium:${gwt.hosts.web.selenium}"'
test.out="${junit.out}/nometa-selenium"
test.cases="test.nometa.selenium.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.draft.selenium"
description="Run draft compiled tests using Selenium RC"
if="gwt.hosts.web.selenium"
unless="test.draft.selenium.disable">
<echo message="Performing draft testing using Selenium RC at ${gwt.hosts.web.selenium}" />
<property name="test.draft.selenium.args"
value="${test.args.web.selenium}" />
<fileset id="test.draft.selenium.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.web.includes}"
excludes="${gwt.junit.testcase.web.excludes}" />
<gwt.junit test.name="test.draft.selenium"
test.args='${test.draft.selenium.args} -draftCompile -prod -out www -standardsMode -runStyle "Selenium:${gwt.hosts.web.selenium}"'
test.out="${junit.out}/draft-selenium"
test.cases="test.draft.selenium.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.emma.htmlunit"
depends="compile, compile.tests"
description="Run emma tests with HtmlUnit"
unless="test.emma.htmlunit.disable">
<fileset id="test.emma.htmlunit.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.dev.includes}"
excludes="${gwt.junit.testcase.dev.excludes}" />
<gwt.junit test.name="test.emma.htmlunit"
test.args="${test.args} -standardsMode "
test.out="${junit.out}/emma-htmlunit"
test.cases="test.emma.htmlunit.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
<pathelement location="${gwt.tools.redist}/emma/emma.jar" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.dev.htmlunit"
depends="compile, compile.tests"
description="Run dev-mode tests with HtmlUnit."
unless="test.dev.htmlunit.disable">
<fileset id="test.dev.htmlunit.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.dev.includes}"
excludes="${gwt.junit.testcase.dev.excludes}" />
<gwt.junit test.name="test.dev.htmlunit"
test.args="${test.args} -standardsMode "
test.out="${junit.out}/dev-htmlunit"
test.cases="test.dev.htmlunit.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.hosted.emma" depends="test.emma">
<echo message="DEPRECATED: test.hosted.emma has been renamed test.emma"/>
</target>
<target name="test.hosted" depends="test.dev">
<echo message="DEPRECATED: test.hosted has been renamed test.dev"/>
</target>
<target name="test.web.htmlunit"
depends="compile, compile.tests"
description="Run web-mode tests with HtmlUnit."
unless="test.web.htmlunit.disable">
<fileset id="test.web.htmlunit.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.web.includes}"
excludes="${gwt.junit.testcase.web.excludes}" />
<gwt.junit test.name="test.web.htmlunit"
test.args="${test.args} -out www -prod -standardsMode"
test.out="${junit.out}/web-htmlunit"
test.cases="test.web.htmlunit.tests">
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.nometa.htmlunit"
depends="compile, compile.tests"
description="Run -XdisableClassMetadata tests with HtmlUnit."
unless="test.nometa.htmlunit.disable">
<fileset id="test.nometa.htmlunit.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.web.includes}"
excludes="${gwt.junit.testcase.web.excludes}" />
<gwt.junit test.name="test.nometa.htmlunit"
test.args="${test.args} -XdisableClassMetadata -out www -prod -standardsMode"
test.out="${junit.out}/nometa-htmlunit"
test.cases="test.nometa.htmlunit.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test.draft.htmlunit"
depends="compile, compile.tests"
description="Run draft compiled HtmlUnit tests (no batching on purpose)"
unless="test.draft.htmlunit.disable">
<fileset id="test.draft.htmlunit.tests" dir="${javac.junit.out}"
includes="${gwt.junit.testcase.web.includes}"
excludes="${gwt.junit.testcase.web.excludes}" />
<gwt.junit test.name="test.draft.htmlunit"
test.args="${test.args} -draftCompile -out www -prod -standardsMode"
test.out="${junit.out}/draft-htmlunit"
test.cases="test.draft.htmlunit.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="test"
depends="compile, compile.tests"
description="Run all tests for this project.">
<!-- Prevent compilation for every target. -->
<property name="compile.complete" value="true"/>
<property name="compile.tests.complete" value="true"/>
<property.ensure name="distro.built" location="${gwt.dev.staging.jar}"
message="GWT must be built before performing any tests. This can be fixed by running ant in the ${gwt.root} directory." />
<limit failonerror="true" hours="${test.timeout}">
<parallel threadsPerProcessor="${gwt.threadsPerProcessor}"
threadCount="${gwt.threadCount}">
<!--
The remote targets must be run sequentially or BrowserManager will queue
requests, which will cause some tests to timeout while waiting.
-->
<sequential>
<antcall target="test.dev.remote"/>
<antcall target="test.emma.remote"/>
<antcall target="test.web.remote"/>
<antcall target="test.draft.remote"/>
<antcall target="test.nometa.remote"/>
</sequential>
<antcall target="test.dev.selenium"/>
<antcall target="test.emma.selenium"/>
<antcall target="test.web.selenium"/>
<antcall target="test.draft.selenium"/>
<antcall target="test.nometa.selenium"/>
<antcall target="test.dev.htmlunit"/>
<antcall target="test.emma.htmlunit"/>
<antcall target="test.web.htmlunit"/>
<antcall target="test.draft.htmlunit"/>
<antcall target="test.nometa.htmlunit"/>
</parallel>
</limit>
</target>
<target name="test.htmlunit"
depends="compile, compile.tests"
description="Run all HtmlUnit tests">
<!-- Prevent compilation for every target. -->
<property name="compile.complete" value="true"/>
<property name="compile.tests.complete" value="true"/>
<property.ensure name="distro.built" location="${gwt.dev.staging.jar}"
message="GWT must be built before performing any tests. This can be fixed by running ant in the ${gwt.root} directory." />
<limit failonerror="true" hours="${test.timeout}">
<parallel threadsPerProcessor="${gwt.threadsPerProcessor}"
threadCount="${gwt.threadCount}">
<antcall target="test.dev.htmlunit"/>
<antcall target="test.emma.htmlunit"/>
<antcall target="test.web.htmlunit"/>
<antcall target="test.draft.htmlunit"/>
<antcall target="test.nometa.htmlunit"/>
</parallel>
</limit>
</target>
<target name="test.dev"
depends="compile, compile.tests"
description="Run dev-mode tests for this project.">
<!-- Prevent compilation for every target. -->
<property name="compile.complete" value="true"/>
<property name="compile.tests.complete" value="true"/>
<limit failonerror="true" hours="${test.timeout}">
<parallel threadsPerProcessor="${gwt.threadsPerProcessor}"
threadCount="${gwt.threadCount}">
<antcall target="test.dev.htmlunit"/>
<!-- no-op unless gwt.hosts.dev.remote is defined -->
<antcall target="test.dev.remote"/>
<!-- no-op unless gwt.hosts.dev.selenium is defined -->
<antcall target="test.dev.selenium"/>
</parallel>
</limit>
</target>
<target name="test.web"
depends="compile, compile.tests"
description="Run web-mode tests for this project.">
<!-- Prevent compilation for every target. -->
<property name="compile.complete" value="true"/>
<property name="compile.tests.complete" value="true"/>
<limit failonerror="true" hours="${test.timeout}">
<parallel threadsPerProcessor="${gwt.threadsPerProcessor}"
threadCount="${gwt.threadCount}">
<antcall target="test.web.htmlunit"/>
<!-- no-op unless gwt.hosts.web.remote is defined -->
<antcall target="test.web.remote"/>
<!-- no-op unless gwt.hosts.web.selenium is defined -->
<antcall target="test.web.selenium"/>
</parallel>
</limit>
</target>
<target name="test.emma"
depends="compile, compile.tests"
description="Run emma tests for this project.">
<!-- Prevent compilation for every target. -->
<property name="compile.complete" value="true"/>
<property name="compile.tests.complete" value="true"/>
<limit failonerror="true" hours="${test.timeout}">
<parallel threadsPerProcessor="${gwt.threadsPerProcessor}"
threadCount="${gwt.threadCount}">
<antcall target="test.emma.htmlunit"/>
<!-- no-op unless gwt.hosts.dev.remote is defined -->
<antcall target="test.emma.remote"/>
<!-- no-op unless gwt.hosts.dev.selenium is defined -->
<antcall target="test.emma.selenium"/>
</parallel>
</limit>
</target>
<target name="test.draft"
depends="compile, compile.tests"
description="Run draft compiled tests for this project.">
<!-- Prevent compilation for every target. -->
<property name="compile.complete" value="true"/>
<property name="compile.tests.complete" value="true"/>
<limit failonerror="true" hours="${test.timeout}">
<parallel threadsPerProcessor="${gwt.threadsPerProcessor}"
threadCount="${gwt.threadCount}">
<antcall target="test.draft.htmlunit"/>
<!-- no-op unless gwt.hosts.web.remote is defined -->
<antcall target="test.draft.remote"/>
<!-- no-op unless gwt.hosts.web.selenium is defined -->
<antcall target="test.draft.selenium"/>
</parallel>
</limit>
</target>
<target name="test.nometa"
depends="compile, compile.tests"
description="Run -XdisableClassMetadata tests for this project.">
<!-- Prevent compilation for every target. -->
<property name="compile.complete" value="true"/>
<property name="compile.tests.complete" value="true"/>
<limit failonerror="true" hours="${test.timeout}">
<parallel threadsPerProcessor="${gwt.threadsPerProcessor}"
threadCount="${gwt.threadCount}">
<antcall target="test.web.htmlunit"/>
<!-- no-op unless gwt.hosts.web.remote is defined -->
<antcall target="test.nometa.remote"/>
<!-- no-op unless gwt.hosts.web.selenium is defined -->
<antcall target="test.nometa.selenium"/>
</parallel>
</limit>
</target>
<target name="benchmark"
description="Run all benchmarks for this project.">
<property.ensure name="distro.built" location="${gwt.dev.staging.jar}"
message="GWT must be built before performing any tests. This can be fixed by running ant in the ${gwt.root} directory." />
<limit failonerror="true" hours="${benchmark.timeout}">
<!-- no-op unless gwt.hosts.web.remote is defined -->
<antcall target="benchmark.web.remote"/>
<!-- no-op unless gwt.hosts.web.selenium is defined -->
<antcall target="benchmark.web.selenium"/>
<antcall target="benchmark.web.htmlunit"/>
</limit>
</target>
<target name="benchmark.web.htmlunit"
depends="compile, compile.tests"
description="Run web-mode benchmarks with HtmlUnit."
unless="benchmark.web.htmlunit.disable">
<fileset id="benchmark.web.htmlunit.tests" dir="${javac.junit.out}"
includes="${gwt.benchmark.testcase.web.includes}"
excludes="${gwt.benchmark.testcase.web.excludes}" />
<gwt.junit test.name="benchmark.web.htmlunit"
test.args="${test.args} -testMethodTimeout ${benchmark.timeout} -out www -prod -standardsMode"
test.out="${junit.out}/web-htmlunit-benchmark"
test.cases="benchmark.web.htmlunit.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="benchmark.web.selenium"
depends="compile, compile.tests"
description="Run web benchmark using Selenium RC"
if="gwt.hosts.web.selenium"
unless="benchmark.web.selenium.disable">
<echo message="Performing web benchmarking using Selenium RC at ${gwt.hosts.web.selenium}" />
<property name="test.web.selenium.args" value="${test.args.web.selenium}" />
<fileset id="benchmark.web.selenium.tests" dir="${javac.junit.out}"
includes="${gwt.benchmark.testcase.web.includes}"
excludes="${gwt.benchmark.testcase.web.excludes}" />
<gwt.junit test.name="benchmark.web.selenium"
test.args='${test.web.selenium.args} -testMethodTimeout ${benchmark.timeout} -prod -out www -standardsMode -runStyle "Selenium:${gwt.hosts.web.selenium}"'
test.out="${junit.out}/web-selenium-benchmark"
test.cases="benchmark.web.selenium.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<target name="benchmark.web.remote"
depends="compile, compile.tests"
description="Run web benchmarks with remote browsers"
if="gwt.hosts.web.remote"
unless="benchmark.web.remote.disable">
<echo message="Performing web remote benchmarking at ${gwt.hosts.web.remote}" />
<property name="test.web.remote.args" value="${test.args.web.remote}" />
<fileset id="benchmark.web.remote.tests" dir="${javac.junit.out}"
includes="${gwt.benchmark.testcase.web.includes}"
excludes="${gwt.benchmark.testcase.web.excludes}" />
<gwt.junit test.name="benchmark.web.remote"
test.args="${test.web.remote.args} -testMethodTimeout ${benchmark.timeout} -out www -prod -standardsMode -runStyle RemoteWeb:${gwt.hosts.web.remote}"
test.out="${junit.out}/web-remote-benchmark"
test.cases="benchmark.web.remote.tests" >
<extraclasspaths>
<path refid="test.extraclasspath" />
</extraclasspaths>
</gwt.junit>
</target>
<!--
Merges coverage data for the entire project
-->
<target name="emma.merge">
<delete dir="${emma.merged.out}" />
<mkdir dir="${emma.merged.out}" />
<emma>
<merge outfile="${emma.merged.out}/merged.emma" >
<fileset dir="${junit.out}" >
<include name="**/*.emma" />
<exclude name="${emma.merged.out}/merged.emma" />
</fileset>
</merge>
</emma>
<emma>
<report sourcepath="${project.classpath.src}">
<fileset file="${javac.emma.out}/metadata.emma" />
<fileset file="${emma.merged.out}/merged.emma" />
<txt outfile="${emma.merged.out}/coverage.txt" />
<html outfile="${emma.merged.out}/coverage.html" />
<xml outfile="${emma.merged.out}/coverage.xml" />
</report>
</emma>
</target>
<target name="clean"
description="Cleans this project's intermediate and output files">
<delete dir="${project.build}" />
<delete file="${project.lib}" />
</target>
<target name="presubmit" depends="test, checkstyle"
description="runs the gwt api checker, user checkstyle, and user tests">
<gwt.ant dir=".." target="apicheck-nobuild"/>
</target>
</project>