Joel Fernandes | b5fbd41 | 2017-10-26 12:24:30 -0700 | [diff] [blame] | 1 | #!/usr/bin/python |
| 2 | |
| 3 | import optparse |
| 4 | import sys |
| 5 | import time |
| 6 | |
| 7 | import adbutil |
| 8 | from devices import DEVICES |
| 9 | |
| 10 | def parse_options(argv): |
| 11 | usage = 'Usage: %prog [options]' |
| 12 | desc = 'Example: %prog' |
| 13 | parser = optparse.OptionParser(usage=usage, description=desc) |
| 14 | parser.add_option("-c", dest='clear', action="store_true") |
| 15 | parser.add_option("-d", dest='device', action="store",) |
| 16 | parser.add_option("-t", dest='trace', action="store_true") |
| 17 | options, categories = parser.parse_args(argv[1:]) |
| 18 | return (options, categories) |
| 19 | |
| 20 | def clear_data(device = None): |
| 21 | if device != None: |
| 22 | dev = DEVICES[device] |
| 23 | adbutil.root(dev) |
| 24 | adbutil.pm(dev, "clear", "com.android.benchmark") |
| 25 | else: |
| 26 | for name, dev in DEVICES.iteritems(): |
| 27 | print("Clearing " + name) |
| 28 | adbutil.root(dev) |
| 29 | adbutil.pm(dev, "clear", "com.android.benchmark") |
| 30 | |
| 31 | def start_device(name, dev): |
| 32 | print("Go " + name + "!") |
| 33 | try: |
| 34 | adbutil.am(dev, "force-stop", "com.android.benchmark") |
| 35 | adbutil.wake(dev) |
| 36 | adbutil.am(dev, "start", |
| 37 | ["-n", "\"com.android.benchmark/.app.RunLocalBenchmarksActivity\"", |
| 38 | "--eia", "\"com.android.benchmark.EXTRA_ENABLED_BENCHMARK_IDS\"", "\"0,1,2,3,4,5,6\"", |
| 39 | "--ei", "\"com.android.benchmark.EXTRA_RUN_COUNT\"", "\"5\""]) |
| 40 | except adbutil.AdbError: |
| 41 | print "Couldn't launch " + name + "." |
| 42 | |
| 43 | def start_benchmark(device, trace): |
| 44 | if device != None: |
| 45 | start_device(device, DEVICES[device]) |
| 46 | if trace: |
| 47 | time.sleep(3) |
| 48 | adbutil.trace(DEVICES[device]) |
| 49 | else: |
| 50 | if trace: |
| 51 | print("Note: -t only valid with -d, can't trace") |
| 52 | for name, dev in DEVICES.iteritems(): |
| 53 | start_device(name, dev) |
| 54 | |
| 55 | def main(): |
| 56 | options, categories = parse_options(sys.argv) |
| 57 | if options.clear: |
| 58 | print options.device |
| 59 | clear_data(options.device) |
| 60 | else: |
| 61 | start_benchmark(options.device, options.trace) |
| 62 | |
| 63 | |
| 64 | if __name__ == "__main__": |
| 65 | main() |