diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2014-10-06 12:23:04 +0100 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2014-10-06 20:59:59 +0100 |
commit | 1a58b7f6f14a5ed9355e8e447cae25fb41467f09 (patch) | |
tree | 548de1d7fd8594a9ee4a37a34fee98718d5400c1 /test/etc/push-and-run-test-jar | |
parent | 17b1c174dddb1d83018740c2084ab42daa812fff (diff) | |
download | art-1a58b7f6f14a5ed9355e8e447cae25fb41467f09.zip art-1a58b7f6f14a5ed9355e8e447cae25fb41467f09.tar.gz art-1a58b7f6f14a5ed9355e8e447cae25fb41467f09.tar.bz2 |
Merge host-run-test-jar and push-and-run-test-jar.
- Too many code duplication between the two files.
- Also fix --zygote and --gdb invocations.
Change-Id: I1f99320e63a7a0f19ad1ad2b12693901b8c6bb43
Diffstat (limited to 'test/etc/push-and-run-test-jar')
-rwxr-xr-x | test/etc/push-and-run-test-jar | 262 |
1 files changed, 0 insertions, 262 deletions
diff --git a/test/etc/push-and-run-test-jar b/test/etc/push-and-run-test-jar deleted file mode 100755 index d3ad71f..0000000 --- a/test/etc/push-and-run-test-jar +++ /dev/null @@ -1,262 +0,0 @@ -#!/bin/sh -# -# Run the code in test.jar on the device. The jar should contain a top-level -# class named Main to run. - -msg() { - if [ "$QUIET" = "n" ]; then - echo "$@" - fi -} - -ARCHITECTURES_32="(arm|x86|mips|none)" -ARCHITECTURES_64="(arm64|x86_64|none)" -ARCHITECTURES_PATTERN="${ARCHITECTURES_32}" -RELOCATE="y" -GDB="n" -DEBUGGER="n" -INTERPRETER="n" -VERIFY="y" -OPTIMIZE="y" -ZYGOTE="" -QUIET="n" -DEV_MODE="n" -INVOKE_WITH="" -FLAGS="" -TARGET_SUFFIX="32" -GDB_TARGET_SUFFIX="" -COMPILE_FLAGS="" -FALSE_BIN="/system/bin/false" -PATCHOAT="" -DEX2OAT="" -HAVE_IMAGE="y" -PREBUILD="y" - -while true; do - if [ "x$1" = "x--quiet" ]; then - QUIET="y" - shift - elif [ "x$1" = "x--lib" ]; then - shift - if [ "x$1" = "x" ]; then - echo "$0 missing argument to --lib" 1>&2 - exit 1 - fi - LIB="$1" - shift - elif [ "x$1" = "x-Xcompiler-option" ]; then - shift - option="$1" - FLAGS="${FLAGS} -Xcompiler-option $option" - COMPILE_FLAGS="${COMPILE_FLAGS} $option" - shift - elif [ "x$1" = "x--runtime-option" ]; then - shift - option="$1" - FLAGS="${FLAGS} $option" - shift - elif [ "x$1" = "x--boot" ]; then - shift - BOOT_OPT="$1" - BUILD_BOOT_OPT="--boot-image=${1#-Ximage:}" - shift - elif [ "x$1" = "x--no-dex2oat" ]; then - DEX2OAT="-Xcompiler:${FALSE_BIN}" - shift - elif [ "x$1" = "x--no-patchoat" ]; then - PATCHOAT="-Xpatchoat:${FALSE_BIN}" - shift - elif [ "x$1" = "x--relocate" ]; then - RELOCATE="y" - shift - elif [ "x$1" = "x--no-relocate" ]; then - RELOCATE="n" - shift - elif [ "x$1" = "x--prebuild" ]; then - PREBUILD="y" - shift - elif [ "x$1" = "x--no-prebuild" ]; then - PREBUILD="n" - shift - elif [ "x$1" = "x--no-image" ]; then - HAVE_IMAGE="n" - shift - elif [ "x$1" = "x--debug" ]; then - DEBUGGER="y" - shift - elif [ "x$1" = "x--gdb" ]; then - GDB="y" - DEV_MODE="y" - shift - elif [ "x$1" = "x--zygote" ]; then - ZYGOTE="--zygote" - msg "Spawning from zygote" - shift - elif [ "x$1" = "x--dev" ]; then - DEV_MODE="y" - shift - elif [ "x$1" = "x--interpreter" ]; then - INTERPRETER="y" - shift - elif [ "x$1" = "x--invoke-with" ]; then - shift - if [ "x$1" = "x" ]; then - echo "$0 missing argument to --invoke-with" 1>&2 - exit 1 - fi - if [ "x$INVOKE_WITH" = "x" ]; then - INVOKE_WITH="$1" - else - INVOKE_WITH="$INVOKE_WITH $1" - fi - shift - elif [ "x$1" = "x--no-verify" ]; then - VERIFY="n" - shift - elif [ "x$1" = "x--no-optimize" ]; then - OPTIMIZE="n" - shift - elif [ "x$1" = "x--" ]; then - shift - break - elif [ "x$1" = "x--64" ]; then - TARGET_SUFFIX="64" - GDB_TARGET_SUFFIX="64" - ARCHITECTURES_PATTERN="${ARCHITECTURES_64}" - shift - elif expr "x$1" : "x--" >/dev/null 2>&1; then - echo "unknown $0 option: $1" 1>&2 - exit 1 - else - break - fi -done - -if [ "$ZYGOTE" = "" ]; then - if [ "$OPTIMIZE" = "y" ]; then - if [ "$VERIFY" = "y" ]; then - DEX_OPTIMIZE="-Xdexopt:verified" - else - DEX_OPTIMIZE="-Xdexopt:all" - fi - msg "Performing optimizations" - else - DEX_OPTIMIZE="-Xdexopt:none" - msg "Skipping optimizations" - fi - - if [ "$VERIFY" = "y" ]; then - DEX_VERIFY="" - msg "Performing verification" - else - DEX_VERIFY="-Xverify:none" - msg "Skipping verification" - fi -fi - -msg "------------------------------" - -if [ "$HAVE_IMAGE" = "n" ]; then - BOOT_OPT="-Ximage:/system/non-existant/core.art" -fi - -ARCH=$(adb shell ls -F /data/dalvik-cache | grep -Ewo "${ARCHITECTURES_PATTERN}") -if [ x"$ARCH" = "x" ]; then - echo "Unable to determine architecture" - exit 1 -fi - -if [ "$QUIET" = "n" ]; then - adb shell rm -r $DEX_LOCATION - adb shell mkdir -p $DEX_LOCATION - adb push $TEST_NAME.jar $DEX_LOCATION - adb push $TEST_NAME-ex.jar $DEX_LOCATION -else - adb shell rm -r $DEX_LOCATION >/dev/null 2>&1 - adb shell mkdir -p $DEX_LOCATION >/dev/null 2>&1 - adb push $TEST_NAME.jar $DEX_LOCATION >/dev/null 2>&1 - adb push $TEST_NAME-ex.jar $DEX_LOCATION >/dev/null 2>&1 -fi - -if [ "$DEBUGGER" = "y" ]; then - # Use this instead for ddms and connect by running 'ddms': - # DEBUGGER_OPTS="-agentlib:jdwp=transport=dt_android_adb,server=y,suspend=y" - # TODO: add a separate --ddms option? - - PORT=12345 - msg "Waiting for jdb to connect:" - msg " adb forward tcp:$PORT tcp:$PORT" - msg " jdb -attach localhost:$PORT" - DEBUGGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=$PORT,server=y,suspend=y" -fi - -if [ "$GDB" = "y" ]; then - gdb="gdbserver$GDB_TARGET_SUFFIX :5039" - gdbargs="$exe" -fi - -if [ "$INTERPRETER" = "y" ]; then - INT_OPTS="-Xint" - COMPILE_FLAGS="${COMPILE_FLAGS} --compiler-filter=interpret-only" -fi - -JNI_OPTS="-Xjnigreflimit:512 -Xcheck:jni" - -if [ "$RELOCATE" = "y" ]; then - RELOCATE_OPT="-Xrelocate" - BUILD_RELOCATE_OPT="--runtime-arg -Xnorelocate" - COMPILE_FLAGS="${COMPILE_FLAGS} --include-patch-information" - FLAGS="${FLAGS} -Xcompiler-option --include-patch-information" -else - RELOCATE_OPT="-Xnorelocate" - BUILD_RELOCATE_OPT="--runtime-arg -Xnorelocate" -fi - -# Create a script with the command. The command can get longer than the longest -# allowed adb command and there is no way to get the exit status from a adb shell -# command. -cmdline="cd $DEX_LOCATION && \ - export ANDROID_DATA=$DEX_LOCATION && \ - export DEX_LOCATION=$DEX_LOCATION && " -if [ "$PREBUILD" = "y" ]; then - cmdline+="mkdir -p $DEX_LOCATION/dalvik-cache/$ARCH/ && \ - $INVOKE_WITH /system/bin/dex2oatd \ - $COMPILE_FLAGS \ - $BUILD_BOOT_OPT \ - $BUILD_RELOCATE_OPT \ - --runtime-arg -classpath --runtime-arg $DEX_LOCATION/$TEST_NAME.jar \ - --dex-file=$DEX_LOCATION/$TEST_NAME.jar \ - --oat-file=$DEX_LOCATION/dalvik-cache/$ARCH/$(echo $DEX_LOCATION/$TEST_NAME.jar/classes.dex | cut -d/ -f 2- | sed "s:/:@:g") \ - --instruction-set=$ARCH && " -fi - -cmdline+="$INVOKE_WITH $gdb /system/bin/dalvikvm$TARGET_SUFFIX \ - $FLAGS \ - $gdbargs \ - -XXlib:$LIB \ - $PATCHOAT \ - $DEX2OAT \ - $ZYGOTE \ - $JNI_OPTS \ - $RELOCATE_OPT \ - $INT_OPTS \ - $DEBUGGER_OPTS \ - $BOOT_OPT \ - -cp $DEX_LOCATION/$TEST_NAME.jar Main" - -cmdfile=$(tempfile -p "cmd-" -s "-$TEST_NAME") -echo "$cmdline" > $cmdfile - -if [ "$DEV_MODE" = "y" ]; then - echo $cmdline -fi - -if [ "$QUIET" = "n" ]; then - adb push $cmdfile $DEX_LOCATION/cmdline.sh -else - adb push $cmdfile $DEX_LOCATION/cmdline.sh > /dev/null 2>&1 -fi - -adb shell sh $DEX_LOCATION/cmdline.sh - -rm -f $cmdfile |