OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / dalvik / tests / etc / push-and-run-test-jar
1 #!/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
8 #   --fast        -- use the fast interpreter (the default)
9 #   --jit         -- use the jit
10 #   --portable    -- use the portable interpreter
11 #   --debug       -- wait for debugger to attach
12 #   --zygote      -- use the zygote (if so, all other options are ignored)
13 #   --dev         -- development mode
14 #   --no-verify   -- turn off verification (on by default)
15 #   --no-optimize -- turn off optimization (on by default)
16 #   --no-precise  -- turn off precise GC (on by default)
17
18 msg() {
19     if [ "$QUIET" = "n" ]; then
20         echo "$@"
21     fi
22 }
23
24 INTERP=""
25 DEBUG="n"
26 VERIFY="y"
27 OPTIMIZE="y"
28 ZYGOTE="n"
29 QUIET="n"
30 PRECISE="y"
31
32 while true; do
33     if [ "x$1" = "x--quiet" ]; then
34         QUIET="y"
35         shift
36     elif [ "x$1" = "x--fast" ]; then
37         INTERP="fast"
38         msg "Using fast interpreter"
39         shift
40     elif [ "x$1" = "x--jit" ]; then
41         INTERP="jit"
42         msg "Using jit"
43         shift
44     elif [ "x$1" = "x--portable" ]; then
45         INTERP="portable"
46         msg "Using portable interpreter"
47         shift
48     elif [ "x$1" = "x--debug" ]; then
49         DEBUG="y"
50         shift
51     elif [ "x$1" = "x--zygote" ]; then
52         ZYGOTE="y"
53         msg "Spawning from zygote"
54         shift
55     elif [ "x$1" = "x--dev" ]; then
56         # not used; ignore
57         shift
58     elif [ "x$1" = "x--no-verify" ]; then
59         VERIFY="n"
60         shift
61     elif [ "x$1" = "x--no-optimize" ]; then
62         OPTIMIZE="n"
63         shift
64     elif [ "x$1" = "x--no-precise" ]; then
65         PRECISE="n"
66         shift
67     elif [ "x$1" = "x--" ]; then
68         shift
69         break
70     elif expr "x$1" : "x--" >/dev/null 2>&1; then
71         echo "unknown option: $1" 1>&2
72         exit 1
73     else
74         break
75     fi
76 done
77
78 if [ "$ZYGOTE" = "n" ]; then
79     if [ "x$INTERP" = "x" ]; then
80         INTERP="fast"
81         msg "Using fast interpreter by default"
82     fi
83
84     if [ "$OPTIMIZE" = "y" ]; then
85         if [ "$VERIFY" = "y" ]; then
86             DEX_OPTIMIZE="-Xdexopt:verified"
87         else
88             DEX_OPTIMIZE="-Xdexopt:all"
89         fi
90         msg "Performing optimizations"
91     else
92         DEX_OPTIMIZE="-Xdexopt:none"
93         msg "Skipping optimizations"
94     fi
95
96     if [ "$VERIFY" = "y" ]; then
97         DEX_VERIFY=""
98         msg "Performing verification"
99     else
100         DEX_VERIFY="-Xverify:none"
101         msg "Skipping verification"
102     fi
103 fi
104
105 msg "------------------------------"
106
107 if [ "$QUIET" = "n" ]; then
108     adb push test.jar /data
109     adb push test-ex.jar /data
110 else
111     adb push test.jar /data >/dev/null 2>&1
112     adb push test-ex.jar /data >/dev/null 2>&1
113 fi
114
115 if [ "$DEBUG" = "y" ]; then
116     DEX_DEBUG="-agentlib:jdwp=transport=dt_android_adb,server=y,suspend=y"
117 fi
118
119 if [ "$PRECISE" = "y" ]; then
120     GC_OPTS="-Xgc:precise -Xgenregmap"
121 else
122     GC_OPTS="-Xgc:noprecise"
123 fi
124
125 if [ "$ZYGOTE" = "y" ]; then
126     adb shell cd /data \; dvz -classpath test.jar Main "$@"
127 else
128     adb shell cd /data \; dalvikvm $DEX_VERIFY $DEX_OPTIMIZE $DEX_DEBUG \
129         $GC_OPTS -cp test.jar "-Xint:${INTERP}" -ea Main "$@"
130 fi