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.
150 lines
3.0 KiB
150 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}%\)
|