aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtem Kotsiuba <artem.kotsiuba@linaro.org>2021-09-30 14:02:43 +0100
committerArtem Kotsiuba <artem.kotsiuba@linaro.org>2021-10-01 12:09:24 +0100
commit80cb9f3c4c340157dbbb3db2130a40dfeeb8ec02 (patch)
tree3bb3e738143d3aa1afefe08d2b3a5e0d2f5a12aa
parent5ae99b12367cf83279bf110f0bb1d9601059fe0f (diff)
downloadart-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-xdacapo/setup_dacapo.sh68
-rw-r--r--dacapo/wrappers/dacapo/avrora/AvroraBench.java4
-rw-r--r--dacapo/wrappers/dacapo/h2/H2Bench.java4
-rw-r--r--dacapo/wrappers/dacapo/xalan/XalanBench.java4
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");
}