| <project name="user" default="build" basedir="."> |
| <property name="gwt.root" location=".." /> |
| <property name="project.tail" value="user" /> |
| <property name="test.args" value="" /> |
| <import file="${gwt.root}/common.ant.xml" /> |
| |
| <!-- |
| Default hosted mode test cases |
| --> |
| <fileset id="default.hosted.tests" dir="${javac.junit.out}" |
| includes="${gwt.junit.testcase.includes}" /> |
| |
| <!-- |
| Default web mode test cases |
| --> |
| <fileset id="default.web.tests" dir="${javac.junit.out}" |
| includes="${gwt.junit.testcase.includes}" /> |
| |
| <!-- Platform shouldn't matter here, just picking one --> |
| <property.ensure name="gwt.dev.jar" location="${gwt.build.lib}/gwt-dev-linux.jar" /> |
| |
| <target name="compile" description="Compile all class files"> |
| <mkdir dir="${javac.out}" /> |
| <gwt.javac> |
| <classpath> |
| <pathelement location="${gwt.tools.lib}/tomcat/servlet-api-2.4.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.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/core to pick up TypeOracleTestUtils and others. |
| --> |
| <target name="compile.dev.core.tests" description="Compiles test dependencies in dev/core"> |
| <gwt.ant dir="../dev/core" target="compile.tests" /> |
| </target> |
| |
| <target name="compile.tests" depends="compile.dev.core.tests" description="Compiles the test code for this project"> |
| <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.build}/out/dev/core/bin-test" /> |
| <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" /> |
| <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" /> |
| <pathelement location="${gwt.dev.staging.jar}" /> |
| </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.4.jar" /> |
| </gwt.jar> |
| </target> |
| |
| <target name="checkstyle" description="Static analysis of source"> |
| <gwt.checkstyle> |
| <fileset dir="src" /> |
| <fileset dir="super/com/google/gwt/emul" /> |
| <fileset dir="super/com/google/gwt/junit/translatable" /> |
| </gwt.checkstyle> |
| </target> |
| |
| <target name="remoteweb-test" description="Run a remoteweb test at the given host and path" if="gwt.remote.browsers"> |
| <echo message="Performing remote browser testing at ${gwt.remote.browsers}" /> |
| <gwt.junit test.args="${test.args} -out www -remoteweb ${gwt.remote.browsers}" test.out="${junit.out}/remoteweb" test.cases="default.web.tests" > |
| <extraclasspaths> |
| <pathelement location="${gwt.build}/out/dev/core/bin-test" /> |
| </extraclasspaths> |
| </gwt.junit> |
| </target> |
| |
| <target name="selenium-test" description="Run a remote test using Selenium RC test at the given host and path" if="gwt.selenium.hosts"> |
| <echo message="Performing remote browser testing using Selenium RC at ${gwt.selenium.hosts}" /> |
| <gwt.junit test.args="${test.args} -out www -selenium ${gwt.selenium.hosts}" test.out="${junit.out}/selenium" test.cases="default.web.tests" > |
| <extraclasspaths> |
| <pathelement location="${gwt.build}/out/dev/core/bin-test" /> |
| </extraclasspaths> |
| </gwt.junit> |
| </target> |
| |
| <target name="test.hosted" depends="compile, compile.tests" description="Run only hosted-mode tests for this project."> |
| <gwt.junit test.args="${test.args}" test.out="${junit.out}/${build.host.platform}-hosted-mode" test.cases="default.hosted.tests" > |
| <extraclasspaths> |
| <pathelement location="${gwt.build}/out/dev/core/bin-test" /> |
| </extraclasspaths> |
| </gwt.junit> |
| </target> |
| |
| <target name="test.web" depends="compile, compile.tests" description="Run only web-mode tests for this project."> |
| <gwt.junit test.args="${test.args} -out www -web" test.out="${junit.out}/${build.host.platform}-web-mode" test.cases="default.web.tests" > |
| <extraclasspaths> |
| <pathelement location="${gwt.build}/out/dev/core/bin-test" /> |
| </extraclasspaths> |
| </gwt.junit> |
| </target> |
| |
| <target name="test" depends="compile, compile.tests" description="Run hosted-mode, web-mode, remoteweb, and selenium tests 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." /> |
| |
| <!-- |
| Run hosted and web mode tests for the platform on which this build |
| is executing |
| --> |
| <limit failonerror="true" hours="2"> |
| <parallel threadsPerProcessor="1"> |
| <!-- selenium-test is a no-op unless gwt.selenium.hosts is defined --> |
| <antcall target="selenium-test"/> |
| <!-- remoteweb-test is a no-op unless gwt.remote.browsers is defined --> |
| <antcall target="remoteweb-test"/> |
| <antcall target="test.hosted"/> |
| <antcall target="test.web"/> |
| </parallel> |
| </limit> |
| </target> |
| |
| <target name="clean" description="Cleans this project's intermediate and output files"> |
| <delete dir="${project.build}" /> |
| <delete file="${project.lib}" /> |
| </target> |
| |
| </project> |