TimeZoneDatePermissionCheck.sh revision 8629:d545d67e2f68
1# Testcase for PR381 Stackoverflow error with security manager, signed jars
2# and -Djava.security.debug set.
3#
4# Copyright (c) 2009, Red Hat Inc.
5#
6# This code is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2, or (at your option)
9# any later version.
10# 
11# This code is distributed in the hope that it will be useful, but
12# WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14# General Public License for more details.
15# 
16# You should have received a copy of the GNU General Public License version
17# 2 along with this work; if not, write to the Free Software Foundation,
18# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19#
20# @test
21# @bug 6584033
22# @summary Stackoverflow error with security manager, signed jars and debug.
23# @build TimeZoneDatePermissionCheck
24# @run shell TimeZoneDatePermissionCheck.sh
25
26# Set default if not run under jtreg from test dir itself
27if [ "${TESTCLASSES}" = "" ] ; then
28  TESTCLASSES="."
29fi
30if [ "${TESTJAVA}" = "" ] ; then
31  TESTJAVA=/usr
32fi
33if [ "${COMPILEJAVA}" = "" ]; then
34  COMPILEJAVA="${TESTJAVA}"
35fi
36
37# create a test keystore and dummy cert. Note that we use the COMPILEJAVA
38# as this test is a TimeZone test, it doesn't test keytool
39rm -f ${TESTCLASSES}/timezonedatetest.store
40${COMPILEJAVA}/bin/keytool ${TESTTOOLVMOPTS} -genkeypair -alias testcert \
41  -keystore ${TESTCLASSES}/timezonedatetest.store \
42  -storepass testpass -validity 360 \
43  -keyalg rsa \
44  -dname "cn=Mark Wildebeest, ou=FreeSoft, o=Red Hat, c=NL" \
45  -keypass testpass
46
47# create a jar file to sign with the test class in it.
48rm -f ${TESTCLASSES}/timezonedatetest.jar
49${COMPILEJAVA}/bin/jar ${TESTTOOLVMOPTS} cf \
50  ${TESTCLASSES}/timezonedatetest.jar \
51  -C ${TESTCLASSES} TimeZoneDatePermissionCheck.class
52
53# sign it
54${COMPILEJAVA}/bin/jarsigner ${TESTTOOLVMOPTS} \
55  -keystore ${TESTCLASSES}/timezonedatetest.store \
56  -storepass testpass ${TESTCLASSES}/timezonedatetest.jar testcert
57
58# run it with the security manager on, plus accesscontroller debugging
59# will go into infinite recursion trying to get enough permissions for
60# printing Date of failing certificate unless fix is applied.
61${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.security.manager \
62  -Djava.security.debug=access,failure,policy \
63  -cp ${TESTCLASSES}/timezonedatetest.jar TimeZoneDatePermissionCheck
64