diff options
author | Artem Kotsiuba <artem.kotsiuba@linaro.org> | 2021-09-30 14:02:43 +0100 |
---|---|---|
committer | Artem Kotsiuba <artem.kotsiuba@linaro.org> | 2021-10-01 12:09:24 +0100 |
commit | 80cb9f3c4c340157dbbb3db2130a40dfeeb8ec02 (patch) | |
tree | 3bb3e738143d3aa1afefe08d2b3a5e0d2f5a12aa | |
parent | 5ae99b12367cf83279bf110f0bb1d9601059fe0f (diff) | |
download | art-external-benchmarks-80cb9f3c4c340157dbbb3db2130a40dfeeb8ec02.tar.gz |
Refactor DaCapo benchmark wrappers
This change consists of two parts:
1. Adds ability to uninstall DaCapo using -u option
2. Changes the way DaCapo is installed to rename and move
BaseBench class to a separate directory to make sure that
it is not recognized as runnable benchmark.
Test: ./setup_dacapo.sh -d ~/linaro_aosp/
./scripts/benchmarks/benchmarks_run_target.sh --iterations 1
./setup_dacapo.sh -u -d ~/linaro_aosp/
Change-Id: Ifec7fe626b2a53a0ff601f7982a9c2dd7d9adb6e
Change-Id: I63ce179d8ec82a06eedb69eef844a29cd400c129
-rw-r--r-- | dacapo/framework/dacapo/BenchBase.java (renamed from dacapo/wrappers/dacapo/base/BaseBench.java) | 10 | ||||
-rwxr-xr-x | dacapo/setup_dacapo.sh | 68 | ||||
-rw-r--r-- | dacapo/wrappers/dacapo/avrora/AvroraBench.java | 4 | ||||
-rw-r--r-- | dacapo/wrappers/dacapo/h2/H2Bench.java | 4 | ||||
-rw-r--r-- | dacapo/wrappers/dacapo/xalan/XalanBench.java | 4 |
5 files changed, 65 insertions, 25 deletions
diff --git a/dacapo/wrappers/dacapo/base/BaseBench.java b/dacapo/framework/dacapo/BenchBase.java index 728efd3..b35ac46 100644 --- a/dacapo/wrappers/dacapo/base/BaseBench.java +++ b/dacapo/framework/dacapo/BenchBase.java @@ -15,25 +15,25 @@ * */ -package benchmarks.dacapo.base; +package benchmarks.dacapo; -import java.io.InputStream; import java.io.File; import java.io.FileInputStream; -import java.lang.reflect.Type; +import java.io.InputStream; import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; import org.dacapo.harness.Benchmark; import org.dacapo.harness.Callback; import org.dacapo.harness.CommandLineArgs; import org.dacapo.parser.Config; -public class BaseBench<T extends Benchmark> { +public class BenchBase<T extends Benchmark> { private T bench; private CommandLineArgs args; private Callback callback; - public BaseBench(String configFileName, String sizeArg) { + public BenchBase(String configFileName, String sizeArg) { try { InputStream stream = new FileInputStream(new File("resources/dacapo/cnf/"+configFileName)); Config config = Config.parse(stream); diff --git a/dacapo/setup_dacapo.sh b/dacapo/setup_dacapo.sh index ac94e60..8bb8db1 100755 --- a/dacapo/setup_dacapo.sh +++ b/dacapo/setup_dacapo.sh @@ -62,18 +62,50 @@ a provided destination directory. Options: -h Show this help message. - -d A path to the directory where to put all needed files. + -d Path to the AOSP tree root. + -u Uninstall only. " +# Remove existing DaCapo files +remove_existing() { + if [[ -d ${RUNNERS_DIR} ]]; then + info "Removing runners" + safe rm -r ${RUNNERS_DIR} + fi + if [[ -d ${FRAMEWORK_DIR} ]]; then + info "Removing framework code" + safe rm -r ${FRAMEWORK_DIR} + fi + if [[ -f ${LIB_DIR}/dacapo.jar ]]; then + info "Removing dacapo.jar" + safe rm ${LIB_DIR}/dacapo.jar + fi + if [[ -d ${DACAPO_RESOURCES_DIR} ]]; then + info "Removing resources" + safe rm -rf ${DACAPO_RESOURCES_DIR} + fi +} + +setup_dacapo_variables() { + readonly RUNNERS_DIR=${DEST_DIR}/benchmarks/benchmarks/dacapo + readonly FRAMEWORK_DIR=${DEST_DIR}/benchmarks/framework/benchmarks/dacapo + readonly DACAPO_RESOURCES_DIR=${DEST_DIR}/benchmarks/benchmarks/resources/dacapo + readonly LIB_DIR=${DEST_DIR}/benchmarks/benchmarks/lib +} + main() { - while getopts ":hd:" option; do + local UNINSTALL_ONLY=false + + while getopts ":hd:u" option; do if [[ ${OPTARG} == -* ]]; then exit_with_error "Option -${option} requires an argument." >&2 fi case "${option}" in h) info "${usage}"; exit ;; - d) DEST_DIR=${OPTARG} + d) DEST_DIR=${OPTARG}; + setup_dacapo_variables ;; + u) UNINSTALL_ONLY=true ;; \?) error "Illegal option: -${OPTARG}" >&2 error "${usage}" @@ -107,9 +139,26 @@ main() { cd $(dirname "$0") - # copy wrappers + + # uninstall DaCapo if it is already installed + info "Removing existing DaCapo files if possible" + remove_existing + if [[ ${UNINSTALL_ONLY} = true ]]; then + exit + fi + + # copy runners code info "Copying wrappers" - safe cp -r wrappers/dacapo ${DEST_DIR}/benchmarks/benchmarks + if [[ ! -d ${RUNNERS_DIR} ]]; then + safe mkdir -p ${RUNNERS_DIR} + fi + safe cp -r wrappers/dacapo/. ${RUNNERS_DIR} + + #copy framework code + if [[ ! -d ${FRAMEWORK_DIR} ]]; then + safe mkdir -p ${FRAMEWORK_DIR} + fi + safe cp -r framework/dacapo/. ${FRAMEWORK_DIR} # build DaCapo if [[ -d dacapo_src ]]; then @@ -149,20 +198,11 @@ main() { safe zip -d dacapo.jar /jar/derby.jar /jar/derbyclient.jar /jar/derbynet.jar /jar/derbytools.jar info "Copying dacapo.jar..." - local -r LIB_DIR=${DEST_DIR}/benchmarks/benchmarks/lib if [[ ! -d ${LIB_DIR} ]]; then safe mkdir -p ${LIB_DIR} - else - if [[ -f ${LIB_DIR}/dacapo.jar ]]; then - safe rm ${LIB_DIR}/dacapo.jar - fi fi safe cp dacapo.jar ${LIB_DIR}/ - local -r DACAPO_RESOURCES_DIR=${DEST_DIR}/benchmarks/benchmarks/resources/dacapo - if [[ -d ${DACAPO_RESOURCES_DIR} ]]; then - safe rm -rf ${DACAPO_RESOURCES_DIR} - fi safe mkdir -p ${DACAPO_RESOURCES_DIR}/dat safe mkdir -p ${DACAPO_RESOURCES_DIR}/cnf diff --git a/dacapo/wrappers/dacapo/avrora/AvroraBench.java b/dacapo/wrappers/dacapo/avrora/AvroraBench.java index 0f4ba23..8555d6b 100644 --- a/dacapo/wrappers/dacapo/avrora/AvroraBench.java +++ b/dacapo/wrappers/dacapo/avrora/AvroraBench.java @@ -17,10 +17,10 @@ package benchmarks.dacapo.avrora; -import benchmarks.dacapo.base.BaseBench; +import benchmarks.dacapo.BenchBase; import org.dacapo.harness.Avrora; -public final class AvroraBench extends BaseBench<Avrora> { +public final class AvroraBench extends BenchBase<Avrora> { public AvroraBench() { super("avrora.cnf", "default"); } diff --git a/dacapo/wrappers/dacapo/h2/H2Bench.java b/dacapo/wrappers/dacapo/h2/H2Bench.java index 6e150da..1e78610 100644 --- a/dacapo/wrappers/dacapo/h2/H2Bench.java +++ b/dacapo/wrappers/dacapo/h2/H2Bench.java @@ -17,10 +17,10 @@ package benchmarks.dacapo.h2; -import benchmarks.dacapo.base.BaseBench; +import benchmarks.dacapo.BenchBase; import org.dacapo.harness.H2; -public final class H2Bench extends BaseBench<H2> { +public final class H2Bench extends BenchBase<H2> { public H2Bench() { super("h2.cnf", "small"); } diff --git a/dacapo/wrappers/dacapo/xalan/XalanBench.java b/dacapo/wrappers/dacapo/xalan/XalanBench.java index d8bcfea..d3033bf 100644 --- a/dacapo/wrappers/dacapo/xalan/XalanBench.java +++ b/dacapo/wrappers/dacapo/xalan/XalanBench.java @@ -17,10 +17,10 @@ package benchmarks.dacapo.xalan; -import benchmarks.dacapo.base.BaseBench; +import benchmarks.dacapo.BenchBase; import org.dacapo.harness.Xalan; -public final class XalanBench extends BaseBench<Xalan> { +public final class XalanBench extends BenchBase<Xalan> { public XalanBench() { super("xalan.cnf", "default"); } |