Provide an option to run run-tests with a local dalvikvm.
Instead of overwriting /system, use a temporary directory
to push the binaries and libraries, and use them for
running the tests.
Change-Id: I45fa2ac51f836686d8e8676907eb26629f7ab2ab
diff --git a/test/etc/run-test-jar b/test/etc/run-test-jar
index eec8930..bf79006 100755
--- a/test/etc/run-test-jar
+++ b/test/etc/run-test-jar
@@ -8,9 +8,11 @@
fi
}
+ANDROID_ROOT="/system"
ARCHITECTURES_32="(arm|x86|mips|none)"
ARCHITECTURES_64="(arm64|x86_64|none)"
ARCHITECTURES_PATTERN="${ARCHITECTURES_32}"
+BOOT_IMAGE=""
COMPILE_FLAGS=""
DALVIKVM="dalvikvm32"
DEBUGGER="n"
@@ -26,6 +28,8 @@
INTERPRETER="n"
INVOKE_WITH=""
ISA=x86
+LIBRARY_DIRECTORY="lib"
+MAIN=""
OPTIMIZE="y"
PATCHOAT=""
PREBUILD="y"
@@ -35,7 +39,6 @@
USE_JVM="n"
VERIFY="y"
ZYGOTE=""
-MAIN=""
while true; do
if [ "x$1" = "x--quiet" ]; then
@@ -62,8 +65,7 @@
shift
elif [ "x$1" = "x--boot" ]; then
shift
- DALVIKVM_BOOT_OPT="$1"
- DEX2OAT_BOOT_OPT="--boot-image=${1#-Ximage:}"
+ BOOT_IMAGE="$1"
shift
elif [ "x$1" = "x--no-dex2oat" ]; then
DEX2OAT="-Xcompiler:${FALSE_BIN}"
@@ -127,6 +129,10 @@
elif [ "x$1" = "x--no-optimize" ]; then
OPTIMIZE="n"
shift
+ elif [ "x$1" = "x--android-root" ]; then
+ shift
+ ANDROID_ROOT="$1"
+ shift
elif [ "x$1" = "x--" ]; then
shift
break
@@ -134,6 +140,7 @@
ISA="x86_64"
GDB_SERVER="gdbserver64"
DALVIKVM="dalvikvm64"
+ LIBRARY_DIRECTORY="lib64"
ARCHITECTURES_PATTERN="${ARCHITECTURES_64}"
shift
elif [ "x$1" = "x--pic-test" ]; then
@@ -201,7 +208,11 @@
if [ "$HAVE_IMAGE" = "n" ]; then
- BOOT_OPT="-Ximage:/system/non-existant/core.art"
+ DALVIKVM_BOOT_OPT="-Ximage:/system/non-existant/core.art"
+ DEX2OAT_BOOT_OPT="--boot-image=/system/non-existant/core.art"
+else
+ DALVIKVM_BOOT_OPT="-Ximage:${BOOT_IMAGE}"
+ DEX2OAT_BOOT_OPT="--boot-image=${BOOT_IMAGE}"
fi
@@ -258,7 +269,7 @@
mkdir_cmdline="mkdir -p ${DEX_LOCATION}/dalvik-cache/$ISA"
if [ "$PREBUILD" = "y" ]; then
- dex2oat_cmdline="$INVOKE_WITH dex2oatd \
+ dex2oat_cmdline="$INVOKE_WITH $ANDROID_ROOT/bin/dex2oatd \
$COMPILE_FLAGS \
$DEX2OAT_BOOT_OPT \
--dex-file=$DEX_LOCATION/$TEST_NAME.jar \
@@ -266,7 +277,7 @@
--instruction-set=$ISA"
fi
-dalvikvm_cmdline="$INVOKE_WITH $GDB $DALVIKVM \
+dalvikvm_cmdline="$INVOKE_WITH $GDB $ANDROID_ROOT/bin/$DALVIKVM \
$GDB_ARGS \
$FLAGS \
-XXlib:$LIB \
@@ -301,6 +312,8 @@
cmdline="cd $DEX_LOCATION && \
export ANDROID_DATA=$DEX_LOCATION && \
export DEX_LOCATION=$DEX_LOCATION && \
+ export ANDROID_ROOT=$ANDROID_ROOT && \
+ export LD_LIBRARY_PATH=$ANDROID_ROOT/$LIBRARY_DIRECTORY && \
$mkdir_cmdline && \
$dex2oat_cmdline && \
$dalvikvm_cmdline"