--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/runtime/7158988/TestFieldMonitor.sh Thu Apr 05 12:17:52 2012 -0400
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+if [ "${TESTSRC}" = "" ]
+then TESTSRC=.
+fi
+
+if [ "${TESTJAVA}" = "" ]
+then
+ PARENT=`dirname \`which java\``
+ TESTJAVA=`dirname ${PARENT}`
+ echo "TESTJAVA not set, selecting " ${TESTJAVA}
+ echo "If this is incorrect, try setting the variable manually."
+fi
+
+if [ "${TESTCLASSES}" = "" ]
+then
+ echo "TESTCLASSES not set. Test cannot execute. Failed."
+ exit 1
+fi
+
+BIT_FLAG=""
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+ SunOS | Linux )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+ ## for solaris, linux it's HOME
+ FILE_LOCATION=$HOME
+ if [ -f ${FILE_LOCATION}${FS}JDK64BIT -a ${OS} = "SunOS" -a `uname -p`='sparc' ]
+ then
+ BIT_FLAG="-d64"
+ fi
+ ;;
+ Windows_95 | Windows_98 | Windows_ME )
+ NULL=NUL
+ PS=";"
+ FS="\\"
+ echo "Test skipped, only for WinNT"
+ exit 0
+ ;;
+ Windows_NT )
+ NULL=NUL
+ PS=";"
+ FS="\\"
+ ;;
+ * )
+ echo "Unrecognized system!"
+ exit 1;
+ ;;
+esac
+
+#CLASSPATH=.${PS}${TESTCLASSES} ; export CLASSPATH
+
+cp ${TESTSRC}${FS}*.java .
+
+${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} -fullversion
+
+${TESTJAVA}${FS}bin${FS}javac -classpath .${PS}$TESTJAVA${FS}lib${FS}tools.jar *.java
+
+${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} -classpath .${PS}$TESTJAVA${FS}lib${FS}tools.jar FieldMonitor > test.out 2>&1 &
+
+P_PID=$!
+
+sleep 60
+STATUS=0
+
+case "$OS" in
+ SunOS | Linux )
+ ps -ef | grep $P_PID | grep -v grep > ${NULL}
+ if [ $? = 0 ]; then
+ kill -9 $P_PID
+ STATUS=1
+ fi
+ ;;
+ * )
+ ps | grep -i "FieldMonitor" | grep -v grep > ${NULL}
+ if [ $? = 0 ]; then
+ C_PID=`ps | grep -i "FieldMonitor" | awk '{print $1}'`
+ kill -s 9 $C_PID
+ STATUS=1
+ fi
+ ;;
+esac
+
+grep "A fatal error has been detected" test.out > ${NULL}
+if [ $? = 0 ]; then
+ cat test.out
+ STATUS=1
+fi
+
+exit $STATUS