Mercurial > hg > release > heapstats-2.1
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