host-run-test-jar revision 0dff3f4d41ce8308d1973f317463941abbf79b81
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# 6# Options: 7# --quiet -- don't chatter 8# --debug -- wait for debugger to attach 9# --interpreter -- enable interpreter only mode (off by default) 10# --no-verify -- turn off verification (on by default) 11# --no-optimize -- turn off optimization (on by default) 12 13msg() { 14 if [ "$QUIET" = "n" ]; then 15 echo "$@" 16 fi 17} 18 19DEBUG="n" 20GDB="n" 21INTERPRETER="n" 22VERIFY="y" 23OPTIMIZE="y" 24INVOKE_WITH="" 25DEV_MODE="n" 26QUIET="n" 27OATEXEC="oatexecd" 28 29while true; do 30 if [ "x$1" = "x--quiet" ]; then 31 QUIET="y" 32 shift 33 elif [ "x$1" = "x-O" ]; then 34 OATEXEC="oatexec" 35 shift 36 elif [ "x$1" = "x--debug" ]; then 37 DEBUG="y" 38 shift 39 elif [ "x$1" = "x--gdb" ]; then 40 GDB="y" 41 shift 42 elif [ "x$1" = "x--invoke-with" ]; then 43 shift 44 INVOKE_WITH="$1" 45 shift 46 elif [ "x$1" = "x--dev" ]; then 47 DEV_MODE="y" 48 shift 49 elif [ "x$1" = "x--interpreter" ]; then 50 INTERPRETER="y" 51 shift 52 elif [ "x$1" = "x--no-verify" ]; then 53 VERIFY="n" 54 shift 55 elif [ "x$1" = "x--no-optimize" ]; then 56 OPTIMIZE="n" 57 shift 58 elif [ "x$1" = "x--" ]; then 59 shift 60 break 61 elif expr "x$1" : "x--" >/dev/null 2>&1; then 62 echo "unknown $0 option: $1" 1>&2 63 exit 1 64 else 65 break 66 fi 67done 68 69msg "------------------------------" 70 71mkdir $DEX_LOCATION/art-cache 72[[ $? -ne 0 ]] && exit 73 74export ANDROID_PRINTF_LOG=brief 75if [ "$DEV_MODE" = "y" ]; then 76 export ANDROID_LOG_TAGS='*:d' 77else 78 export ANDROID_LOG_TAGS='*:s' 79fi 80export ANDROID_DATA="$DEX_LOCATION" 81export ANDROID_ROOT="${ANDROID_HOST_OUT}" 82export LD_LIBRARY_PATH="${ANDROID_ROOT}/lib" 83export DYLD_LIBRARY_PATH="${ANDROID_ROOT}/lib" 84unset ANDROID_PRODUCT_OUT # avoid defaulting dex2oat --host-prefix to target output 85 86exe="${ANDROID_ROOT}/bin/${OATEXEC}" 87 88if [ "$DEBUG" = "y" ]; then 89 PORT=8000 90 msg "Waiting for jdb to connect:" 91 msg " jdb -attach localhost:$PORT" 92 DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,address=$PORT,server=y,suspend=y" 93fi 94 95if [ "$GDB" = "y" ]; then 96 gdb=gdb 97 gdbargs="--args $exe" 98fi 99 100if [ "$INTERPRETER" = "y" ]; then 101 INT_OPTS="-Xint" 102fi 103 104JNI_OPTS="-Xjnigreflimit:512 -Xcheck:jni" 105 106cd $ANDROID_BUILD_TOP 107$INVOKE_WITH $gdb $exe $gdbargs -Ximage:$ANDROID_ROOT/framework/core.art \ 108 $JNI_OPTS $INT_OPTS $DEBUG_OPTS \ 109 -cp $DEX_LOCATION/$TEST_NAME.jar Main "$@" 110