test/gc/6941923/test6941923.sh

Fri, 11 May 2012 17:24:32 +0100

author
kevinw
date
Fri, 11 May 2012 17:24:32 +0100
changeset 3777
037973617842
parent 2964
2a241e764894
child 3985
6acee021f5ac
permissions
-rw-r--r--

7157734: hotspot test scripts not testing 64-bit JVM under JPRT/JTREG.
Reviewed-by: kvn

minqi@2964 1 ##
minqi@2964 2 ## @test @(#)test6941923.sh
minqi@2964 3 ## @bug 6941923
minqi@2964 4 ## @summary test new added flags for gc log rotation
minqi@2964 5 ## @author yqi
minqi@2964 6 ## @run shell test6941923.sh
minqi@2964 7 ##
minqi@2964 8
minqi@2964 9 ## skip on windows
minqi@2964 10 OS=`uname -s`
minqi@2964 11 case "$OS" in
minqi@2964 12 SunOS | Linux )
minqi@2964 13 NULL=/dev/null
minqi@2964 14 PS=":"
minqi@2964 15 FS="/"
minqi@2964 16 ;;
minqi@2964 17 Windows_* )
minqi@2964 18 echo "Test skipped for Windows"
minqi@2964 19 exit 0
minqi@2964 20 ;;
minqi@2964 21 * )
minqi@2964 22 echo "Unrecognized system!"
minqi@2964 23 exit 1;
minqi@2964 24 ;;
minqi@2964 25 esac
minqi@2964 26
minqi@2964 27 if [ "${JAVA_HOME}" = "" ]
minqi@2964 28 then
minqi@2964 29 echo "JAVA_HOME not set"
minqi@2964 30 exit 0
minqi@2964 31 fi
minqi@2964 32
kevinw@3777 33 $JAVA_HOME/bin/java ${TESTVMOPTS} -version > $NULL 2>&1
minqi@2964 34
minqi@2964 35 if [ $? != 0 ]; then
minqi@2964 36 echo "Wrong JAVA_HOME? JAVA_HOME: $JAVA_HOME"
minqi@2964 37 exit $?
minqi@2964 38 fi
minqi@2964 39
minqi@2964 40 # create a small test case
minqi@2964 41 testname="Test"
minqi@2964 42 if [ -e ${testname}.java ]; then
minqi@2964 43 rm -rf ${testname}.*
minqi@2964 44 fi
minqi@2964 45
minqi@2964 46 cat >> ${testname}.java << __EOF__
minqi@2964 47 import java.util.Vector;
minqi@2964 48
minqi@2964 49 public class Test implements Runnable
minqi@2964 50 {
minqi@2964 51 private boolean _should_stop = false;
minqi@2964 52
minqi@2964 53 public static void main(String[] args) throws Exception {
minqi@2964 54
minqi@2964 55 long limit = Long.parseLong(args[0]) * 60L * 1000L; // minutes
minqi@2964 56 Test t = new Test();
minqi@2964 57 t.set_stop(false);
minqi@2964 58 Thread thr = new Thread(t);
minqi@2964 59 thr.start();
minqi@2964 60
minqi@2964 61 long time1 = System.currentTimeMillis();
minqi@2964 62 long time2 = System.currentTimeMillis();
minqi@2964 63 while (time2 - time1 < limit) {
minqi@2964 64 try {
minqi@2964 65 Thread.sleep(2000); // 2 seconds
minqi@2964 66 }
minqi@2964 67 catch(Exception e) {}
minqi@2964 68 time2 = System.currentTimeMillis();
minqi@2964 69 System.out.print("\r... " + (time2 - time1)/1000 + " seconds");
minqi@2964 70 }
minqi@2964 71 System.out.println();
minqi@2964 72 t.set_stop(true);
minqi@2964 73 }
minqi@2964 74 public void set_stop(boolean value) { _should_stop = value; }
minqi@2964 75 public void run() {
minqi@2964 76 int cap = 20000;
minqi@2964 77 int fix_size = 2048;
minqi@2964 78 int loop = 0;
minqi@2964 79 Vector< byte[] > v = new Vector< byte[] >(cap);
minqi@2964 80 while(!_should_stop) {
minqi@2964 81 byte[] g = new byte[fix_size];
minqi@2964 82 v.add(g);
minqi@2964 83 loop++;
minqi@2964 84 if (loop > cap) {
minqi@2964 85 v = null;
minqi@2964 86 cap *= 2;
minqi@2964 87 if (cap > 80000) cap = 80000;
minqi@2964 88 v = new Vector< byte[] >(cap);
minqi@2964 89 }
minqi@2964 90 }
minqi@2964 91 }
minqi@2964 92 }
minqi@2964 93 __EOF__
minqi@2964 94
minqi@2964 95 msgsuccess="succeeded"
minqi@2964 96 msgfail="failed"
minqi@2964 97 gclogsize="16K"
minqi@2964 98 filesize=$((16*1024))
minqi@2964 99 $JAVA_HOME/bin/javac ${testname}.java > $NULL 2>&1
minqi@2964 100
minqi@2964 101 if [ $? != 0 ]; then
minqi@2964 102 echo "$JAVA_HOME/bin/javac ${testname}.java $fail"
minqi@2964 103 exit -1
minqi@2964 104 fi
minqi@2964 105
minqi@2964 106 # test for 2 minutes, it will complete circulation of gc log rotation
minqi@2964 107 tts=2
minqi@2964 108 logfile="test.log"
minqi@2964 109 hotspotlog="hotspot.log"
minqi@2964 110
minqi@2964 111 if [ -e $logfile ]; then
minqi@2964 112 rm -rf $logfile
minqi@2964 113 fi
minqi@2964 114
minqi@2964 115 #also delete $hotspotlog if it exists
minqi@2964 116 if [ -f $hotspotlog ]; then
minqi@2964 117 rm -rf $hotspotlog
minqi@2964 118 fi
minqi@2964 119
minqi@2964 120 options="-Xloggc:$logfile -XX:+UseConcMarkSweepGC -XX:+PrintGC -XX:+PrintGCDetails -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=$gclogsize"
minqi@2964 121 echo "Test gc log rotation in same file, wait for $tts minutes ...."
kevinw@3777 122 $JAVA_HOME/bin/java ${TESTVMOPTS} $options $testname $tts
minqi@2964 123 if [ $? != 0 ]; then
minqi@2964 124 echo "$msgfail"
minqi@2964 125 exit -1
minqi@2964 126 fi
minqi@2964 127
minqi@2964 128 # rotation file will be $logfile.0
minqi@2964 129 if [ -f $logfile.0 ]; then
minqi@2964 130 outfilesize=`ls -l $logfile.0 | awk '{print $5 }'`
minqi@2964 131 if [ $((outfilesize)) -ge $((filesize)) ]; then
minqi@2964 132 echo $msgsuccess
minqi@2964 133 else
minqi@2964 134 echo $msgfail
minqi@2964 135 fi
minqi@2964 136 else
minqi@2964 137 echo $msgfail
minqi@2964 138 exit -1
minqi@2964 139 fi
minqi@2964 140
minqi@2964 141 # delete log file
minqi@2964 142 rm -rf $logfile.0
minqi@2964 143 if [ -f $hotspotlog ]; then
minqi@2964 144 rm -rf $hotspotlog
minqi@2964 145 fi
minqi@2964 146
minqi@2964 147 #multiple log files
minqi@2964 148 numoffiles=3
minqi@2964 149 options="-Xloggc:$logfile -XX:+UseConcMarkSweepGC -XX:+PrintGC -XX:+PrintGCDetails -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=$numoffiles -XX:GCLogFileSize=$gclogsize"
minqi@2964 150 echo "Test gc log rotation in $numoffiles files, wait for $tts minutes ...."
kevinw@3777 151 $JAVA_HOME/bin/java ${TESTVMOPTS} $options $testname $tts
minqi@2964 152 if [ $? != 0 ]; then
minqi@2964 153 echo "$msgfail"
minqi@2964 154 exit -1
minqi@2964 155 fi
minqi@2964 156
minqi@2964 157 atleast=0 # at least size of numoffile-1 files >= $gclogsize
minqi@2964 158 tk=0
minqi@2964 159 while [ $(($tk)) -lt $(($numoffiles)) ]
minqi@2964 160 do
minqi@2964 161 if [ -f $logfile.$tk ]; then
minqi@2964 162 outfilesize=`ls -l $logfile.$tk | awk '{ print $5 }'`
minqi@2964 163 if [ $(($outfilesize)) -ge $(($filesize)) ]; then
minqi@2964 164 atleast=$((atleast+1))
minqi@2964 165 fi
minqi@2964 166 fi
minqi@2964 167 tk=$((tk+1))
minqi@2964 168 done
minqi@2964 169
minqi@2964 170 rm -rf $logfile.*
minqi@2964 171 rm -rf $testname.*
minqi@2964 172 rm -rf $hotspotlog
minqi@2964 173
minqi@2964 174 if [ $(($atleast)) -ge $(($numoffiles-1)) ]; then
minqi@2964 175 echo $msgsuccess
minqi@2964 176 else
minqi@2964 177 echo $msgfail
minqi@2964 178 exit -1
minqi@2964 179 fi

mercurial