Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a2544adb authored by Kelvin Zhang's avatar Kelvin Zhang
Browse files

Convert perfboot.py to python3

Change-Id: I29c06888b84c2b00455884bca8e5d4dd9209057c
parent 74d558c1
Loading
Loading
Loading
Loading
+20 −20
Original line number Diff line number Diff line
#!/usr/bin/env python
#!/usr/bin/env python3
# Copyright (C) 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -39,7 +39,7 @@ $ ./perfboot.py --iterations=30 -v --output=data.tsv --tags=eventtags.txt

import argparse
import atexit
import cStringIO
import io
import glob
import inspect
import logging
@@ -102,7 +102,7 @@ class IntervalAdjuster(object):
            self._wait_cpu_cool_down(self._product, self._temp_paths)
        else:
            if self._waited:
                print 'Waiting for %d seconds' % self._interval
                print('Waiting for %d seconds' % self._interval)
                time.sleep(self._interval)
        self._waited = True

@@ -119,9 +119,9 @@ class IntervalAdjuster(object):
        threshold = IntervalAdjuster._CPU_COOL_DOWN_THRESHOLDS.get(
            self._product)
        if threshold is None:
            print 'No CPU temperature threshold is set for ' + self._product
            print ('Just wait %d seconds' %
                   IntervalAdjuster._CPU_COOL_DOWN_WAIT_TIME_DEFAULT)
            print('No CPU temperature threshold is set for ' + self._product)
            print(('Just wait %d seconds' %
                   IntervalAdjuster._CPU_COOL_DOWN_WAIT_TIME_DEFAULT))
            time.sleep(IntervalAdjuster._CPU_COOL_DOWN_WAIT_TIME_DEFAULT)
            return
        while True:
@@ -129,8 +129,8 @@ class IntervalAdjuster(object):
            if temp < threshold:
                logging.info('Current CPU temperature %s' % temp)
                return
            print 'Waiting until CPU temperature (%d) falls below %d' % (
                temp, threshold)
            print('Waiting until CPU temperature (%d) falls below %d' % (
                temp, threshold))
            time.sleep(IntervalAdjuster._CPU_COOL_DOWN_WAIT_INTERVAL)


@@ -260,7 +260,7 @@ def filter_event_tags(tags, device):

def get_values(record, tag):
    """Gets values that matches |tag| from |record|."""
    keys = [key for key in record.keys() if key[0] == tag]
    keys = [key for key in list(record.keys()) if key[0] == tag]
    return [record[k] for k in sorted(keys)]


@@ -304,7 +304,7 @@ def output_results(filename, record_list, tags):
    with open(filename, 'w') as f:
        f.write('\t'.join(labels) + '\n')
        for record in record_list:
            line = cStringIO.StringIO()
            line = io.StringIO()
            invalid_line = False
            for i, tag in enumerate(tags):
                if i != 0:
@@ -319,7 +319,7 @@ def output_results(filename, record_list, tags):
                logging.error('Invalid record found: ' + line.getvalue())
            line.write('\n')
            f.write(line.getvalue())
    print 'Wrote: ' + filename
    print(('Wrote: ' + filename))


def median(data):
@@ -349,9 +349,9 @@ def print_summary(record_list, end_tag):
    # Filter out invalid data.
    end_times = [get_last_value(record, end_tag) for record in record_list
                 if get_last_value(record, end_tag) != 0]
    print 'mean:', int(round(mean(end_times))), 'ms'
    print 'median:', int(round(median(end_times))), 'ms'
    print 'standard deviation:', int(round(stddev(end_times))), 'ms'
    print(('mean:', int(round(mean(end_times))), 'ms'))
    print(('median:', int(round(median(end_times))), 'ms'))
    print(('standard deviation:', int(round(stddev(end_times))), 'ms'))


def do_iteration(device, interval_adjuster, event_tags_re, end_tag):
@@ -359,7 +359,7 @@ def do_iteration(device, interval_adjuster, event_tags_re, end_tag):
    device.wait()
    interval_adjuster.wait()
    device.reboot()
    print 'Rebooted the device'
    print('Rebooted the device, waiting for tag', end_tag)
    record = {}
    booted = False
    while not booted:
@@ -372,7 +372,7 @@ def do_iteration(device, interval_adjuster, event_tags_re, end_tag):
                stdout=subprocess.PIPE)
        for line in readlines_unbuffered(p):
            if t.is_timedout():
                print '*** Timed out ***'
                print('*** Timed out ***')
                return record
            m = event_tags_re.search(line)
            if not m:
@@ -381,8 +381,8 @@ def do_iteration(device, interval_adjuster, event_tags_re, end_tag):
            event_time = int(m.group('time'))
            pid = m.group('pid')
            record[(tag, pid)] = event_time
            print 'Event log recorded: %s (%s) - %d ms' % (
                tag, pid, event_time)
            print(('Event log recorded: %s (%s) - %d ms' % (
                tag, pid, event_time)))
            if tag == end_tag:
                booted = True
                t.cancel()
@@ -420,7 +420,7 @@ def parse_args():

def install_apks(device, apk_dir):
    for apk in glob.glob(os.path.join(apk_dir, '*.apk')):
        print 'Installing: ' + apk
        print('Installing: ' + apk)
        device.install(apk, replace=True)


@@ -452,7 +452,7 @@ def main():
    event_tags_re = make_event_tags_re(event_tags)

    for i in range(args.iterations):
        print 'Run #%d ' % i
        print('Run #%d ' % i)
        record = do_iteration(
            device, interval_adjuster, event_tags_re, end_tag)
        record_list.append(record)