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