|
- <?xml version="1.0"?>
- <!--
- 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 default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
- <import file="../antunit-base.xml" />
-
- <target name="testIndexOnlyUpdate">
- <mkdir dir="${output}"/>
- <property name="index.jar" location="${output}/index.jar" />
-
- <jar destfile="${index.jar}" index="false">
- <fileset dir="${basedir}" includes="*-test.xml" />
- </jar>
- <au:assertTrue>
- <resourcecount count="0">
- <restrict>
- <zipentry zipfile="${index.jar}" name="META-INF/INDEX.LIST" />
- <exists />
- </restrict>
- </resourcecount>
- </au:assertTrue>
- <jar destfile="${index.jar}" index="true" update="true">
- <fileset dir="${basedir}" includes="*-test.xml" />
- </jar>
- <au:assertTrue>
- <resourcecount count="1">
- <restrict>
- <zipentry zipfile="${index.jar}" name="META-INF/INDEX.LIST" />
- <exists />
- </restrict>
- </resourcecount>
- </au:assertTrue>
- </target>
-
- <target name="testResourcesOnly"
- description="https://issues.apache.org/bugzilla/show_bug.cgi?id=47470">
- <mkdir dir="${input}"/>
- <mkdir dir="${output}"/>
- <touch file="${input}/foo"/>
- <touch file="${output}/bar"/>
- <jar destfile="${output}/foo.jar">
- <union>
- <fileset dir="${input}"/>
- <fileset dir="${output}" excludes="foo.jar"/>
- </union>
- </jar>
- <au:assertLogDoesntContain text="skipping jar archive"/>
- </target>
-
- <target name="-metainf-setup">
- <mkdir dir="${input}/services"/>
- <touch file="${input}/services/foo"/>
- <mkdir dir="${output}"/>
- </target>
-
- <target name="testIndexNoMetaInf" depends="-metainf-setup">
- <jar index="true" destfile="${output}/test.jar">
- <metainf dir="${input}"/>
- </jar>
- <unjar src="${output}/test.jar" dest="${output}"/>
- <au:assertFileExists file="${output}/META-INF/INDEX.LIST"/>
- <au:assertResourceDoesntContain value="META-INF"
- resource="${output}/META-INF/INDEX.LIST"/>
- </target>
-
- <target name="testIndexMetaInf" depends="-metainf-setup">
- <jar index="true" destfile="${output}/test.jar" indexMetaInf="true">
- <metainf dir="${input}"/>
- </jar>
- <unjar src="${output}/test.jar" dest="${output}"/>
- <au:assertFileExists file="${output}/META-INF/INDEX.LIST"/>
- <au:assertResourceContains value="META-INF"
- resource="${output}/META-INF/INDEX.LIST"/>
- </target>
-
- <target name="testMergeWithoutMain"
- description="https://issues.apache.org/bugzilla/show_bug.cgi?id=29731">
- <mkdir dir="${input}"/>
- <mkdir dir="${output}"/>
- <jar destfile="${input}/first.jar">
- <manifest>
- <attribute name="First" value="Main Section"/>
- <section name="Nested">
- <attribute name="First" value="Nested Section"/>
- </section>
- </manifest>
- </jar>
- <jar destfile="${output}/second.jar" filesetmanifest="mergewithoutmain">
- <manifest>
- <attribute name="Second" value="Main Section"/>
- <section name="Nested">
- <attribute name="Second" value="Nested Section"/>
- </section>
- </manifest>
- <zipgroupfileset dir="${input}" includes="first.jar"/>
- </jar>
- <unjar src="${output}/second.jar" dest="${output}"/>
- <au:assertFileExists file="${output}/META-INF/MANIFEST.MF"/>
- <au:assertResourceContains value="First: Nested Section"
- resource="${output}/META-INF/MANIFEST.MF"/>
- <au:assertResourceContains value="Second: Nested Section"
- resource="${output}/META-INF/MANIFEST.MF"/>
- <au:assertResourceDoesntContain
- value="First: Main Section"
- resource="${output}/META-INF/MANIFEST.MF"/>
- <au:assertResourceContains value="Second: Main Section"
- resource="${output}/META-INF/MANIFEST.MF"/>
- </target>
-
- <target name="testWhenManifestOnly"
- description="https://issues.apache.org/bugzilla/show_bug.cgi?id=43946">
- <mkdir dir="${input}"/>
- <mkdir dir="${output}"/>
- <jar destfile="${output}/first.jar">
- <fileset dir="${input}"/>
- </jar>
- <au:assertFileExists file="${output}/first.jar"/>
- <au:assertLogDoesntContain text="skipping jar archive"/>
- <jar destfile="${output}/second.jar" whenmanifestonly="create">
- <fileset dir="${input}"/>
- </jar>
- <au:assertFileExists file="${output}/second.jar"/>
- <au:assertLogDoesntContain text="skipping jar archive"/>
- <jar destfile="${output}/third.jar" whenmanifestonly="skip">
- <fileset dir="${input}"/>
- </jar>
- <au:assertFileDoesntExist file="${output}/third.jar"/>
- <au:assertLogContains text="skipping jar archive"/>
- <au:expectfailure>
- <jar destfile="${output}/forth.jar" whenmanifestonly="fail">
- <fileset dir="${input}"/>
- </jar>
- </au:expectfailure>
- </target>
-
- <target name="test-update-and-filesetmanifest"
- description="https://issues.apache.org/bugzilla/show_bug.cgi?id=30751">
- <mkdir dir="${input}"/>
- <mkdir dir="${output}"/>
- <jar destfile="${input}/manifest.jar">
- <manifest>
- <attribute name="Origin" value="manifest.jar"/>
- </manifest>
- </jar>
-
- <touch file="${input}/foo"/>
- <jar destfile="${output}/test.jar">
- <fileset dir="${input}" excludes="*.jar"/>
- <manifest>
- <attribute name="Second-Origin" value="test.jar"/>
- </manifest>
- </jar>
-
- <touch file="${input}/bar"/>
- <jar destfile="${output}/test.jar" update="true" filesetmanifest="merge">
- <fileset dir="${input}" excludes="*.jar"/>
- <zipgroupfileset dir="${input}" includes="*.jar"/>
- </jar>
-
- <unjar src="${output}/test.jar" dest="${output}"/>
- <au:assertFileExists file="${output}/foo"/>
- <au:assertFileExists file="${output}/bar"/>
- <au:assertResourceContains value="Origin: manifest.jar"
- resource="${output}/META-INF/MANIFEST.MF"/>
- <au:assertResourceContains value="Second-Origin: test.jar"
- resource="${output}/META-INF/MANIFEST.MF"/>
- </target>
-
- <target name="testDuplicateFail">
- <mkdir dir="${input}/1"/>
- <mkdir dir="${input}/2"/>
- <mkdir dir="${output}"/>
- <touch file="${input}/1/a.txt"/>
- <touch file="${input}/2/a.txt"/>
- <au:expectfailure message="Duplicate file">
- <jar destfile="${output}/test.jar" duplicate="fail">
- <fileset dir="${input}/1"/>
- <fileset dir="${input}/2"/>
- </jar>
- </au:expectfailure>
- </target>
-
- <target name="testFileSetMerge"
- description="https://issues.apache.org/bugzilla/show_bug.cgi?id=49090">
- <mkdir dir="${input}/META-INF"/>
- <mkdir dir="${output}"/>
- <echo file="${input}/META-INF/MANIFEST.MF"><![CDATA[Test: Header
- ]]></echo>
- <jar destfile="${output}/test.jar" filesetmanifest="merge">
- <fileset dir="${input}"/>
- </jar>
- <unjar src="${output}/test.jar" dest="${output}"/>
- <au:assertResourceContains value="Test: Header"
- resource="${output}/META-INF/MANIFEST.MF"/>
- </target>
-
- <target name="testZipfilesetMerge"
- description="https://issues.apache.org/bugzilla/show_bug.cgi?id=49605">
- <mkdir dir="${input}"/>
- <mkdir dir="${output}"/>
- <echo file="${input}/MANIFEST.MF">Manifest-Version: 1.0
- Main-Class: MyClass
-
- </echo>
- <jar destfile="${input}/manifesttest.jar"
- filesetmanifest="merge">
- <zipfileset file="${input}/MANIFEST.MF" prefix="META-INF"/>
- </jar>
- <unjar src="${input}/manifesttest.jar" dest="${output}"/>
- <au:assertFileExists file="${output}/META-INF/MANIFEST.MF"/>
- <au:assertResourceContains value="Main-Class: MyClass"
- resource="${output}/META-INF/MANIFEST.MF"/>
- </target>
-
- <target name="testMergeWithoutMainWithoutExplicitManifest"
- description="https://issues.apache.org/bugzilla/show_bug.cgi?id=54171">
- <mkdir dir="${input}"/>
- <mkdir dir="${output}"/>
- <jar destfile="${input}/input.jar">
- <manifest>
- <attribute name="Foo" value="Main Section"/>
- </manifest>
- <fileset dir="."/>
- </jar>
- <jar destfile="${input}/test.jar"
- filesetmanifest="mergewithoutmain">
- <zipgroupfileset dir="${input}">
- <include name="input.jar"/>
- </zipgroupfileset>
- </jar>
- <unjar src="${input}/test.jar" dest="${output}"/>
- <au:assertFileExists file="${output}/META-INF/MANIFEST.MF"/>
- <au:assertResourceDoesntContain
- value="Foo: Main Section"
- resource="${output}/META-INF/MANIFEST.MF"/>
- </target>
-
- </project>
|