| Index: build/android/generate_emma_html.py
|
| diff --git a/build/android/generate_emma_html.py b/build/android/generate_emma_html.py
|
| index fa7279263d787405a005f8c6dc39e5ed9d03fa55..a226343e973744a20438342a97c4502474f7f41d 100755
|
| --- a/build/android/generate_emma_html.py
|
| +++ b/build/android/generate_emma_html.py
|
| @@ -11,6 +11,7 @@ import json
|
| import optparse
|
| import os
|
| import sys
|
| +import traceback
|
|
|
| from pylib import cmd_helper
|
| from pylib import constants
|
| @@ -54,27 +55,46 @@ def main(argv):
|
| print 'Found coverage files: %s' % str(coverage_files)
|
| print 'Found metadata files: %s' % str(metadata_files)
|
| sources_files = []
|
| + final_metadata_files = []
|
| + err = None
|
| for f in metadata_files:
|
| - sources_file = os.path.join(os.path.dirname(f), 'emma_sources.txt')
|
| - with open(sources_file, 'r') as f:
|
| - sources_files.extend(json.load(f))
|
| + sources_file = os.path.splitext(f)[0] + '_sources.txt'
|
| + # TODO(gkanwar): Remove this once old coverage.em files have been cleaned
|
| + # from all bots.
|
| + # Warn if we have old metadata files lying around that don't correspond
|
| + # to a *_sources.txt (these should be manually cleaned).
|
| + try:
|
| + with open(sources_file, 'r') as sf:
|
| + sources_files.extend(json.load(sf))
|
| + except IOError as e:
|
| + traceback.print_exc()
|
| + err = e
|
| + else:
|
| + final_metadata_files.append(f)
|
| sources_files = [os.path.join(constants.DIR_SOURCE_ROOT, s)
|
| for s in sources_files]
|
|
|
| input_args = []
|
| - for f in coverage_files + metadata_files:
|
| + for f in coverage_files + final_metadata_files:
|
| input_args.append('-in')
|
| input_args.append(f)
|
|
|
| output_args = ['-Dreport.html.out.file', options.output]
|
| source_args = ['-sp', ','.join(sources_files)]
|
|
|
| - return cmd_helper.RunCmd(
|
| + exit_code = cmd_helper.RunCmd(
|
| ['java', '-cp',
|
| os.path.join(constants.ANDROID_SDK_ROOT, 'tools', 'lib', 'emma.jar'),
|
| 'emma', 'report', '-r', 'html']
|
| + input_args + output_args + source_args)
|
|
|
| + if exit_code > 0:
|
| + return exit_code
|
| + elif err:
|
| + return constants.WARNING_EXIT_CODE
|
| + else:
|
| + return 0
|
| +
|
|
|
| if __name__ == '__main__':
|
| sys.exit(main(sys.argv))
|
|
|