changeset 224:1397192f0dc9

Bug 3354: [TEST]Modify test runners for testing in a similar way Reviewed-by: yasuenag https://github.com/HeapStats/heapstats/pull/89
author KUBOTA Yuji <kubota.yuji@lab.ntt.co.jp>
date Tue, 11 Apr 2017 11:12:20 +0900
parents 2412c90533d0
children 5abb11559f3b
files ChangeLog agent/test/mbean/test.sh agent/test/mbean/testcase.sh agent/test/oome/testcase.sh agent/test/snapshot/testcase.sh
diffstat 5 files changed, 100 insertions(+), 61 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Apr 11 08:08:45 2017 +0900
+++ b/ChangeLog	Tue Apr 11 11:12:20 2017 +0900
@@ -1,6 +1,7 @@
 2017-04-10 KUBOTA Yuji <kubota.yuji@lab.ntt.co.jp>
 
 	* Bug 3353: [TEST]Add a test runner for deadlock and thread-recording
+	* Bug 3354: [TEST]Modify test runners for testing in a similar way
 
 2017-03-25 KUBOTA Yuji <kubota.yuji@lab.ntt.co.jp>
 
--- a/agent/test/mbean/test.sh	Tue Apr 11 08:08:45 2017 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-#!/bin/sh
-
-#: ${JAVA_HOME?"Need to set JAVA_HOME"}
-if [[ -z "$JAVA_HOME" ]]; then
-  JAVA_HOME=/usr/lib/jvm/java
-fi
-
-CURRENT_DIR=`pwd`
-AGENT_HOME=$CURRENT_DIR/../../
-CLASSPATH=""
-
-if [[ -x "$JAVA_HOME/bin/java" ]] && [[ -e "$JAVA_HOME/lib/tools.jar" ]]; then
-  # This testcase supports JDK8 or later
-  version=$(export LANG=C;"$JAVA_HOME/bin/java" -version 2>&1 | awk -F '"' '/version/ {print $2}')
-  if [[ "$version" > "1.8" ]]; then
-    CLASSPATH=$JAVA_HOME/lib/tools.jar:$AGENT_HOME/../mbean/java/target/heapstats-mbean.jar:.
-  fi
-fi
-if [[ -z "$CLASSPATH" ]]; then
-  echo "Install JDK8 or later, and set JAVA_HOME."
-  exit -1
-fi
-
-# Compile testcase
-$JAVA_HOME/bin/javac -classpath $CLASSPATH HeapStatsJMXClient.java JMXTest.java
-
-# Run JMX server
-$JAVA_HOME/bin/java -classpath $CLASSPATH \
-                    -Djava.library.path=$AGENT_HOME/../mbean/native \
-                    -agentpath:$AGENT_HOME/src/libheapstats-2.0.so.3 \
-                    -Dcom.sun.management.jmxremote=true JMXTest &
-TARGET_PID=$!
-
-echo 'Sleep 5sec...'
-sleep 5
-
-# Run JMX client
-$JAVA_HOME/bin/java -classpath $CLASSPATH HeapStatsJMXClient $TARGET_PID
-
-# Kill JMX server
-kill $TARGET_PID
-
-# Check output
-md5sum heapstats_log.csv received-log.csv
-md5sum test.dat received-snapshot.dat
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/agent/test/mbean/testcase.sh	Tue Apr 11 11:12:20 2017 +0900
@@ -0,0 +1,63 @@
+#!/bin/sh
+set -e
+
+pushd $(dirname $0) > /dev/null
+
+if [[ $1 == "--clean" ]]; then
+  rm -rf *class heapstats_analyze*zip *log.csv *.dat
+  exit
+fi
+
+JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-openjdk}
+CLASSPATH=""
+
+if [[ -z "$HEAPSTATS_LIB" ]]; then
+  HEAPSTATS_OPT="-agentpath:/usr/lib64/heapstats/libheapstats.so"
+  MBEAN_JAR=/usr/lib64/heapstats/heapstats-mbean.jar
+  MBEAN_LIB=/usr/lib64/heapstats
+else
+  HEAPSTATS_OPT="-agentpath:${HEAPSTATS_LIB}"
+  MBEAN_JAR=${HEAPSTATS_LIB%/agent*}/mbean/java/target/heapstats-mbean.jar
+  MBEAN_LIB=${HEAPSTATS_LIB%/agent*}/mbean/native
+fi
+
+if [ ! -e $MBEAN_LIB ]; then
+  echo "Build/Install heapstats-mbean first."
+  exit -1
+fi
+
+if [[ -x "${JAVA_HOME}/bin/java" ]] && [[ -e "$JAVA_HOME/lib/tools.jar" ]]; then
+  # This testcase supports JDK8 or later
+  version=$(export LANG=C;"$JAVA_HOME/bin/java" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+  if [[ "$version" > "1.8" ]]; then
+    CLASSPATH=$JAVA_HOME/lib/tools.jar:$MBEAN_JAR:.
+  else
+    echo "Install JDK8 or later, and set JAVA_HOME correctly."
+    exit -1
+  fi
+fi
+
+# Compile testcase
+$JAVA_HOME/bin/javac -classpath $CLASSPATH HeapStatsJMXClient.java JMXTest.java
+
+# Run JMX server
+$JAVA_HOME/bin/java -classpath $CLASSPATH \
+                    -Djava.library.path=$MBEAN_LIB \
+                    ${HEAPSTATS_OPT} \
+                    -Dcom.sun.management.jmxremote=true JMXTest &
+TARGET_PID=$!
+
+echo 'Sleep 5sec...'
+sleep 5
+
+# Run JMX client
+$JAVA_HOME/bin/java -classpath $CLASSPATH HeapStatsJMXClient $TARGET_PID
+
+# Kill JMX server
+kill $TARGET_PID
+
+# Check output
+md5sum heapstats_log.csv received-log.csv
+md5sum test.dat received-snapshot.dat
+
+popd > /dev/null
--- a/agent/test/oome/testcase.sh	Tue Apr 11 08:08:45 2017 +0900
+++ b/agent/test/oome/testcase.sh	Tue Apr 11 11:12:20 2017 +0900
@@ -1,4 +1,7 @@
 #!/bin/bash
+set -e
+
+pushd $(dirname $0) >/dev/null
 
 ### Usage
 ###   - Without Valgrind
@@ -9,24 +12,31 @@
 ###             JAVA_OPTS="<Java options (-X, -XX, ...)" \
 ###                    ./testcase.sh /path/to/heapstats
 
+if [[ $1 == "--clean" ]]; then
+  rm -rf *class heapstats_log.csv heapstats_snapshot.dat heapstats_analyze*zip
+  exit
+fi
+
 TARGET_HEAPSTATS=$1
 
-if [ "x$TARGET_HEAPSTATS" = "x" ]; then
-  echo "You must set HeapStats agent that you want to check."
-  exit 1
+if [ ! -z "$TARGET_HEAPSTATS" ]; then
+  HEAPSTATS_OPT="-agentpath:${TARGET_HEAPSTATS}=./heapstats.conf"
+else
+  HEAPSTATS_OPT="-agentpath:${HEAPSTATS_LIB:-/usr/lib64/heapstats/libheapstats.so}=./heastats.conf"
 fi
 
-if [ "x$JAVA_HOME" = "x" ]; then
-  JAVA_HOME=/usr/lib/jvm/java-openjdk
-fi
+${JAVA_HOME:=/usr/lib/jvm/java-openjdk/}/bin/javac OOME.java
 
-EXEC_COMMAND="$JAVA_HOME/bin/java -Xmx500m $JAVA_OPTS"
+EXEC_COMMAND="${JAVA_HOME}/bin/java -Xmx500m $JAVA_OPTS"
 
 if [ -n "$VALGRIND_OPTION" ]; then
   EXEC_COMMAND="valgrind $VALGRIND_OPTION $EXEC_COMMAND"
 fi
 
-EXEC_COMMAND="$EXEC_COMMAND -agentpath:$TARGET_HEAPSTATS"
+EXEC_COMMAND="$EXEC_COMMAND $HEAPSTATS_OPT"
+
+# This testcase calls errors by OOME
+set +e
 
 # Check1: Parallel
 echo "Check1-1: Parallel"
@@ -60,3 +70,4 @@
 echo "Check4-4: G1 (+ExplicitGC -UseCOOP)"
 $EXEC_COMMAND -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:-UseCompressedOops OOME
 
+popd >/dev/null
--- a/agent/test/snapshot/testcase.sh	Tue Apr 11 08:08:45 2017 +0900
+++ b/agent/test/snapshot/testcase.sh	Tue Apr 11 11:12:20 2017 +0900
@@ -1,4 +1,6 @@
 #!/bin/bash
+set -e
+pushd $(dirname $0) >/dev/null
 
 ### Usage
 ###   - Without Valgrind
@@ -9,16 +11,20 @@
 ###             JAVA_OPTS="<Java options (-X, -XX, ...)" \
 ###                    ./testcase.sh /path/to/heapstats
 
+if [[ $1 == "--clean" ]]; then
+  rm -rf *class heapstats_log.csv heapstats_snapshot.dat heapstats_analyze*zip
+  exit
+fi
+
 TARGET_HEAPSTATS=$1
 
-if [ "x$TARGET_HEAPSTATS" = "x" ]; then
-  echo "You must set HeapStats agent that you want to check."
-  exit 1
+if [ ! -z "$TARGET_HEAPSTATS" ]; then
+  HEAPSTATS_OPT="-agentpath:${TARGET_HEAPSTATS}"
+else
+  HEAPSTATS_OPT="-agentpath:${HEAPSTATS_LIB:-/usr/lib64/heapstats/libheapstats.so}"
 fi
 
-if [ "x$JAVA_HOME" = "x" ]; then
-  JAVA_HOME=/usr/lib/jvm/java-openjdk
-fi
+${JAVA_HOME:=/usr/lib/jvm/java-openjdk/}/bin/javac Simple.java
 
 EXEC_COMMAND="$JAVA_HOME/bin/java $JAVA_OPTS"
 
@@ -26,7 +32,10 @@
   EXEC_COMMAND="valgrind $VALGRIND_OPTION $EXEC_COMMAND"
 fi
 
-EXEC_COMMAND="$EXEC_COMMAND -agentpath:$TARGET_HEAPSTATS"
+EXEC_COMMAND="$EXEC_COMMAND ${HEAPSTATS_OPT}"
+
+# This testcase calls errors by OOME
+set +e
 
 # Check1: Parallel
 echo "Check1-1: Parallel"
@@ -60,3 +69,4 @@
 echo "Check4-4: G1 (+ExplicitGC -UseCOOP)"
 $EXEC_COMMAND -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:-UseCompressedOops Simple
 
+popd >/dev/null