| Index: build/android/gyp/emma_instr.py
 | 
| diff --git a/build/android/gyp/emma_instr.py b/build/android/gyp/emma_instr.py
 | 
| index 8e69f395bc15492bb9c4e3c93789f3614b67a46a..ae20cac64790307ac1b9a335278b9d636293b610 100755
 | 
| --- a/build/android/gyp/emma_instr.py
 | 
| +++ b/build/android/gyp/emma_instr.py
 | 
| @@ -12,11 +12,11 @@ call one of the instrument commands, or the copy command.
 | 
|  
 | 
|  Possible commands are:
 | 
|  - instrument_jar: Accepts a jar and instruments it using emma.jar.
 | 
| -- instrument_classes: Accepts a directory contains java classes and instruments
 | 
| -      it using emma.jar.
 | 
| -- copy: Triggered instead of an instrumentation command when we don't have EMMA
 | 
| -      coverage enabled. This allows us to make this a required step without
 | 
| -      necessarily instrumenting on every build.
 | 
| +- instrument_classes: Accepts a directory containing java classes and
 | 
| +      instruments it using emma.jar.
 | 
| +- copy: Called when EMMA coverage is not enabled. This allows us to make
 | 
| +      this a required step without necessarily instrumenting on every build.
 | 
| +      Also removes any stale coverage files.
 | 
|  """
 | 
|  
 | 
|  import collections
 | 
| @@ -42,15 +42,15 @@ def _AddCommonOptions(option_parser):
 | 
|                                   'final classes directory, or the directory in '
 | 
|                                   'which to place the instrumented/copied jar.'))
 | 
|    option_parser.add_option('--stamp', help='Path to touch when done.')
 | 
| +  option_parser.add_option('--coverage-file',
 | 
| +                           help='File to create with coverage metadata.')
 | 
| +  option_parser.add_option('--sources-file',
 | 
| +                           help='File to create with the list of sources.')
 | 
|  
 | 
|  
 | 
|  def _AddInstrumentOptions(option_parser):
 | 
|    """Adds options related to instrumentation to |option_parser|."""
 | 
|    _AddCommonOptions(option_parser)
 | 
| -  option_parser.add_option('--coverage-file',
 | 
| -                           help='File to create with coverage metadata.')
 | 
| -  option_parser.add_option('--sources-file',
 | 
| -                           help='File to create with the list of sources.')
 | 
|    option_parser.add_option('--sources',
 | 
|                             help='Space separated list of sources.')
 | 
|    option_parser.add_option('--src-root',
 | 
| @@ -60,7 +60,9 @@ def _AddInstrumentOptions(option_parser):
 | 
|  
 | 
|  
 | 
|  def _RunCopyCommand(command, options, args, option_parser):
 | 
| -  """Just copies the jar from input to output locations.
 | 
| +  """Copies the jar from input to output locations.
 | 
| +
 | 
| +  Also removes any old coverage/sources file.
 | 
|  
 | 
|    Args:
 | 
|      command: String indicating the command that was received to trigger
 | 
| @@ -72,9 +74,19 @@ def _RunCopyCommand(command, options, args, option_parser):
 | 
|    Returns:
 | 
|      An exit code.
 | 
|    """
 | 
| -  if not (options.input_path and options.output_path):
 | 
| +  if not (options.input_path and options.output_path and
 | 
| +          options.coverage_file and options.sources_file):
 | 
|      option_parser.error('All arguments are required.')
 | 
|  
 | 
| +  coverage_file = os.path.join(os.path.dirname(options.output_path),
 | 
| +                               options.coverage_file)
 | 
| +  sources_file = os.path.join(os.path.dirname(options.output_path),
 | 
| +                              options.sources_file)
 | 
| +  if os.path.exists(coverage_file):
 | 
| +    os.remove(coverage_file)
 | 
| +  if os.path.exists(sources_file):
 | 
| +    os.remove(sources_file)
 | 
| +
 | 
|    if os.path.isdir(options.input_path):
 | 
|      shutil.rmtree(options.output_path, ignore_errors=True)
 | 
|      shutil.copytree(options.input_path, options.output_path)
 | 
| 
 |