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