diffend.sh revision 5116:d45bc4307996
1# 2# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. 3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4# 5# This code is free software; you can redistribute it and/or modify it 6# under the terms of the GNU General Public License version 2 only, as 7# published by the Free Software Foundation. 8# 9# This code is distributed in the hope that it will be useful, but WITHOUT 10# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12# version 2 for more details (a copy is included in the LICENSE file that 13# accompanied this code). 14# 15# You should have received a copy of the GNU General Public License version 16# 2 along with this work; if not, write to the Free Software Foundation, 17# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18# 19# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20# or visit www.oracle.com if you need additional information or have any 21# questions. 22# 23 24# @test 25# @bug 6948909 26# @summary Jarsigner removes MANIFEST.MF info for badly packages jar's 27# 28 29if [ "${TESTSRC}" = "" ] ; then 30 TESTSRC="." 31fi 32if [ "${TESTCLASSES}" = "" ] ; then 33 TESTCLASSES="." 34fi 35if [ "${TESTJAVA}" = "" ] ; then 36 echo "TESTJAVA not set. Test cannot execute." 37 echo "FAILED!!!" 38 exit 1 39fi 40 41# set platform-dependent variables 42OS=`uname -s` 43case "$OS" in 44 SunOS | Linux | Darwin ) 45 NULL=/dev/null 46 PS=":" 47 FS="/" 48 CP="${FS}bin${FS}cp -f" 49 ;; 50 CYGWIN* ) 51 NULL=/dev/null 52 PS=";" 53 FS="/" 54 CP="cp -f" 55 ;; 56 Windows_* ) 57 NULL=NUL 58 PS=";" 59 FS="\\" 60 CP="cp -f" 61 ;; 62 * ) 63 echo "Unrecognized operating system!" 64 exit 1; 65 ;; 66esac 67 68echo 1 > 1 69mkdir META-INF 70 71# Create a fake .RSA file so that jarsigner believes it's signed 72 73touch META-INF/x.RSA 74 75# A MANIFEST.MF using \n as newlines and no double newlines at the end 76 77cat > META-INF/MANIFEST.MF <<EOF 78Manifest-Version: 1.0 79Created-By: 1.7.0-internal (Sun Microsystems Inc.) 80Today: Monday 81EOF 82 83# With the fake .RSA file, to trigger the if (wasSigned) block 84 85rm diffend.jar 86zip diffend.jar META-INF/MANIFEST.MF META-INF/x.RSA 1 87 88${TESTJAVA}${FS}bin${FS}jarsigner \ 89 -keystore ${TESTSRC}${FS}JarSigning.keystore \ 90 -storepass bbbbbb \ 91 -digestalg SHA1 \ 92 -signedjar diffend.new.jar \ 93 diffend.jar c 94 95unzip -p diffend.new.jar META-INF/MANIFEST.MF | grep Today || exit 1 96 97# Without the fake .RSA file, to trigger the else block 98 99rm diffend.jar 100zip diffend.jar META-INF/MANIFEST.MF 1 101 102${TESTJAVA}${FS}bin${FS}jarsigner \ 103 -keystore ${TESTSRC}${FS}JarSigning.keystore \ 104 -storepass bbbbbb \ 105 -digestalg SHA1 \ 106 -signedjar diffend.new.jar \ 107 diffend.jar c 108 109unzip -p diffend.new.jar META-INF/MANIFEST.MF | grep Today || exit 2 110 111