<project name="signjartest" default="help" basedir=".."> <property name="classes.dir" value="../../../build/classes"/> <property name="sign.dir" location="signedjars" /> <property name="subdir" location="${sign.dir}/subdir" /> <property name="test.jar" location="${sign.dir}/signtest.jar" /> <property name="subdirtest.jar" location="${subdir}/signtest.jar" /> <macrodef name="assertSigned"> <attribute name="jar" default="${test.jar}" /> <sequential> <fail message="not signed: @{jar}" > <condition> <not><issigned file="@{jar}" /></not> </condition> </fail> </sequential> </macrodef> <presetdef name="sign-base"> <signjar alias="testonly" keystore="testkeystore" storepass="apacheant"/> </presetdef> <presetdef name="verify-base"> <verifyjar keystore="testkeystore" storepass="apacheant"/> </presetdef> <presetdef name="sign"> <sign-base jar="${test.jar}" /> </presetdef> <target name="init"> <mkdir dir="${sign.dir}" /> <mkdir dir="${subdir}" /> </target> <target name="jar" depends="init"> <jar jarfile="${test.jar}" basedir="${classes.dir}" includes="**/Task.class"/> </target> <target name="clean"> <delete dir="${sign.dir}"/> </target> <target name="help"> <echo>This build is for use with Ant's test cases</echo> </target> <target name="basic" depends="jar"> <sign /> <assertSigned/> </target> <target name="sigfile" depends="jar"> <sign sigfile="TEST"/> <assertSigned/> </target> <target name="maxmemory" depends="jar"> <sign maxmemory="128m"/> <assertSigned/> </target> <target name="urlKeystoreFile" depends="jar"> <sign keystore="file://../testkeystore" maxmemory="128m"/> <assertSigned/> </target> <!--TODO: change this when we move to SUBVERSION--> <target name="urlKeystoreHTTP" depends="jar"> <sign keystore="http://cvs.apache.org/viewcvs.cgi/*checkout*/ant/src/etc/testcases/testkeystore?rev=HEAD" /> <assertSigned/> </target> <target name="preserveLastModified" depends="jar"> <touch file="${test.jar}" datetime="06/28/2000 2:02 pm"/> <sign preservelastmodified="true"/> <assertSigned /> <fail message="preserveLastModified did not preserve the last modified time"> <condition> <not> <isfileselected file="${test.jar}" > <date datetime="06/28/2000 2:02 pm" when="equal"/> </isfileselected> </not> </condition> </fail> </target> <target name="testFileset" depends="jar"> <sign-base> <fileset file="${test.jar}" /> </sign-base> <assertSigned/> </target> <target name="testFilesetAndJar" depends="jar"> <sign-base jar="${test.jar}" lazy="true"> <fileset file="${test.jar}" /> </sign-base> <assertSigned/> </target> <target name="testFilesetAndSignedJar" depends="jar"> <sign-base signedjar="${sign.dir}/newfile.jar"> <fileset file="${test.jar}" /> </sign-base> </target> <target name="testSignedJar" depends="jar"> <sign signedjar="${subdirtest.jar}"/> <assertSigned jar="${subdirtest.jar}"/> </target> <target name="testDestDirAndSignedJar" depends="jar"> <sign destDir="${subdir}" signedjar="${sign.dir}/newfile.jar"/> </target> <target name="testDestDir" depends="jar"> <sign destDir="${subdir}" /> <assertSigned jar="${subdirtest.jar}"/> </target> <target name="testDestDirFileset" depends="jar"> <sign-base destDir="${subdir}"> <fileset file="${test.jar}" /> </sign-base> <assertSigned jar="${subdirtest.jar}"/> </target> <target name="testMapperNoDest" depends="jar"> <sign-base > <flattenmapper /> <fileset file="${test.jar}" /> </sign-base> </target> <target name="testMapperFileset" depends="jar"> <sign-base destDir="${subdir}"> <fileset file="${test.jar}" /> <flattenmapper /> </sign-base> <assertSigned jar="${subdirtest.jar}"/> </target> <target name="testTwoMappers" depends="jar"> <sign-base destDir="${subdir}"> <fileset file="${test.jar}" /> <flattenmapper /> <flattenmapper /> </sign-base> </target> <target name="testNoAlias" depends="jar"> <signjar keystore="testkeystore" jar="${test.jar}" storepass="apacheant"/> </target> <target name="testNoFiles" > <sign-base /> </target> <target name="testNoStorePass" depends="jar"> <signjar keystore="testkeystore" alias="testonly" jar="${test.jar}"/> </target> <target name="testTsaLocalhost" depends="jar"> <sign tsaurl="http://localhost:0/" /> </target> <target name="testSysProperty" depends="jar"> <sign> <sysproperty key="ant.home" value="${ant.home}" /> </sign> <assertSigned/> </target> <target name="testVerifyJar" depends="basic"> <verify-base jar="${test.jar}"/> </target> <target name="testVerifyJarCertificates" depends="basic"> <verify-base jar="${test.jar}" certificates="true" verbose="true"/> </target> <target name="testVerifyJarUnsigned" depends="jar"> <verify-base jar="${test.jar}"/> </target> <target name="testVerifyJarNotInKeystore" depends="basic"> <verifyjar jar="${test.jar}" certificates="true" verbose="true"/> </target> <target name="testVerifyFileset" depends="basic"> <verify-base > <fileset file="${test.jar}" /> </verify-base> </target> <target name="testVerifyNoArgs"> <verify-base /> </target> </project>