From 495b7c46889b24737d291c76e6a95bd5254b1cb7 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Mon, 19 Nov 2001 15:18:46 +0000 Subject: [PATCH] Add testcase for , clarify its documentation when used as a condition and create checksums in Ant's distribution target. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269963 13f79535-47bb-0310-9956-ffa450edef68 --- build.xml | 8 ++ docs/manual/CoreTasks/checksum.html | 5 +- src/etc/testcases/asf-logo.gif | Bin 0 -> 7279 bytes src/etc/testcases/taskdefs/checksum.xml | 39 ++++++ .../taskdefs/expected/asf-logo.gif.md5 | 1 + .../tools/ant/taskdefs/ChecksumTest.java | 113 ++++++++++++++++++ 6 files changed, 164 insertions(+), 2 deletions(-) create mode 100644 src/etc/testcases/asf-logo.gif create mode 100644 src/etc/testcases/taskdefs/checksum.xml create mode 100644 src/etc/testcases/taskdefs/expected/asf-logo.gif.md5 create mode 100644 src/testcases/org/apache/tools/ant/taskdefs/ChecksumTest.java diff --git a/build.xml b/build.xml index bf049862b..dd507fac4 100644 --- a/build.xml +++ b/build.xml @@ -547,6 +547,8 @@ + @@ -565,6 +567,8 @@ src="${dist.base}/bin/${dist.name}-bin.tar"/> + @@ -572,6 +576,8 @@ + @@ -588,6 +594,8 @@ src="${dist.base}/src/${dist.name}-src.tar"/> + diff --git a/docs/manual/CoreTasks/checksum.html b/docs/manual/CoreTasks/checksum.html index 4775c957c..cec54ca6c 100644 --- a/docs/manual/CoreTasks/checksum.html +++ b/docs/manual/CoreTasks/checksum.html @@ -134,8 +134,9 @@ Works just like Example 1, but generates a .MD5 file for every file that begins </checksum> </condition> -Works like Example 4, but sets isChecksumEqual to either true or false. -This example demonstrates use with the Condition task. +Works like Example 4, but only sets isChecksumEqual to true, if the +checksum matches - it will never be set to false. This example +demonstrates use with the Condition task.

Note:

diff --git a/src/etc/testcases/asf-logo.gif b/src/etc/testcases/asf-logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..22eb9d7358ef57c3488331845e680b72c9b7c8e2 GIT binary patch literal 7279 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 F{{tbU1q=WH literal 0 HcmV?d00001 diff --git a/src/etc/testcases/taskdefs/checksum.xml b/src/etc/testcases/taskdefs/checksum.xml new file mode 100644 index 000000000..b0ea72e11 --- /dev/null +++ b/src/etc/testcases/taskdefs/checksum.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/etc/testcases/taskdefs/expected/asf-logo.gif.md5 b/src/etc/testcases/taskdefs/expected/asf-logo.gif.md5 new file mode 100644 index 000000000..5c886a5f5 --- /dev/null +++ b/src/etc/testcases/taskdefs/expected/asf-logo.gif.md5 @@ -0,0 +1 @@ +0541d3df42520911f268abc730f3afe0 \ No newline at end of file diff --git a/src/testcases/org/apache/tools/ant/taskdefs/ChecksumTest.java b/src/testcases/org/apache/tools/ant/taskdefs/ChecksumTest.java new file mode 100644 index 000000000..d8d558c00 --- /dev/null +++ b/src/testcases/org/apache/tools/ant/taskdefs/ChecksumTest.java @@ -0,0 +1,113 @@ +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "The Jakarta Project", "Ant", and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + */ + +package org.apache.tools.ant.taskdefs; + +import org.apache.tools.ant.BuildFileTest; +import org.apache.tools.ant.util.FileUtils; + +import java.io.IOException; + +/** + * @author Stefan Bodewig + * @version $Revision$ + */ +public class ChecksumTest extends BuildFileTest { + + public ChecksumTest(String name) { + super(name); + } + + public void setUp() { + configureProject("src/etc/testcases/taskdefs/checksum.xml"); + } + + public void tearDown() { + executeTarget("cleanup"); + } + + public void testCreateMd5() throws IOException { + FileUtils fileUtils = FileUtils.newFileUtils(); + executeTarget("createMd5"); + assertTrue(fileUtils.contentEquals(project.resolveFile("expected/asf-logo.gif.md5"), + project.resolveFile("../asf-logo.gif.md5"))); + } + + public void testSetProperty() { + executeTarget("setProperty"); + assertEquals("0541d3df42520911f268abc730f3afe0", + project.getProperty("logo.md5")); + assertTrue(!project.resolveFile("../asf-logo.gif.MD5").exists()); + } + + public void testVerifyAsTask() { + testVerify("verifyAsTask"); + assertNotNull(project.getProperty("no.logo.md5")); + assertEquals("false", project.getProperty("no.logo.md5")); + } + + public void testVerifyAsCondition() { + testVerify("verifyAsCondition"); + assertNull(project.getProperty("no.logo.md5")); + } + + private void testVerify(String target) { + assertNull(project.getProperty("logo.md5")); + assertNull(project.getProperty("no.logo.md5")); + executeTarget(target); + assertNotNull(project.getProperty("logo.md5")); + assertEquals("true", project.getProperty("logo.md5")); + } + +}