OSDN Git Service

Changes for mtp8996
[android-x86/system-extras.git] / tests / workloads / recentfling.sh
1 #
2 # Script to start a set of apps, switch to recents and fling it back and forth.
3 # For each iteration, Total frames and janky frames are reported.
4 #
5 # Options are described below.
6 #
7 # Works for volantis, shamu, and hammerhead. Can be pushed and executed on
8 # the device.
9 #
10 iterations=10
11 startapps=1
12 capturesystrace=0
13
14 function processLocalOption {
15         ret=0
16         case "$1" in
17         (-N) startapps=0;;
18         (-A) unset appList;;
19         (-L) appList=$2; shift; ret=1;;
20         (-T) capturesystrace=1;;
21         (-B) echo $$ > /dev/cpuset/background/tasks;;
22         (*)
23                 echo "$0: unrecognized option: $1"
24                 echo; echo "Usage: $0 [options]"
25                 echo "-A : use all known applications"
26                 echo "-B : run in background cpuset"
27                 echo "-L applist : list of applications"
28                 echo "   default: $appList"
29                 echo "-N : no app startups, just fling"
30                 echo "-g : generate activity strings"
31                 echo "-i iterations"
32                 echo "-T : capture systrace on each iteration"
33                 exit 1;;
34         esac
35         return $ret
36 }
37
38 CMDDIR=$(dirname $0 2>/dev/null)
39 CMDDIR=${CMDDIR:=.}
40 . $CMDDIR/defs.sh
41
42 case $DEVICE in
43 (shamu|hammerhead)
44         flingtime=300
45         downCount=2
46         upCount=6
47         UP="70 400 70 100 $flingtime"
48         DOWN="70 100 70 400 $flingtime";;
49 (angler|ariel|mtp8996)
50         flingtime=150
51         downCount=4
52         upCount=3
53         UP="500 1200 500 550 $flingtime"
54         DOWN="500 550 500 1200 $flingtime";;
55 (bullhead)
56         flingtime=200
57         downCount=5
58         upCount=5
59         UP="500 1200 500 550 $flingtime"
60         DOWN="500 550 500 1200 $flingtime";;
61 (volantis)
62         flingtime=400
63         downCount=5
64         upCount=6
65         UP="70 400 70 70 $flingtime"
66         DOWN="70 70 70 400 $flingtime";;
67 (*)
68         echo "Error: No display information available for $DEVICE"
69         exit 1;;
70 esac
71
72 doKeyevent HOME
73 if [ $startapps -gt 0 ]; then
74
75         # start a bunch of apps
76         for app in $appList
77         do
78                 echo Starting $app ...
79                 t=$(startActivity $app)
80         done
81 fi
82
83 function swipe {
84         count=0
85         while [ $count -lt $2 ]
86         do
87                 doSwipe $1
88                 ((count=count+1))
89         done
90 }
91
92 cur=1
93 frameSum=0
94 jankSum=0
95 latency90Sum=0
96 latency95Sum=0
97 latency99Sum=0
98
99 echo Fling recents...
100 doKeyevent HOME
101 sleep 0.5
102 resetJankyFrames
103
104 while [ $cur -le $iterations ]
105 do
106         if [ $capturesystrace -gt 0 ]; then
107                 ${ADB}atrace --async_start -z -c -b 16000 freq gfx view idle sched
108         fi
109         doKeyevent APP_SWITCH
110         sleep 0.5
111         swipe "$DOWN" $downCount
112         sleep 1
113         swipe "$UP" $upCount
114         sleep 1
115         swipe "$DOWN" $downCount
116         sleep 1
117         swipe "$UP" $upCount
118         sleep 1
119         if [ $capturesystrace -gt 0 ]; then
120                 ${ADB}atrace --async_dump -z -c -b 16000 freq gfx view idle sched > trace.${cur}.out
121         fi
122         doKeyevent HOME
123         sleep 0.5
124
125         set -- $(getJankyFrames)
126         totalDiff=$1
127         jankyDiff=$2
128         latency90=$3
129         latency95=$4
130         latency99=$5
131         if [ ${totalDiff:=0} -eq 0 ]; then
132                 echo Error: could not read frame info with \"dumpsys gfxinfo\"
133         fi
134
135         ((frameSum=frameSum+totalDiff))
136         ((jankSum=jankSum+jankyDiff))
137         ((latency90Sum=latency90Sum+latency90))
138         ((latency95Sum=latency95Sum+latency95))
139         ((latency99Sum=latency99Sum+latency99))
140         if [ "$totalDiff" -eq 0 ]; then
141                 echo Error: no frames detected. Is the display off?
142         fi
143         ((jankPct=jankyDiff*100/totalDiff))
144         resetJankyFrames
145
146         echo Frames: $totalDiff latency: $latency90/$latency95/$latency99 Janks: $jankyDiff\(${jankPct}%\)
147         ((cur=cur+1))
148 done
149 doKeyevent HOME
150 ((aveJankPct=jankSum*100/frameSum))
151 ((aveJanks=jankSum/iterations))
152 ((aveFrames=frameSum/iterations))
153 ((aveLatency90=latency90Sum/iterations))
154 ((aveLatency95=latency95Sum/iterations))
155 ((aveLatency99=latency99Sum/iterations))
156 echo AVE: Frames: $aveFrames latency: $aveLatency90/$aveLatency95/$aveLatency99 Janks: $aveJanks\(${aveJankPct}%\)