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