hotspot/agent/test/jdi/sasanity.sh
changeset 1 489c9b5090e2
child 5547 f4b087cbb361
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/agent/test/jdi/sasanity.sh	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,79 @@
+#!/bin/ksh
+#
+# Copyright 2003 Sun Microsystems, Inc.  All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#  
+#
+
+# This script is used to run sanity check on vmStructs.
+# Each SA class is checked against a given VM. "PASSED" is 
+# printed if vmStructs are consistent. Else, "FAILED" is
+# printed and an exception stack trace follows.
+
+usage() {
+    echo "usage: ./sasanity.sh <jdk>"
+    echo "<jdk> is the 1.5 j2se directory against which you want to run sanity check"
+    exit 1   
+}
+
+if [ "$1" == "" ]; then
+    usage
+fi
+
+if [ "$1" == "-help" ]; then
+    usage
+fi
+
+jdk=$1
+OS=`uname`
+
+if [ "$OS" != "Linux" ]; then
+   OPTIONS="-Dsun.jvm.hotspot.debugger.useProcDebugger"
+fi
+
+javacp=$jdk/lib/sa-jdi.jar:./workdir
+
+mkdir -p workdir
+if [ SASanityChecker.java -nt ./workdir/SASanityChecker.class ] ; then
+    $jdk/bin/javac -d ./workdir -classpath $javacp SASanityChecker.java
+    if [ $? != 0 ] ; then
+        exit 1
+    fi
+fi
+
+if [ sagtarg.java -nt ./workdir/sagtarg.class ]; then
+    $jdk/bin/javac -g  -classpath -d $workdir sagtarg.java
+    if [ $? != 0 ] ; then
+        exit 1
+    fi
+fi
+
+tmp=/tmp/sagsetup
+rm -f $tmp
+$jdk/bin/java sagtarg > $tmp &
+pid=$!
+while [ ! -s $tmp ] ; do
+  # Kludge alert!
+  sleep 2
+done
+
+$jdk/bin/java -showversion ${OPTIONS} -classpath $javacp SASanityChecker $pid
+kill -9 $pid