run_tests.sh revision 12973:2e63fa2efdb1
1#!/bin/sh
2
3#
4# Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
5# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6#
7# This code is free software; you can redistribute it and/or modify it
8# under the terms of the GNU General Public License version 2 only, as
9# published by the Free Software Foundation.
10#
11# This code is distributed in the hope that it will be useful, but WITHOUT
12# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14# version 2 for more details (a copy is included in the LICENSE file that
15# accompanied this code).
16#
17# You should have received a copy of the GNU General Public License version
18# 2 along with this work; if not, write to the Free Software Foundation,
19# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20#
21# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22# or visit www.oracle.com if you need additional information or have any
23# questions.
24#
25
26
27# @test
28# @bug 6173575 6388987
29# @summary Unit tests for appendToBootstrapClassLoaderSearch and
30#   appendToSystemClasLoaderSearch methods.
31#
32# @build Agent AgentSupport BootSupport BasicTest PrematureLoadTest DynamicTest
33# @run shell/timeout=240 run_tests.sh
34
35if [ "${TESTSRC}" = "" ]
36then
37  echo "TESTSRC not set.  Test cannot execute.  Failed."
38  exit 1
39fi
40
41. ${TESTSRC}/CommonSetup.sh
42
43
44# Simple tests
45
46echo "Creating jar files for simple tests..."
47
48cd ${TESTCLASSES}
49
50"$JAR" ${TESTTOOLVMOPTS} -cfm Agent.jar "${TESTSRC}"/manifest.mf Agent.class
51"$JAR" ${TESTTOOLVMOPTS} -cf  AgentSupport.jar AgentSupport.class
52"$JAR" ${TESTTOOLVMOPTS} -cf  BootSupport.jar BootSupport.class
53"$JAR" ${TESTTOOLVMOPTS} -cf  SimpleTests.jar BasicTest.class PrematureLoadTest.class
54
55failures=0
56
57go() {
58    echo ''
59    sh -xc "$JAVA ${TESTVMOPTS} -javaagent:Agent.jar -classpath SimpleTests.jar  $1 $2 $3" 2>&1
60    if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
61}
62
63go BasicTest
64go PrematureLoadTest
65
66# Functional tests
67
68echo ''
69echo "Setup for functional tests..."
70
71# Create org.tools.Tracer in temp directory so that it's not seen on the
72# system class path
73
74mkdir tmp
75"${JAVAC}" ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d tmp "${TESTSRC}"/Tracer.java
76(cd tmp; "${JAR}" ${TESTTOOLVMOPTS} cf ../Tracer.jar org/tools/Tracer.class)
77
78# InstrumentedApplication is Application+instrmentation - don't copy as
79# we don't want the original file permission
80
81cat "${TESTSRC}"/InstrumentedApplication.java > ./Application.java
82"${JAVAC}" ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -classpath Tracer.jar -d . Application.java
83mv Application.class InstrumentedApplication.bytes
84
85cp "${TESTSRC}"/Application.java .
86"${JAVAC}" ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d . Application.java
87
88sh -xc "$JAVA ${TESTVMOPTS} -classpath . -javaagent:Agent.jar DynamicTest" 2>&1
89if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
90
91# Repeat test with security manager
92sh -xc "$JAVA ${TESTVMOPTS} -classpath . -javaagent:Agent.jar -Djava.security.manager DynamicTest" 2>&1
93if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
94
95#
96# Results
97#
98echo ''
99if [ $failures -gt 0 ];
100  then echo "$failures test(s) failed";
101  else echo "All test(s) passed"; fi
102exit $failures
103