| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <project name="jdktools-test" default="test-all" basedir=".."> |
| |
| <description>Tests for classlib package</description> |
| |
| <!-- import common properties --> |
| <import file="${basedir}/make/properties.xml" /> |
| |
| <!-- set global properties for this build. --> |
| <property name="tests.output" location="build/test_report" /> |
| |
| <condition property="not.copy.jre"> |
| <isset property="test.jre.home"/> |
| </condition> |
| <property name="test.jre.home" location="${jdktools.deploy.dir}" /> |
| |
| <property name="tests.build.output" location="build/tests" /> |
| <property name="tests.depends.jars" location="${hy.hdk}/jdk/jre/lib/boot" /> |
| |
| <!-- this list of components to test will grow to eventually be all modules --> |
| <target name="test-all" |
| depends="clean-tests-output, test-modules, process-test-output" /> |
| |
| <target name="process-test-output" |
| depends="process-empty, gen-report, check-test-result" /> |
| |
| <target name="clean" depends="clean-tests-output, clean-tests, clean-jre" /> |
| |
| <target name="clean-tests"> |
| <delete dir="${tests.build.output}" /> |
| </target> |
| |
| <target name="clean-tests-output"> |
| <delete dir="${tests.output}" /> |
| </target> |
| |
| <target name="test-modules" depends="copy-jre" > |
| <mkdir dir="${tests.output}" /> |
| <mkdir dir="${tests.build.output}" /> |
| <call-modules target="test-module" /> |
| </target> |
| |
| <target name="gen-report" depends="full-report,short-report" /> |
| |
| <target name="full-report" unless="short.report" > |
| <junitreport todir="${tests.output}"> |
| <fileset dir="${tests.output}"> |
| <include name="TEST*-*.xml"/> |
| </fileset> |
| <report format="frames" todir="${tests.output}/html"/> |
| </junitreport> |
| |
| <!-- use this property just to get the slashes to display right in the echo --> |
| <property name="display-location" location="${tests.output}/html/index.html"/> |
| <echo message="The test report is in ${display-location}"/> |
| </target> |
| |
| <target name="short-report" if="short.report" > |
| <junitreport todir="${tests.output}"> |
| <fileset dir="${tests.output}" includes="TEST*-*.xml"> |
| <containsregexp expression='(errors|failures)="[1-9]' /> |
| <exclude name="TESTS-TestSuites.xml" /> |
| </fileset> |
| <report format="frames" todir="${tests.output}/html"/> |
| </junitreport> |
| |
| <!-- use this property just to get the slashes to display right in the echo --> |
| <property name="display-location" location="${tests.output}/html/index.html"/> |
| <echo message="The short test report is in ${display-location}"/> |
| </target> |
| |
| <target name="check-test-result"> |
| <available property="test.errors" |
| file="${tests.output}/test.errors" /> |
| <available property="test.failures" |
| file="${tests.output}/test.failures" /> |
| <fail if="test.errors" message="There were test errors." /> |
| <fail if="test.failures" message="There were test failures." /> |
| </target> |
| |
| <target name="copy-jre" depends="copy-jre-files, chmod-jre-files" unless="not.copy.jre"/> |
| |
| <target name="copy-jre-files" unless="not.copy.jre"> |
| <copy todir="${jdktools.deploy.dir}/jre" overwrite="no"> |
| <fileset dir="${hy.deploy}/jdk/jre" /> |
| </copy> |
| </target> |
| |
| <target name="chmod-jre-files" if="is.unix" unless="not.copy.jre"> |
| <chmod file="${jdktools.deploy.dir}/jre/bin/java" perm="ugo+x" /> |
| </target> |
| |
| <target name="clean-jre"> |
| <delete dir="${jdktools.deploy.dir}/jre" /> |
| </target> |
| |
| <target name="process-empty" depends="-check-for-empty, -process-empty"/> |
| <target name="-check-for-empty"> |
| <fileset id="empty.test.reports" dir="${tests.output}"> |
| <patternset> |
| <include name="TEST-*.xml"/> |
| </patternset> |
| <size value="0" when="equal"/> |
| </fileset> |
| |
| <pathconvert refid="empty.test.reports" pathsep="${path.separator}" |
| property="crashed.tests"/> |
| <condition property="test.crashes"> |
| <not> |
| <equals arg1="" arg2="${crashed.tests}" /> |
| </not> |
| </condition> |
| </target> |
| <target name="-process-empty" if="test.crashes"> |
| <property name="per.crashed.tests.file" |
| value="${tests.output}${file.separator}TEST-crashed.xml"/> |
| |
| <property name="per.header" |
| value="<?xml version='1.0' encoding='UTF-8' ?><testsuite errors='1' name='vmcrash.CrashedTests' time='0'>"/> |
| <property name="per.prefix" |
| value="<testcase classname='"/> |
| <property name="per.middle" value="' name='"/> |
| <property name="per.suffix" |
| value="' time='0.0'><error message='VM crash?'/></testcase>"/> |
| <property name="per.footer" value="</testsuite>"/> |
| |
| <echo message="${crashed.tests}" file="${per.crashed.tests.file}"/> |
| |
| <replaceregexp file="${per.crashed.tests.file}" flags="g"> |
| <regexp pattern="[^${path.separator}]*TEST-([^${path.separator}]*)\.xml${path.separator}?"/> |
| <substitution expression="${per.prefix}\1${per.middle}\1${per.suffix}"/> |
| </replaceregexp> |
| <replaceregexp file="${per.crashed.tests.file}" match="\A" |
| replace="${per.header}"/> |
| <echo file="${per.crashed.tests.file}" append="yes" |
| message="${per.footer}"/> |
| |
| <!-- now let's delete empty reports --> |
| <delete><fileset refid="empty.test.reports"/></delete> |
| </target> |
| |
| </project> |