blob: 49d06b9e85e9d7cbbb58a945fa884889287523c6 [file] [log] [blame]
import time
from common import ApkTestRunner
from com.dtmilano.android.viewclient import ViewNotFoundException
class ApkRunnerImpl(ApkTestRunner):
def __init__(self, config):
self.config = config
self.config[
"apk_file_name"
] = "JavaBenchmark/non-pure-java-benchmarks/03-SciMark.apk"
self.config["apk_package"] = "net.danielroggen.scimark"
self.config["activity"] = "net.danielroggen.scimark/.ActivityMain"
super(ApkRunnerImpl, self).__init__(self.config)
def execute(self):
find_start_btn = False
while not find_start_btn:
self.dump_always()
warn_msg = self.vc.findViewWithText(
u"This app was built for an older version of Android and may not work properly. Try checking for updates, or contact the developer."
)
continue_btn = self.vc.findViewWithText(u"CONTINUE")
if warn_msg:
self.logger.info("Older version warning popped up")
warning_ok_btn = self.vc.findViewWithTextOrRaise(u"OK")
warning_ok_btn.touch()
elif continue_btn:
continue_btn.touch()
else:
btn_java_bench = self.vc.findViewWithTextOrRaise(u"Java bench")
btn_java_bench.touch()
find_start_btn = True
finished = False
while not finished:
try:
time.sleep(60)
self.dump_always()
self.sci_results = self.vc.findViewByIdOrRaise(
"net.danielroggen.scimark:id/textViewResult"
)
if self.sci_results.getText().find("Done") > 0:
finished = True
self.logger.info("benchmark finished")
except ViewNotFoundException:
pass
except RuntimeError:
pass
except ValueError:
pass
def parseResult(self):
keys = [
"FFT (1024)",
"SOR (100x100)",
"Monte Carlo",
"Sparse matmult (N=1000, nz=5000)",
"LU (100x100)",
"Composite Score",
]
for line in self.sci_results.getText().replace(": \n", ":").split("\n"):
line = str(line.strip())
key_val = line.split(":")
if len(key_val) == 2:
if key_val[0].strip() in keys:
key = (
key_val[0]
.strip()
.replace(" ", "-")
.replace("(", "")
.replace(")", "")
.replace(",", "")
)
self.report_result(
"scimark-" + key, "pass", key_val[1].strip(), "Mflops"
)