diff options
Diffstat (limited to 'crosperf/compare_machines.py')
-rw-r--r-- | crosperf/compare_machines.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/crosperf/compare_machines.py b/crosperf/compare_machines.py new file mode 100644 index 00000000..0a61eeb9 --- /dev/null +++ b/crosperf/compare_machines.py @@ -0,0 +1,64 @@ +# Copyright 2014 The Chromium OS Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +"""Module to compare two machines.""" + +from __future__ import print_function + +import os.path +import sys +import argparse + +from machine_manager import CrosMachine + + +def PrintUsage(msg): + print(msg) + print('Usage: ') + print('\n compare_machines.py --chromeos_root=/path/to/chroot/ ' + 'machine1 machine2 ...') + + +def Main(argv): + + parser = argparse.ArgumentParser() + parser.add_argument('--chromeos_root', + default='/path/to/chromeos', + dest='chromeos_root', + help='ChromeOS root checkout directory') + parser.add_argument('remotes', nargs=argparse.REMAINDER) + + options = parser.parse_args(argv) + + machine_list = options.remotes + if len(machine_list) < 2: + PrintUsage('ERROR: Must specify at least two machines.') + return 1 + elif not os.path.exists(options.chromeos_root): + PrintUsage('Error: chromeos_root does not exist %s' % options.chromeos_root) + return 1 + + chroot = options.chromeos_root + cros_machines = [] + test_machine_checksum = None + for m in machine_list: + cm = CrosMachine(m, chroot, 'average') + cros_machines = cros_machines + [cm] + test_machine_checksum = cm.machine_checksum + + ret = 0 + for cm in cros_machines: + print('checksum for %s : %s' % (cm.name, cm.machine_checksum)) + if cm.machine_checksum != test_machine_checksum: + ret = 1 + print('Machine checksums do not all match') + + if ret == 0: + print('Machines all match.') + + return ret + + +if __name__ == '__main__': + retval = Main(sys.argv[1:]) + sys.exit(retval) |