You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="DMDirc-tests" default="default" basedir=".">
  3. <description>Test-related tasks for DMDirc.</description>
  4. <property name="clover.jar" location="lib/clover.jar"/>
  5. <taskdef resource="cloverlib.xml" classpath="${clover.jar}"/>
  6. <taskdef resource="cloverjunitlib.xml" classpath="${clover.jar}"/>
  7. <available file="/usr/bin/xvfb-run" property="has.xvfb"/>
  8. <condition property="clover.installed">
  9. <and>
  10. <available classname="com.cenqua.clover.CloverInstr"/>
  11. <available file="lib/clover.license"/>
  12. </and>
  13. </condition>
  14. <target name="with.clover" depends="clean" if="clover.installed"
  15. description="Set up Clover to instrument tests.">
  16. <clover-clean/>
  17. <clover-env/>
  18. <clover-setup>
  19. <fileset dir="src/com/" includes="**/*.java" />
  20. <fileset dir="modules/parser/src/" includes="**/*.java" />
  21. <fileset dir="modules/util/src/" includes="**/*.java" />
  22. <fileset dir="modules/plugins/src/" includes="**/*.java" />
  23. <fileset dir="test/">
  24. <include name="**/*.java" />
  25. <exclude name="**/harness/**/*.java" />
  26. </fileset>
  27. <fileset dir="modules/parser/test/">
  28. <include name="**/*.java" />
  29. <exclude name="**/harness/**/*.java" />
  30. </fileset>
  31. <fileset dir="modules/util/test/">
  32. <include name="**/*.java" />
  33. <exclude name="**/harness/**/*.java" />
  34. </fileset>
  35. <fileset dir="modules/plugins/test/">
  36. <include name="**/*.java" />
  37. <exclude name="**/harness/**/*.java" />
  38. </fileset>
  39. <methodContext name="private_ctor" regexp="(.* )?private +[a-zA-Z0-9_$]+ *\( *\).*"/>
  40. </clover-setup>
  41. </target>
  42. <target name="clover.snapshot" depends="with.clover" if="clover.installed">
  43. <clover-snapshot/>
  44. </target>
  45. <target name="clover.xml" if="clover.installed"
  46. description="Generate a Clover XML report.">
  47. <mkdir dir="reports/clover" />
  48. <clover-report>
  49. <current outfile="reports/clover/clover.xml">
  50. <format type="xml" filter="private_ctor"/>
  51. </current>
  52. </clover-report>
  53. </target>
  54. <target name="clover.html" if="clover.installed"
  55. description="Generate a Clover HTML report.">
  56. <mkdir dir="reports/clover" />
  57. <mkdir dir="reports/clover/history" />
  58. <clover-historypoint historydir="reports/clover/history" />
  59. <clover-report>
  60. <current outfile="reports/clover">
  61. <format type="html" filter="private_ctor"/>
  62. </current>
  63. <historical outfile="reports/clover" historydir="reports/clover/history" />
  64. </clover-report>
  65. </target>
  66. <property name="test.reports" value="./junitreports" />
  67. <target name="-do-test-reports">
  68. <mkdir dir="${test.reports}" />
  69. <junitreport todir="${test.reports}">
  70. <fileset dir="${build.test.results.dir}">
  71. <include name="TEST-*.xml" />
  72. </fileset>
  73. <report todir="${test.reports}" />
  74. </junitreport>
  75. </target>
  76. <target name="test" depends="check-use-xvfb, -test-xvfb, -test-no-xvfb"/>
  77. <target name="check-use-xvfb">
  78. <condition property="use.xvfb">
  79. <and>
  80. <not>
  81. <equals arg1="${xvfb.disable}" arg2="true" />
  82. </not>
  83. <equals arg1="${has.xvfb}" arg2="true" />
  84. </and>
  85. </condition>
  86. </target>
  87. <target name="-test-xvfb" if="use.xvfb">
  88. <exec executable="/usr/bin/xvfb-run">
  89. <arg value="-a"/>
  90. <arg value="-s"/>
  91. <arg value="-screen 0 1280x1024x24"/>
  92. <arg value="-w"/>
  93. <arg value="5"/>
  94. <arg value="/usr/bin/ant"/>
  95. <arg value="do-xvfb-tests"/>
  96. </exec>
  97. </target>
  98. <target name="do-xvfb-tests" depends="with.clover,do-real-test,clover.xml,clover.snapshot"/>
  99. <target name="-test-no-xvfb" unless="use.xvfb">
  100. <antcall>
  101. <target name="with.clover"/>
  102. <target name="do-real-test"/>
  103. <target name="clover.xml"/>
  104. <target name="clover.snapshot"/>
  105. </antcall>
  106. </target>
  107. <target name="test-html" depends="with.clover,compile-test,test,clover.html,clover.snapshot"
  108. description="Run tests and generate a Clover HTML report."/>
  109. <target name="test-xml" depends="with.clover,compile-test,test,clover.xml,clover.snapshot"
  110. description="Run tests and generate a Clover XML report."/>
  111. <target name="test-both" depends="test-html,test-xml"
  112. description="Run tests and generate Clover XML and HTML reports."/>
  113. <target name="teamcity-clover-report">
  114. <xslt in="reports/clover/clover.xml" style="checkstyle/clover.xsl" out="teamcity-info.xml" />
  115. </target>
  116. </project>