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