|
Ant example source code file (assertions.xml)
The assertions.xml source code<?xml version="1.0"?> <project name="assertions" basedir="." default="init"> <property name="build.dir" location="assertions/build"/> <property name="src.dir" location="assertions"/> <property name="classname" value="AssertionMain"/> <property name="test.classname" value="AssertionTest"/> <path id="assert.classpath"> <pathelement location="${build.dir}"/> </path> <target name="setup" > <mkdir dir="${build.dir}"/> <javac srcdir="${src.dir}" includes="*.java" source="1.4" debug="true" destdir="${build.dir}" /> </target> <target name="teardown" > <delete dir="${build.dir}"/> </target> <!-- if per-class assertions work, this run asserts --> <target name="test-classname" depends="setup"> <java fork="true" failonerror="true" classname="${classname}" classpathref="assert.classpath"> <assertions enablesystemassertions="true"> <enable class="${classname}" /> </assertions> </java> </target> <!-- if package works, this run asserts --> <target name="test-package" depends="setup"> <java fork="true" failonerror="true" classname="${classname}" classpathref="assert.classpath"> <assertions enableSystemAssertions="false" > <enable package="..." /> </assertions> </java> </target> <!-- this test should run the app successfully --> <target name="test-empty-assertions" depends="setup"> <java fork="true" failonerror="true" classname="${classname}" classpathref="assert.classpath"> <assertions/> </java> </target> <!-- this test should run the app successfully --> <target name="test-disable" depends="setup"> <java fork="true" failonerror="true" classname="${classname}" classpathref="assert.classpath"> <assertions enableSystemAssertions="false" > <enable package="..." /> <disable class="${classname}" /> </assertions> </java> </target> <!-- repeated settigns result in the last declaration winning except that the rule 'classes win over packages takes priority this run will assert --> <target name="test-override" depends="setup"> <java fork="true" failonerror="true" classname="${classname}" classpathref="assert.classpath"> <assertions enableSystemAssertions="false" > <enable package="..." /> <disable class="${classname}" /> <enable class="${classname}" /> <disable package="..." /> </assertions> </java> </target> <!-- repeated settigns result in the last declaration winning; this run will not assert --> <target name="test-override2" depends="setup"> <java fork="true" failonerror="true" classname="${classname}" classpathref="assert.classpath"> <assertions enableSystemAssertions="false" > <enable package="..." /> <enable class="${classname}" /> <disable class="${classname}" /> </assertions> </java> </target> <!-- if references work, this run asserts --> <target name="test-references"> <assertions id="project.assertions" > <enable package="org.apache.test" /> <disable package="org.apache.log4j"/> <enable package="..."/> </assertions> <java fork="true" failonerror="true" classname="${classname}" classpathref="assert.classpath"> <assertions refid="project.assertions"/> </java> </target> <!-- when fork=false; we need to reject the construct --> <target name="test-nofork" depends="setup"> <java fork="false" failonerror="true" classname="${classname}" classpathref="assert.classpath"> <assertions enablesystemassertions="true"> <enable class="${classname}" /> </assertions> </java> </target> <!-- this throws a build error --> <target name="test-multiple-assertions" depends="setup"> <java fork="true" failonerror="true" classname="${classname}" classpathref="assert.classpath"> <assertions enablesystemassertions="true"> <enable class="${classname}" /> </assertions> <assertions/> </java> </target> <!-- should throw a build exception --> <target name="test-reference-abuse" depends="setup"> <assertions id="project.assertions2" > <enable package="org.apache.test" /> <disable package="org.apache.log4j"/> <enable package="..."/> </assertions> <java fork="true" failonerror="true" classname="${classname}" classpathref="assert.classpath"> <assertions refid="project.assertions2"> <disable class="${classname}" /> </assertions> </java> </target> <target name="test-junit" depends="setup"> <junit fork="true" haltonerror="true" haltonfailure="true" > <classpath> <path refid="assert.classpath"/> </classpath> <formatter type="plain" usefile="false"/> <assertions > <enable class="${test.classname}" /> </assertions> <test name="${test.classname}"/> </junit> </target> <!-- This is here to show that setting it as a property works so there is some defect in pass-on of assertions that is causing the problem --> <target name="test-junit-manual-setup" depends="setup"> <junit fork="true" haltonerror="true" haltonfailure="true" > <classpath> <path refid="assert.classpath"/> </classpath> <formatter type="plain" usefile="false"/> <test name="${test.classname}"/> <jvmarg value="-ea:AssertionTest"/> </junit> </target> </project> Other Ant examples (source code examples)Here is a short list of links related to this Ant assertions.xml source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.