<project name="user" default="build" basedir=".">
  <property name="gwt.root" location=".."/>
  <property name="project.tail" value="user"/>
  <property name="test.args" value="-ea"/>
  <property name="test.jvmargs" value="-ea"/>

  <!-- support old variables names -->
  <condition property="gwt.hosts.web.selenium" value="${gwt.selenium.hosts}">
    <isset property="gwt.selenium.hosts"/>
  </condition>

  <import file="${gwt.root}/common.ant.xml"/>

  <property name="test.timeout" value="5"/>
  <property name="emma.merged.out" value="${junit.out}/emma-coverage"/>

  <property name="gwt.junit.testcase.web.includes" value="${gwt.junit.testcase.includes}"/>
  <condition property="gwt.junit.testcase.web.excludes"
            value="**/*JreSuite.class,**/OptimizedOnly*,**/*Java8Suite.class"
            else="**/*JreSuite.class,**/OptimizedOnly*">
    <isfalse value="${isJava8}" />
  </condition>

  <property name="gwt.junit.testcase.dev.includes" value="${gwt.junit.testcase.includes}"/>
  <condition property="gwt.junit.testcase.dev.excludes"
            value="**/JSONSuite.class,**/RunAsyncSuite.class,**/*CompilerSuite.class,**/*JsInteropSuite.class,**/*JreSuite.class,**/OptimizedOnly*,**/*Java8Suite.class"
            else="**/JSONSuite.class,**/RunAsyncSuite.class,**/*CompilerSuite.class,**/*JsInteropSuite.class,**/*JreSuite.class,**/OptimizedOnly*">
    <isfalse value="${isJava8}" />
  </condition>

  <property name="gwt.tck.testcase.dev.includes"
            value="com/google/gwt/validation/tck/**/*GwtSuite.class"/>
  <property name="gwt.tct.testcase.dev.excludes" value=""/>

  <property name="gwt.nongwt.testcase.includes" value="**/*JreSuite.class"/>
  <property name="gwt.nongwt.testcase.excludes" value=""/>

  <!--
    Test args can be specified per test target type.
  -->
  <property name="test.args.dev.selenium"
            value='${test.args} -devMode -out www -runStyle "Selenium:${gwt.hosts.dev.selenium}"'/>
  <property name="test.args.web.selenium"
            value='${test.args} -prod -out www -generateJsInteropExports -runStyle "Selenium:${gwt.hosts.web.selenium}"'/>
  <property name="test.args.web.htmlunit"
            value='${test.args} -prod -out www -generateJsInteropExports -batch module'/>

  <!--
    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}/apache/log4j/log4j-1.2.17.jar"/>
    <pathelement location="${gwt.tools.lib}/cglib/cglib-3.1.jar"/>
    <pathelement location="${gwt.tools.lib}/mockito/1.9.5/mockito-all-1.9.5.jar"/>
    <pathelement location="${gwt.tools.lib}/objenesis/objenesis-1.2.jar"/>
    <pathelement location="${gwt.tools.lib}/objectweb/asm-7.1/asm-7.1.jar"/>
    <pathelement location="${gwt.tools.lib}/objectweb/asm-7.1/asm-commons-7.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.lib}/hibernate/validator/hibernate-validator-4.1.0.Final.jar"/>
    <pathelement
        location="${gwt.tools.lib}/hibernate/validator/hibernate-validator-4.1.0.Final-sources.jar"/>
    <pathelement location="${gwt.tools.lib}/slf4j/slf4j-api/slf4j-api-1.7.12.jar"/>
    <pathelement location="${gwt.tools.lib}/slf4j/slf4j-log4j12/slf4j-log4j12-1.7.12.jar"/>
    <pathelement
        location="${gwt.tools.lib}/streamhtmlparser/streamhtmlparser-jsilver-r10/streamhtmlparser-jsilver-r10-1.5-rebased.jar"/>
    <!-- TCK jars -->
    <pathelement
        location="${gwt.tools.lib}/hibernate/validator/tck/jsr303-tck-1.0.3.GA-sources.jar"/>
    <pathelement location="${gwt.tools.lib}/hibernate/validator/tck/jsr303-tck-1.0.3.GA.jar"/>
    <pathelement
        location="${gwt.tools.lib}/jboss/test-audit/jboss-test-audit-api-1.0.0-sources.jar"/>
    <pathelement location="${gwt.tools.lib}/jboss/test-audit/jboss-test-audit-api-1.0.0.jar"/>
    <pathelement
        location="${gwt.tools.lib}/jboss/test-harness/jboss-test-harness-1.0.0-sources.jar"/>
    <pathelement location="${gwt.tools.lib}/jboss/test-harness/jboss-test-harness-1.0.0.jar"/>
    <pathelement
        location="${gwt.tools.lib}/jboss/test-harness/jboss-test-harness-api-1.0.0-sources.jar"/>
    <pathelement location="${gwt.tools.lib}/jboss/test-harness/jboss-test-harness-api-1.0.0.jar"/>
    <pathelement location="${gwt.tools.lib}/testng/testng-5.14.1-sources.jar"/>
    <pathelement location="${gwt.tools.lib}/testng/testng-5.14.1-nojunit.jar"/>
    <pathelement location="${gwt.dev.jar}"/>
    <pathelement location="${gwt.tools.lib}/gss/2015-11-04/closure-stylesheets-library-20151104-rebased.jar"/>
  </path>

  <target name="compile" description="Compile all class files"
          unless="compile.complete">
    <mkdir dir="${javac.out}"/>
    <gwt.javac excludes="**/EmulatedCharset.java,**/HashCodes.java,**/ConsoleLogger.java,**/NativeRegExp.java,**/SuperDevModeLogger.java">
      <src path="super/com/google/gwt/emul/javaemul/internal"/>
      <compilerarg value="-Xep:MissingCasesInEnumSwitch:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:SelfComparison:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:SelfEquals:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:FallThrough:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:ReturnValueIgnored:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:EqualsIncompatibleType:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <classpath>
        <pathelement location="${gwt.tools.lib}/gss/2015-10-07/closure-stylesheets-library-20151007-rebased.jar"/>
        <pathelement location="${gwt.tools.lib}/gss/2015-11-04/closure-stylesheets-library-20151104-rebased.jar"/>
        <pathelement location="${gwt.tools.lib}/tomcat/tomcat-servlet-api-8.0.28.jar"/>
        <pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.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-gg2.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"/>
        <!-- Hibernate is included until we can provide the super source as an third party jar" -->
        <pathelement
            location="${gwt.tools.lib}/hibernate/validator/hibernate-validator-4.1.0.Final.jar"/>
        <pathelement
            location="${gwt.tools.lib}/hibernate/validator/hibernate-validator-4.1.0.Final-sources.jar"/>
        <pathelement
            location="${gwt.tools.lib}/streamhtmlparser/streamhtmlparser-jsilver-r10/streamhtmlparser-jsilver-r10-1.5-rebased.jar"/>
        <pathelement location="${gwt.dev.jar}"/>
      </classpath>
    </gwt.javac>
  </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.tests.java7, -compile.tests.java8"
          unless="compile.tests.complete">
  </target>

  <target name="-compile.tests.java7"
          depends="compile.dev.tests, compile.emma.if.enabled">
    <mkdir dir="${javac.junit.out}"/>
    <gwt.javac srcdir="test" destdir="${javac.junit.out}"
               excludes="com/google/gwt/langtest/**,**/super/**,**/java8/**,**/*Java8Suite.java">
      <compilerarg value="-Xep:MissingCasesInEnumSwitch:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:SelfComparison:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:SelfEquals:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:FallThrough:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:ReturnValueIgnored:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:EqualsIncompatibleType:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:IdentityBinaryExpression:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:LoopConditionChecker:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:JUnitAssertSameCheck:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:CollectionIncompatibleType:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <classpath>
        <pathelement location="${javac.out}"/>
        <pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar"/>
        <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar"/>
        <path refid="test.extraclasspath"/>
      </classpath>
      <compilerarg value="-processor"/>
      <compilerarg value="com.google.web.bindery.requestfactory.apt.RfValidator"/>
    </gwt.javac>
  </target>

  <target name="-compile.tests.java8" if="isJava8" depends="-compile.tests.java7">
    <gwt.javac srcdir="test" destdir="${javac.junit.out}" source="1.8" target="1.8"
               includes="**/java8/**,**/*Java8Suite.java">
      <compilerarg value="-Xep:MissingCasesInEnumSwitch:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:SelfComparison:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:SelfEquals:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:FallThrough:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:ReturnValueIgnored:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <compilerarg value="-Xep:EqualsIncompatibleType:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
      <classpath>
        <pathelement location="${javac.junit.out}"/>
        <pathelement location="${javac.out}"/>
        <pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.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/tomcat-servlet-api-8.0.28.jar"
                  excludes="**/*.java"/>
      <zipfileset src="${gwt.tools.lib}/w3c/sac/sac-1.3.jar"/>
      <zipfileset src="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar"/>
      <zipfileset
          src="${gwt.tools.lib}/streamhtmlparser/streamhtmlparser-jsilver-r10/streamhtmlparser-jsilver-r10-1.5-rebased.jar"/>
      <zipfileset src="${gwt.tools.lib}/gss/2015-11-04/closure-stylesheets-library-20151104-rebased.jar"/>
    </gwt.jar>
  </target>

  <target name="checkstyle-source" 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"/>
        <exclude name="org/hibernate/validator/super/org/hibernate/validator/**/*.java"/>
        <exclude name="org/hibernate/validator/ValidationMessages.java"/>
      </fileset>
      <fileset dir="super/com/google/gwt/emul"/>
      <fileset dir="super/com/google/gwt/junit/translatable"/>
    </gwt.checkstyle>
  </target>
  <target name="checkstyle-tests" description="Static analysis of source">
    <gwt.checkstyle.tests>
      <fileset dir="test">
        <include name="com/google/**/*.java"/>
        <include name="test/**"/>
      </fileset>
    </gwt.checkstyle.tests>
  </target>

  <target name="checkstyle" description="Static analysis of source"
          depends="checkstyle-tests,checkstyle-source">
  </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}'
               test.jvmargs="${test.jvmargs}"
               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.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}'
               test.jvmargs="${test.jvmargs}"
               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}'
               test.jvmargs="${test.jvmargs}"
               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} -XdisableClassMetadata"/>
    <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}'
               test.jvmargs="${test.jvmargs}"
               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} -draftCompile"/>
    <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}'
               test.jvmargs="${test.jvmargs}"
               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} -devMode"
               test.jvmargs="${test.jvmargs}"
               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} -devMode"
               test.jvmargs="${test.jvmargs}"
               test.out="${junit.out}/dev-htmlunit"
               test.cases="test.dev.htmlunit.tests">
      <extraclasspaths>
        <path refid="test.extraclasspath"/>
      </extraclasspaths>
    </gwt.junit>
  </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.web.htmlunit}"
               test.jvmargs="${test.jvmargs}"
               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.web.htmlunit} -XdisableClassMetadata"
               test.jvmargs="${test.jvmargs}"
               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.web.htmlunit} -draftCompile"
               test.jvmargs="${test.jvmargs}"
               test.out="${junit.out}/draft-htmlunit"
               test.cases="test.draft.htmlunit.tests">
      <extraclasspaths>
        <path refid="test.extraclasspath"/>
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="test.coverage.htmlunit"
          depends="compile, compile.tests"
          description="Run tests for coverage support"
          unless="test.coverage.htmlunit.disable">
    <fileset id="test.coverage.htmlunit.tests" dir="${javac.junit.out}"
             includes="com/google/gwt/dev/js/client/CoverageTest.class"
             excludes=""/>
    <gwt.junit test.name="test.coverage.htmlunit"
               test.args="${test.args} -draftCompile -out www -prod"
               test.jvmargs="${test.jvmargs} -Dgwt.coverage=com/google/gwt/dev/js/client/CoverageTestModule.java,"
               test.out="${junit.out}/coverage-htmlunit"
               test.cases="test.coverage.htmlunit.tests">
      <extraclasspaths>
        <path refid="test.extraclasspath"/>
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="test"
          depends="compile, compile.tests"
          unless="test.user.disable"
          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="dev.built" location="${gwt.dev.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.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"/>
        <antcall target="test.nongwt"/>
        <antcall target="test.coverage.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="dev.built" location="${gwt.dev.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"/>
        <antcall target="test.coverage.htmlunit"/>
      </parallel>
    </limit>
  </target>

  <target name="test.nongwt"
          depends="compile, compile.tests"
          description="Run JRE-only tests."
          unless="test.nongwt.disable">
    <fileset id="test.nongwt.tests" dir="${javac.junit.out}"
             includes="${gwt.nongwt.testcase.includes}"
             excludes="${gwt.nongwt.testcase.excludes}"/>
    <gwt.junit test.name="test.nongwt"
               test.args="${test.args}"
               test.jvmargs="${test.jvmargs} -Xmx2g "
               test.out="${junit.out}/nongwt"
               test.cases="test.nongwt.tests">
      <extraclasspaths>
        <path refid="test.extraclasspath"/>
      </extraclasspaths>
    </gwt.junit>
  </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.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.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.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.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.selenium is defined -->
        <antcall target="test.nometa.selenium"/>
      </parallel>
    </limit>
  </target>


  <!-- Validation TCK test and reports -->

  <!-- TODO(nchalko) move the tck target to user/build.xml and then delete
         all of samples/validaitontck -->
  <target name="tck"
          depends="tck.run,tck.report"
          description="Run all tests for this project.">
    <fail
        message="One or more junit tests failed for target: @{test.name} @{test.args}"
        if="junit.failure" status="2"/>
  </target>

  <target name="tck.run"
          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="dev.built" location="${gwt.dev.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}">

      <antcall target="tck.dev.htmlunit"/>
    </limit>

    <fail
        message="One or more tck tests failed for target: @{test.name} @{test.args}"
        if="junit.failure" status="2"/>
  </target>

  <macrodef name="countMarkedTests">
    <attribute name="annotation" default="NOT SET"/>
    <attribute name="outputproperty" default="jsr303.marked.@{annotation}"/>
    <sequential>

    </sequential>
  </macrodef>

  <target name="tck.report">
    <mkdir dir="${junit.out}/tck-report"/>
    <mkdir dir="${junit.out}/tck-report/text"/>

    <scan>
      <fileset dir="test/org/hibernate/jsr303/tck/tests" id="id"/>
      <filterchain>
        <countfilter match="@Failing" property="jsr303.marked.Failing" init="0"/>
        <countfilter match="@NonTckTest" property="jsr303.marked.NonTckTest" init="0"/>
        <countfilter match="@NotSupported" property="jsr303.marked.NotSupported" init="0"/>
        <countfilter match="@TestNotCompatible" property="jsr303.marked.TestNotCompatible"
                     init="0"/>
      </filterchain>
    </scan>

    <!-- force to zero if not set above -->
    <property name="jsr303.marked.Failing" value="0"/>
    <property name="jsr303.marked.NonTckTest" value="0"/>
    <property name="jsr303.marked.NotSupported" value="0"/>
    <property name="jsr303.marked.TestNotCompatible" value="0"/>

    <echo message="Marked Failing = ${jsr303.marked.Failing}"/>
    <echo message="Marked NonTckTest = ${jsr303.marked.NonTckTest}"/>
    <echo message="Marked NotSupported = ${jsr303.marked.NotSupported}"/>
    <echo message="Marked TestNotCompatible = ${jsr303.marked.TestNotCompatible}"/>

    <junitreport todir="${junit.out}/tck-report">
      <fileset dir="${junit.out}/tck-dev-htmlunit">
        <include name="reports/TEST-*.xml"/>
      </fileset>
      <report format="noframes" todir="${junit.out}/tck-report" styledir="style/html">
        <param name="markedFailing" expression="${jsr303.marked.Failing}"/>
        <param name="markedNonTckTest" expression="${jsr303.marked.NonTckTest}"/>
        <param name="markedNotSupported" expression="${jsr303.marked.NotSupported}"/>
        <param name="markedTestNotCompatible" expression="${jsr303.marked.TestNotCompatible}"/>
      </report>
      <report format="noframes" todir="${junit.out}/tck-report/text" styledir="style/text">
        <param name="markedFailing" expression="${jsr303.marked.Failing}"/>
        <param name="markedNonTckTest" expression="${jsr303.marked.NonTckTest}"/>
        <param name="markedNotSupported" expression="${jsr303.marked.NotSupported}"/>
        <param name="markedTestNotCompatible" expression="${jsr303.marked.TestNotCompatible}"/>
      </report>
    </junitreport>

    <concat taskname="JSR 303 TCK Result">
      <filelist>
        <file name="${junit.out}/tck-report/text/junit-noframes.html"/>
      </filelist>
    </concat>

  </target>

  <target name="tck.dev.htmlunit"
          depends="compile, compile.tests"
          description="Run dev-mode tests with HtmlUnit."
          unless="test.dev.htmlunit.disable">
    <fileset id="tck.dev.htmlunit.tests" dir="${javac.junit.out}"
             includes="${gwt.tck.testcase.dev.includes}"
             excludes="${gwt.tck.testcase.dev.excludes}"/>
    <gwt.junit test.name="test.dev.htmlunit"
               test.args="${test.args} -devMode"
               test.jvmargs="-ea -Dcom.google.gwt.sample.validationtck.util.Failing.include=true"
               test.out="${junit.out}/tck-dev-htmlunit"
               test.cases="tck.dev.htmlunit.tests"
               haltonfailure="false"
        >
      <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>

