test/jdk/sun/security/tools/jarsigner/diffend.sh
branchniosocketimpl-branch
changeset 57322 4744fdcf458c
parent 57321 eef9324f94cc
parent 54527 96d290a7e94f
child 57336 766140c67efa
equal deleted inserted replaced
57321:eef9324f94cc 57322:4744fdcf458c
     1 #
       
     2 # Copyright (c) 2010, 2012, 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 
       
    29 if [ "${TESTSRC}" = "" ] ; then
       
    30   TESTSRC="."
       
    31 fi
       
    32 if [ "${TESTCLASSES}" = "" ] ; then
       
    33   TESTCLASSES="."
       
    34 fi
       
    35 if [ "${TESTJAVA}" = "" ] ; then
       
    36   echo "TESTJAVA not set.  Test cannot execute."
       
    37   echo "FAILED!!!"
       
    38   exit 1
       
    39 fi
       
    40 
       
    41 # set platform-dependent variables
       
    42 OS=`uname -s`
       
    43 case "$OS" in
       
    44   SunOS | Linux | Darwin | AIX )
       
    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     ;;
       
    66 esac
       
    67 
       
    68 echo 1 > 1
       
    69 mkdir META-INF
       
    70 
       
    71 # Create a fake .RSA file so that jarsigner believes it's signed
       
    72 
       
    73 touch META-INF/x.RSA
       
    74 
       
    75 # A MANIFEST.MF using \n as newlines and no double newlines at the end
       
    76 
       
    77 cat > META-INF/MANIFEST.MF <<EOF
       
    78 Manifest-Version: 1.0
       
    79 Created-By: 1.7.0-internal (Sun Microsystems Inc.)
       
    80 Today: Monday
       
    81 EOF
       
    82 
       
    83 # With the fake .RSA file, to trigger the if (wasSigned) block
       
    84 
       
    85 rm diffend.jar
       
    86 zip diffend.jar META-INF/MANIFEST.MF META-INF/x.RSA 1
       
    87 
       
    88 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} \
       
    89     -keystore ${TESTSRC}${FS}JarSigning.keystore \
       
    90     -storepass bbbbbb \
       
    91     -digestalg SHA1 \
       
    92     -signedjar diffend.new.jar \
       
    93     diffend.jar c
       
    94 
       
    95 unzip -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 
       
    99 rm diffend.jar
       
   100 zip diffend.jar META-INF/MANIFEST.MF 1
       
   101 
       
   102 ${TESTJAVA}${FS}bin${FS}jarsigner ${TESTTOOLVMOPTS} \
       
   103     -keystore ${TESTSRC}${FS}JarSigning.keystore \
       
   104     -storepass bbbbbb \
       
   105     -digestalg SHA1 \
       
   106     -signedjar diffend.new.jar \
       
   107     diffend.jar c
       
   108 
       
   109 unzip -p diffend.new.jar META-INF/MANIFEST.MF | grep Today || exit 2
       
   110