diff options
Diffstat (limited to 'openembedded/scripts')
-rwxr-xr-x | openembedded/scripts/jtreg-test | 72 |
1 files changed, 59 insertions, 13 deletions
diff --git a/openembedded/scripts/jtreg-test b/openembedded/scripts/jtreg-test index b3b601f..1d62ee6 100755 --- a/openembedded/scripts/jtreg-test +++ b/openembedded/scripts/jtreg-test @@ -1,6 +1,6 @@ #!/bin/bash -# JTREG jdk test harness. +# JTREG LAVA test harness. # # Copyright (C) 2013, Linaro Limited. # @@ -42,28 +42,74 @@ fi set -x +uniq_pathname() { + local name=$1 + name=${name#$to/} + name=${name////-} + echo $to/$name +} + test_dir=$1 test_to_run=$2 t=/tmp/jtreg/$test_to_run.$$ rm -rf $t mkdir -p $t -d=$t/testoutput/$test_to_run -pl=$d/passlist.txt -fl=$d/faillist.txt -archive_bundle=$d/ARCHIVE_BUNDLE.zip +to=$t/testoutput + +# Accommodate differences between jdk tests and hotspot tests. +# +# The hotspot tests need to be invoked with TESTDIRS set and they also +# put the output one directory deeper and the output content (and +# location) is different to the jdk tests. +# +if [ -n "$TESTDIRS" ]; then + lava-test-case $test_to_run \ + --shell \ + make -C $test_dir PRODUCT_HOME=$PRODUCT_HOME JTREG=$JTREG JT_HOME=$JT_HOME ALT_OUTPUTDIR=$t TESTDIRS=$TESTDIRS + + exit_code=$? + to=`ls -1d $t/*/testoutput` + zip --quiet -d $to/ARCHIVE_BUNDLE.zip 'JTwork/classes/*' + mv $to/ARCHIVE_BUNDLE.zip $to/${test_to_run}-ARCHIVE_BUNDLE.zip + lava-test-case-attach $test_to_run $to/${test_to_run}-ARCHIVE_BUNDLE.zip + shopt -s nullglob + for i in $to/JTwork/scratch/hs*.log; do + lava-test-case-attach $test_to_run $i + done +else + lava-test-case $test_to_run \ + --shell \ + make -C $test_dir PRODUCT_HOME=$PRODUCT_HOME JTREG=$JTREG JT_HOME=$JT_HOME ALT_OUTPUTDIR=$t $test_to_run + + exit_code=$? + + shopt -s nullglob -lava-test-case $test_to_run \ - --shell \ - make -C $test_dir PRODUCT_HOME=$PRODUCT_HOME JTREG=$JTREG ALT_OUTPUTDIR=$t $test_to_run + for i in $to/${test_to_run}*/*.txt; do + name=$(uniq_pathname $i) + cp $i $name + if [ -s $name ]; then + lava-test-case-attach $test_to_run $name + fi + done -exit_code=$? + for i in $to/${test_to_run}*/JTwork/scratch/hs*.log; do + lava-test-case-attach $test_to_run $i + done -[ -e $pl ] && lava-test-case-attach $test_to_run $pl -[ -e $fl ] && lava-test-case-attach $test_to_run $fl + for i in $to/${test_to_run}*/ARCHIVE_BUNDLE.zip; do + zip --quiet -d $i 'JTwork/classes/*' + name=$(uniq_pathname $i) + cp $i $name + if [ -s $name ]; then + lava-test-case-attach $test_to_run $name + fi + done -if [ $exit_code -ne 0 ]; then - [ -e $archive_bundle ] && lava-test-case-attach $test_to_run $archive_bundle + for i in $to/${test_to_run}*/Stats.txt; do + cat $i + done fi rm -rf $t |