diff options
Diffstat (limited to 'caffeinemark/vc.py')
-rwxr-xr-x | caffeinemark/vc.py | 90 |
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) |