host-run-test-jar revision e7fb2a6ebc660c4b60b7a51db927abae100e5bcb
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# --no-verify -- turn off verification (on by default) 10# --no-optimize -- turn off optimization (on by default) 11 12msg() { 13 if [ "$QUIET" = "n" ]; then 14 echo "$@" 15 fi 16} 17 18DEBUG="n" 19GDB="n" 20VERIFY="y" 21OPTIMIZE="y" 22INVOKE_WITH="" 23DEV_MODE="n" 24QUIET="n" 25 26while true; do 27 if [ "x$1" = "x--quiet" ]; then 28 QUIET="y" 29 shift 30 elif [ "x$1" = "x--debug" ]; then 31 DEBUG="y" 32 shift 33 elif [ "x$1" = "x--gdb" ]; then 34 GDB="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--no-verify" ]; then 44 VERIFY="n" 45 shift 46 elif [ "x$1" = "x--no-optimize" ]; then 47 OPTIMIZE="n" 48 shift 49 elif [ "x$1" = "x--" ]; then 50 shift 51 break 52 elif expr "x$1" : "x--" >/dev/null 2>&1; then 53 echo "unknown $0 option: $1" 1>&2 54 exit 1 55 else 56 break 57 fi 58done 59 60msg "------------------------------" 61 62DATA_DIR=/tmp 63DEBUG_OPTS="-Xcheck:jni" 64 65if [ ! -d $DATA_DIR/art-cache ]; then 66 mkdir -p $DATA_DIR/art-cache 67 [[ $? -ne 0 ]] && exit 68fi 69 70export ANDROID_PRINTF_LOG=brief 71if [ "$DEV_MODE" = "y" ]; then 72 export ANDROID_LOG_TAGS='*:d' 73else 74 export ANDROID_LOG_TAGS='*:s' 75fi 76export ANDROID_DATA="$DATA_DIR" 77export ANDROID_ROOT="${ANDROID_HOST_OUT}" 78export LD_LIBRARY_PATH="${ANDROID_ROOT}/lib" 79export DYLD_LIBRARY_PATH="${ANDROID_ROOT}/lib" 80 81exe="${ANDROID_ROOT}/bin/oatexecd" 82 83if [ "$DEBUG" = "y" ]; then 84 PORT=8000 85 msg "Waiting for debugger to connect on localhost:$PORT" 86 # This is for jdb: 87 DEX_DEBUG="-agentlib:jdwp=transport=dt_socket,address=$PORT,server=y,suspend=y" 88 # Connect thus: 89 # jdb -attach localhost:12345 90fi 91 92if [ "$GDB" = "y" ]; then 93 gdb=gdb 94 gdbargs="--args $exe" 95fi 96 97cd $ANDROID_BUILD_TOP 98$INVOKE_WITH $gdb $exe $gdbargs -Ximage:$ANDROID_ROOT/framework/core.art \ 99 $DEBUG_OPTS $DEX_DEBUG -verbose:log-to=$DEX_LOCATION/log.txt\ 100 -cp $DEX_LOCATION/$TEST_NAME.jar Main "$@" 101