Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Unified Diff: tools/isolate/isolate.py

Issue 10908113: Add isolate.py trace --merge to do a trace and merge in a single command. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/isolate/isolate.py
diff --git a/tools/isolate/isolate.py b/tools/isolate/isolate.py
index 5e1ed4fe3e31c54fced0c892bcc4aefd5462bec0..5c6802a3ae707833b07e89cf774228127fc02c8a 100755
--- a/tools/isolate/isolate.py
+++ b/tools/isolate/isolate.py
@@ -665,6 +665,30 @@ def read(complete_state):
(' '.join(complete_state.result.command), str(e)))
+def merge(complete_state):
+ """Reads a trace and merges it back into the source .isolate file."""
+ value = read(complete_state)
csharp 2012/09/06 12:59:37 Nit: what exactly does value contain? Is it a dict
M-A Ruel 2012/09/06 19:26:50 A dict, as the read() docstring says.
+
+ # Now take that data and union it into the original .isolate file.
+ with open(complete_state.saved_state.isolate_file, 'r') as f:
+ prev_content = f.read()
+ prev_config = merge_isolate.load_gyp(
+ merge_isolate.eval_content(prev_content),
+ merge_isolate.extract_comment(prev_content),
+ merge_isolate.DEFAULT_OSES)
+ new_config = merge_isolate.load_gyp(
+ value,
+ '',
+ merge_isolate.DEFAULT_OSES)
+ config = merge_isolate.union(prev_config, new_config)
+ # pylint: disable=E1103
+ data = merge_isolate.convert_map_to_gyp(
+ *merge_isolate.reduce_inputs(*merge_isolate.invert_map(config.flatten())))
+ print 'Updating %s' % complete_state.saved_state.isolate_file
+ with open(complete_state.saved_state.isolate_file, 'wb') as f:
+ merge_isolate.print_all(config.file_comment, data, f)
+
+
def CMDcheck(args):
"""Checks that all the inputs are present and update .result."""
parser = OptionParserIsolate(command='check')
@@ -748,27 +772,7 @@ def CMDmerge(args):
parser = OptionParserIsolate(command='merge', require_result=False)
options, _ = parser.parse_args(args)
complete_state = load_complete_state(options, NO_INFO)
- value = read(complete_state)
-
- # Now take that data and union it into the original .isolate file.
- with open(complete_state.saved_state.isolate_file, 'r') as f:
- prev_content = f.read()
- prev_config = merge_isolate.load_gyp(
- merge_isolate.eval_content(prev_content),
- merge_isolate.extract_comment(prev_content),
- merge_isolate.DEFAULT_OSES)
- new_config = merge_isolate.load_gyp(
- value,
- '',
- merge_isolate.DEFAULT_OSES)
- config = merge_isolate.union(prev_config, new_config)
- # pylint: disable=E1103
- data = merge_isolate.convert_map_to_gyp(
- *merge_isolate.reduce_inputs(*merge_isolate.invert_map(config.flatten())))
- print 'Updating %s' % complete_state.saved_state.isolate_file
- with open(complete_state.saved_state.isolate_file, 'wb') as f:
- merge_isolate.print_all(config.file_comment, data, f)
-
+ merge(complete_state)
return 0
@@ -883,6 +887,9 @@ def CMDtrace(args):
"""
parser = OptionParserIsolate(command='trace')
parser.enable_interspersed_args()
+ parser.add_option(
+ '-m', '--merge', action='store_true',
+ help='After tracing, merge the results back in the .isolate file')
options, args = parser.parse_args(args)
complete_state = load_complete_state(options, STATS_ONLY)
cmd = complete_state.result.command + args
@@ -906,6 +913,10 @@ def CMDtrace(args):
raise ExecutionError('Tracing failed for: %s\n%s' % (' '.join(cmd), str(e)))
complete_state.save_files()
+
+ if options.merge:
+ merge(complete_state)
+
return result
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698