You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
3.0 KiB
149 lines
3.0 KiB
# |
|
# Script to play a john oliver youtube video N times. |
|
# For each iteration, Total frames and janky frames are reported. |
|
# |
|
# Options are described below. |
|
# |
|
iterations=10 |
|
app=youtube |
|
searchText="last week tonight with john oliver: online harassment" |
|
vidMinutes=15 |
|
|
|
function processLocalOption { |
|
ret=0 |
|
case "$1" in |
|
(-S) searchText="$2"; shift;; |
|
(-t) vidMinutes="$2"; shift;; |
|
(*) |
|
echo "$0: unrecognized option: $1" |
|
echo; echo "Usage: $0 [options]" |
|
echo "-i iterations" |
|
echo "-S youtube search text" |
|
echo "-d device" |
|
echo "-t vidMinutes" |
|
exit 1;; |
|
esac |
|
return $ret |
|
} |
|
|
|
CMDDIR=$(dirname $0 2>/dev/null) |
|
CMDDIR=${CMDDIR:=.} |
|
. $CMDDIR/defs.sh |
|
|
|
case $DEVICE in |
|
(angler) |
|
searchButton="860 177" |
|
selectFirstVideo="225 400" |
|
enableControls="1000 610" |
|
fullScreen="1011 632" |
|
;; |
|
(shamu) |
|
searchButton="1200 160" |
|
selectFirstVideo="480 653" |
|
enableControls="1377 812" |
|
fullScreen="1377 812" |
|
;; |
|
(bullhead|hammerhead) |
|
searchButton="860 177" |
|
selectFirstVideo="225 400" |
|
enableControls="1000 610" |
|
fullScreen="1011 632" |
|
;; |
|
(volantis) |
|
searchButton="1356 93" |
|
selectFirstVideo="378 264" |
|
enableControls="1464 812" |
|
fullScreen="1480 835" |
|
;; |
|
(ariel) |
|
searchButton="1440 70" |
|
selectFirstVideo="228 224" |
|
enableControls="1528 880" |
|
fullScreen="1528 880" |
|
;; |
|
|
|
(*) |
|
echo "Error: No display information available for $DEVICE" |
|
exit 1;; |
|
esac |
|
|
|
function swipe { |
|
count=0 |
|
while [ $count -lt $2 ] |
|
do |
|
echo doSwipe... |
|
doSwipe $1 |
|
((count=count+1)) |
|
done |
|
sleep 1 |
|
} |
|
|
|
cur=1 |
|
frameSum=0 |
|
jankSum=0 |
|
latency90Sum=0 |
|
latency95Sum=0 |
|
latency99Sum=0 |
|
|
|
doKeyevent HOME |
|
sleep 0.5 |
|
resetJankyFrames $(getPackageName $app) |
|
|
|
while [ $cur -le $iterations ] |
|
do |
|
t=$(startActivity $app) |
|
sleep 4.0 |
|
doTap $searchButton |
|
sleep 1.0 |
|
doText "$searchText" |
|
sleep 1.0 |
|
doKeyevent ENTER |
|
sleep 5.0 |
|
doTap $selectFirstVideo |
|
sleep 10.0 |
|
doTap $fullScreen |
|
sleep 0.5 |
|
doTap $fullScreen |
|
# 15 minutes |
|
((vidTime=60*vidMinutes)) |
|
sleep $vidTime |
|
doKeyevent BACK |
|
sleep 0.5 |
|
doKeyevent BACK |
|
sleep 0.5 |
|
doKeyevent BACK |
|
sleep 0.5 |
|
|
|
set -- $(getJankyFrames $(getPackageName $app)) |
|
totalDiff=$1 |
|
jankyDiff=$2 |
|
latency90=$3 |
|
latency95=$4 |
|
latency99=$5 |
|
if [ ${totalDiff:=0} -eq 0 ]; then |
|
echo Error: could not read frame info with \"dumpsys gfxinfo\" |
|
fi |
|
|
|
((frameSum=frameSum+totalDiff)) |
|
((jankSum=jankSum+jankyDiff)) |
|
((latency90Sum=latency90Sum+latency90)) |
|
((latency95Sum=latency95Sum+latency95)) |
|
((latency99Sum=latency99Sum+latency99)) |
|
if [ "$totalDiff" -eq 0 ]; then |
|
echo Error: no frames detected. Is the display off? |
|
fi |
|
((jankPct=jankyDiff*100/totalDiff)) |
|
resetJankyFrames $(getPackageName $app) |
|
|
|
|
|
echo Frames: $totalDiff latency: $latency90/$latency95/$latency99 Janks: $jankyDiff\(${jankPct}%\) |
|
((cur=cur+1)) |
|
done |
|
doKeyevent HOME |
|
((aveJankPct=jankSum*100/frameSum)) |
|
((aveJanks=jankSum/iterations)) |
|
((aveFrames=frameSum/iterations)) |
|
((aveLatency90=latency90Sum/iterations)) |
|
((aveLatency95=latency95Sum/iterations)) |
|
((aveLatency99=latency99Sum/iterations)) |
|
echo AVE: Frames: $aveFrames latency: $aveLatency90/$aveLatency95/$aveLatency99 Janks: $aveJanks\(${aveJankPct}%\)
|
|
|