summaryrefslogtreecommitdiff
path: root/caffeinemark/vc.py
diff options
context:
space:
mode:
Diffstat (limited to 'caffeinemark/vc.py')
-rwxr-xr-xcaffeinemark/vc.py90
1 files changed, 90 insertions, 0 deletions
diff --git a/caffeinemark/vc.py b/caffeinemark/vc.py
new file mode 100755
index 0000000..ab2b05f
--- /dev/null
+++ b/caffeinemark/vc.py
@@ -0,0 +1,90 @@
+import re
+import sys
+import os
+import time
+from subprocess import call
+
+from com.dtmilano.android.viewclient import ViewClient, ViewNotFoundException
+
+parent_dir = os.path.realpath(os.path.dirname(__file__))
+f_output_result="%s/../common/output-test-result.sh" % parent_dir
+
+# Result collection for LAVA
+debug_switcher = False
+default_unit = 'points'
+result = 'pass'
+
+
+def collect_score(score_name, result, score, default_unit):
+ call([f_output_result, score_name, result, score, default_unit])
+
+
+kwargs1 = {'verbose': False, 'ignoresecuredevice': False}
+device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1)
+kwargs2 = {'startviewserver': True, 'forceviewserveruse': False, 'autodump': False, 'ignoreuiautomatorkilled': True, 'compresseddump': False}
+vc = ViewClient(device, serialno, **kwargs2)
+
+def dump_always():
+ success = False
+ while not success:
+ try:
+ vc.dump()
+ success = True
+ except RuntimeError:
+ print("Got RuntimeError when call vc.dump()")
+ time.sleep(5)
+ except ValueError:
+ print("Got ValueError when call vc.dump()")
+ time.sleep(5)
+
+time.sleep(2)
+dump_always()
+start_button = vc.findViewByIdOrRaise("com.flexycore.caffeinemark:id/startButton")
+start_button.touch()
+
+finished = False
+while (not finished):
+ try:
+ dump_always()
+ vc.findViewByIdOrRaise("com.flexycore.caffeinemark:id/testResultsCellOneTitle")
+ finished = True
+ except ViewNotFoundException:
+ print("ViewNotFoundException when tried to find com.flexycore.caffeinemark:id/testResultsCellOneTitle")
+ pass
+ except RuntimeError as e:
+ print("RuntimeError when tried to find com.flexycore.caffeinemark:id/testResultsCellOneTitle")
+ pass
+print "benchmark finished"
+
+total_score = vc.findViewByIdOrRaise("com.flexycore.caffeinemark:id/testResultEntryOverAllScore").getText()
+collect_score("Caffeinemark-score", result, total_score, default_unit)
+
+details_button = vc.findViewByIdOrRaise("com.flexycore.caffeinemark:id/testResultsDetailsButton")
+details_button.touch()
+
+time.sleep(2)
+dump_always()
+
+sieve_name = vc.findViewByIdOrRaise("id/no_id/9").getText()
+sieve_score = vc.findViewByIdOrRaise("id/no_id/10").getText()
+collect_score("Caffeinemark-Sieve-score", result, sieve_score, default_unit)
+
+loop_name = vc.findViewByIdOrRaise("id/no_id/13").getText()
+loop_score = vc.findViewByIdOrRaise("id/no_id/14").getText()
+collect_score("Caffeinemark-Loop-score", result, loop_score, default_unit)
+
+logic_name = vc.findViewByIdOrRaise("id/no_id/17").getText()
+logic_score = vc.findViewByIdOrRaise("id/no_id/18").getText()
+collect_score("Caffeinemark-Collect-score", result, logic_score, default_unit)
+
+string_name = vc.findViewByIdOrRaise("id/no_id/21").getText()
+string_score = vc.findViewByIdOrRaise("id/no_id/22").getText()
+collect_score("Caffeinemark-String-score", result, string_score, default_unit)
+
+float_name = vc.findViewByIdOrRaise("id/no_id/25").getText()
+float_score = vc.findViewByIdOrRaise("id/no_id/26").getText()
+collect_score("Caffeinemark-Float-score", result, float_score, default_unit)
+
+method_name = vc.findViewByIdOrRaise("id/no_id/29").getText()
+method_score = vc.findViewByIdOrRaise("id/no_id/30").getText()
+collect_score("Caffeinemark-Method-score", result, method_score, default_unit)