| Index: tools/isolate/read_trace.py
|
| diff --git a/tools/isolate/read_trace.py b/tools/isolate/read_trace.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..fda49238d0a4a1769d424de5f0c7d7cfa5eca880
|
| --- /dev/null
|
| +++ b/tools/isolate/read_trace.py
|
| @@ -0,0 +1,74 @@
|
| +#!/usr/bin/env python
|
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +"""Reads a trace. Mostly for testing."""
|
| +
|
| +import logging
|
| +import optparse
|
| +import os
|
| +import sys
|
| +
|
| +import trace_inputs
|
| +
|
| +BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
| +ROOT_DIR = os.path.dirname(os.path.dirname(BASE_DIR))
|
| +
|
| +
|
| +def read_trace(logname, root_dir, cwd_dir, product_dir):
|
| + # Resolve any symlink
|
| + root_dir = os.path.realpath(root_dir)
|
| + api = trace_inputs.get_api()
|
| + _, _, _, _, simplified = trace_inputs.load_trace(logname, root_dir, api)
|
| + variables = trace_inputs.generate_dict(simplified, cwd_dir, product_dir)
|
| + trace_inputs.pretty_print(variables, sys.stdout)
|
| +
|
| +
|
| +def main():
|
| + """CLI frontend to validate arguments."""
|
| + parser = optparse.OptionParser(
|
| + usage='%prog <options> [gtest]')
|
| + parser.add_option(
|
| + '-v', '--verbose',
|
| + action='count',
|
| + default=0,
|
| + help='Use up to 3 times to increase logging level')
|
| + parser.add_option(
|
| + '-c', '--cwd',
|
| + default='chrome',
|
| + help='Signal to start the process from this relative directory. When '
|
| + 'specified, outputs the inputs files in a way compatible for '
|
| + 'gyp processing. Should be set to the relative path containing the '
|
| + 'gyp file, e.g. \'chrome\' or \'net\'')
|
| + parser.add_option(
|
| + '-p', '--product-dir',
|
| + default='out/Release',
|
| + help='Directory for PRODUCT_DIR. Default: %default')
|
| + parser.add_option(
|
| + '--root-dir',
|
| + default=ROOT_DIR,
|
| + help='Root directory to base everything off. Default: %default')
|
| + options, args = parser.parse_args()
|
| +
|
| + level = [logging.ERROR, logging.INFO, logging.DEBUG][min(2, options.verbose)]
|
| + logging.basicConfig(
|
| + level=level,
|
| + format='%(levelname)5s %(module)15s(%(lineno)3d):%(message)s')
|
| +
|
| + if len(args) != 1:
|
| + parser.error('Please provide the log to read')
|
| + if not options.product_dir:
|
| + parser.error('--product-dir is required')
|
| + if not options.cwd:
|
| + parser.error('--cwd is required')
|
| +
|
| + return read_trace(
|
| + args[0],
|
| + options.root_dir,
|
| + options.cwd,
|
| + options.product_dir)
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + sys.exit(main())
|
|
|