host-run-test-jar revision fa42b4410d49134a8e63dc2196be4013d286f2d6
1#!/bin/sh 2# 3# Run the code in test.jar using the host-mode virtual machine. The jar should 4# contain a top-level class named Main to run. 5 6msg() { 7 if [ "$QUIET" = "n" ]; then 8 echo "$@" 9 fi 10} 11 12LIB="libartd.so" 13DEBUGGER="n" 14GDB="n" 15INTERPRETER="n" 16VERIFY="y" 17OPTIMIZE="y" 18INVOKE_WITH="" 19DEV_MODE="n" 20QUIET="n" 21 22while true; do 23 if [ "x$1" = "x--quiet" ]; then 24 QUIET="y" 25 shift 26 elif [ "x$1" = "x-lib" ]; then 27 shift 28 LIB="$1" 29 elif [ "x$1" = "x-O" ]; then 30 LIB="libart.so" 31 shift 32 elif [ "x$1" = "x--debug" ]; then 33 DEBUGGER="y" 34 shift 35 elif [ "x$1" = "x--gdb" ]; then 36 GDB="y" 37 DEV_MODE="y" 38 shift 39 elif [ "x$1" = "x--invoke-with" ]; then 40 shift 41 if [ "x$INVOKE_WITH" = "x" ]; then 42 INVOKE_WITH="$1" 43 else 44 INVOKE_WITH="$INVOKE_WITH $1" 45 fi 46 shift 47 elif [ "x$1" = "x--dev" ]; then 48 DEV_MODE="y" 49 shift 50 elif [ "x$1" = "x--interpreter" ]; then 51 INTERPRETER="y" 52 shift 53 elif [ "x$1" = "x--no-verify" ]; then 54 VERIFY="n" 55 shift 56 elif [ "x$1" = "x--no-optimize" ]; then 57 OPTIMIZE="n" 58 shift 59 elif [ "x$1" = "x--" ]; then 60 shift 61 break 62 elif expr "x$1" : "x--" >/dev/null 2>&1; then 63 echo "unknown $0 option: $1" 1>&2 64 exit 1 65 else 66 break 67 fi 68done 69 70msg "------------------------------" 71 72mkdir $DEX_LOCATION/dalvik-cache 73[[ $? -ne 0 ]] && exit 74 75export ANDROID_PRINTF_LOG=brief 76if [ "$DEV_MODE" = "y" ]; then 77 export ANDROID_LOG_TAGS='*:d' 78else 79 export ANDROID_LOG_TAGS='*:s' 80fi 81export ANDROID_DATA="$DEX_LOCATION" 82export ANDROID_ROOT="${ANDROID_HOST_OUT}" 83export LD_LIBRARY_PATH="${ANDROID_ROOT}/lib" 84export DYLD_LIBRARY_PATH="${ANDROID_ROOT}/lib" 85unset ANDROID_PRODUCT_OUT # avoid defaulting dex2oat --host-prefix to target output 86 87exe="${ANDROID_ROOT}/bin/dalvikvm" 88 89if [ "$DEBUGGER" = "y" ]; then 90 PORT=8000 91 msg "Waiting for jdb to connect:" 92 msg " jdb -attach localhost:$PORT" 93 DEBUGGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=$PORT,server=y,suspend=y" 94fi 95 96if [ "$GDB" = "y" ]; then 97 gdb=gdb 98 gdbargs="--args $exe" 99 # Enable for Emacs "M-x gdb" support. TODO: allow extra gdb arguments on command line. 100 # gdbargs="--annotate=3 $gdbargs" 101fi 102 103if [ "$INTERPRETER" = "y" ]; then 104 INT_OPTS="-Xint" 105fi 106 107JNI_OPTS="-Xjnigreflimit:512 -Xcheck:jni" 108 109cd $ANDROID_BUILD_TOP 110$INVOKE_WITH $gdb $exe $gdbargs -XXlib:$LIB -Ximage:$ANDROID_ROOT/framework/core.art \ 111 $JNI_OPTS $INT_OPTS $DEBUGGER_OPTS \ 112 -cp $DEX_LOCATION/$TEST_NAME.jar Main "$@" 113