blob: c1d9250bdb0d004290507e5901bdb082a1119797 [file] [log] [blame]
jeffhao5d1ac922011-09-29 17:41:15 -07001#!/bin/sh
2#
3# Run the code in test.jar on the device. The jar should contain a top-level
4# class named Main to run.
5#
6# Options:
7# --quiet -- don't chatter
jeffhao5d1ac922011-09-29 17:41:15 -07008# --debug -- wait for debugger to attach
9# --zygote -- use the zygote (if so, all other options are ignored)
10# --dev -- development mode (print the vm invocation cmdline)
11# --no-verify -- turn off verification (on by default)
12# --no-optimize -- turn off optimization (on by default)
13# --no-precise -- turn off precise GC (on by default)
14
15msg() {
16 if [ "$QUIET" = "n" ]; then
17 echo "$@"
18 fi
19}
20
jeffhao5d1ac922011-09-29 17:41:15 -070021DEBUG="n"
22VERIFY="y"
23OPTIMIZE="y"
24ZYGOTE="n"
25QUIET="n"
26PRECISE="y"
27DEV_MODE="n"
28
29while true; do
30 if [ "x$1" = "x--quiet" ]; then
31 QUIET="y"
32 shift
jeffhao5d1ac922011-09-29 17:41:15 -070033 elif [ "x$1" = "x--debug" ]; then
34 DEBUG="y"
35 shift
36 elif [ "x$1" = "x--zygote" ]; then
37 ZYGOTE="y"
38 msg "Spawning from zygote"
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--no-precise" ]; then
50 PRECISE="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 option: $1" 1>&2
57 exit 1
58 else
59 break
60 fi
61done
62
63if [ "$ZYGOTE" = "n" ]; then
jeffhao5d1ac922011-09-29 17:41:15 -070064 if [ "$OPTIMIZE" = "y" ]; then
65 if [ "$VERIFY" = "y" ]; then
66 DEX_OPTIMIZE="-Xdexopt:verified"
67 else
68 DEX_OPTIMIZE="-Xdexopt:all"
69 fi
70 msg "Performing optimizations"
71 else
72 DEX_OPTIMIZE="-Xdexopt:none"
73 msg "Skipping optimizations"
74 fi
75
76 if [ "$VERIFY" = "y" ]; then
77 DEX_VERIFY=""
78 msg "Performing verification"
79 else
80 DEX_VERIFY="-Xverify:none"
81 msg "Skipping verification"
82 fi
83fi
84
85msg "------------------------------"
86
87if [ "$QUIET" = "n" ]; then
Brian Carlstrom47a0d5a2011-10-12 21:20:05 -070088 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar /system/framework
89 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.oat /data/art-test
90 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.art /data/art-test
91 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar /data/art-test
92 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.oat /data/art-test
93 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.art /data/art-test
jeffhao5d1ac922011-09-29 17:41:15 -070094else
Brian Carlstrom47a0d5a2011-10-12 21:20:05 -070095 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar /data/art-test >/dev/null 2>&1
96 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.oat /data/art-test >/dev/null 2>&1
97 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.art /data/art-test >/dev/null 2>&1
98 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar /data/art-test >/dev/null 2>&1
99 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.oat /data/art-test >/dev/null 2>&1
100 adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.art /data/art-test >/dev/null 2>&1
jeffhao5d1ac922011-09-29 17:41:15 -0700101fi
102
103if [ "$DEBUG" = "y" ]; then
104 DEX_DEBUG="-agentlib:jdwp=transport=dt_android_adb,server=y,suspend=y"
105fi
106
107if [ "$PRECISE" = "y" ]; then
108 GC_OPTS="-Xgc:precise -Xgenregmap"
109else
110 GC_OPTS="-Xgc:noprecise"
111fi
112
113if [ "$ZYGOTE" = "y" ]; then
Elliott Hughes8cbc8bc2011-10-04 11:19:45 -0700114 adb shell cd /data \; dvz -classpath $TEST_NAME.jar Main "$@"
jeffhao5d1ac922011-09-29 17:41:15 -0700115else
Elliott Hughes8cbc8bc2011-10-04 11:19:45 -0700116 cmdline="cd /data; oatexecd \
Brian Carlstrom47a0d5a2011-10-12 21:20:05 -0700117 -Ximage:/data/art-test/core.art \
118 -cp /data/art-test/$TEST_NAME.jar \
Elliott Hughes8cbc8bc2011-10-04 11:19:45 -0700119 Main"
120 #cmdline="cd /data; dalvikvm $DEX_VERIFY $DEX_OPTIMIZE $DEX_DEBUG \
121 # $GC_OPTS -cp test.jar -Xint:${INTERP} -ea Main"
122 if [ "$DEV_MODE" = "y" ]; then
123 echo $cmdline "$@"
124 fi
jeffhao795d78f2011-09-30 18:34:35 -0700125
Elliott Hughes8cbc8bc2011-10-04 11:19:45 -0700126 adb shell $cmdline "$@"
jeffhao5d1ac922011-09-29 17:41:15 -0700127fi