 Chromium Code Reviews
 Chromium Code Reviews Issue 19805007:
  rebaseline.py: add ability to write new expectations to a different file  (Closed) 
  Base URL: http://skia.googlecode.com/svn/trunk/
    
  
    Issue 19805007:
  rebaseline.py: add ability to write new expectations to a different file  (Closed) 
  Base URL: http://skia.googlecode.com/svn/trunk/| Index: tools/rebaseline.py | 
| =================================================================== | 
| --- tools/rebaseline.py (revision 10329) | 
| +++ tools/rebaseline.py (working copy) | 
| @@ -123,9 +123,14 @@ | 
| # params: | 
| # expectations_root: root directory of all expectations JSON files | 
| - # expectations_filename: filename (under expectations_root) of JSON | 
| - # expectations file; typically | 
| - # "expected-results.json" | 
| + # expectations_input_filename: filename (under expectations_root) of JSON | 
| + # expectations file to read; typically | 
| + # "expected-results.json" | 
| + # expectations_output_filename: filename (under expectations_root) to | 
| + # which updated expectations should be | 
| + # written; typically the same as | 
| + # expectations_input_filename, to overwrite | 
| + # the old content | 
| # actuals_base_url: base URL from which to read actual-result JSON files | 
| # actuals_filename: filename (under actuals_base_url) from which to read a | 
| # summary of results; typically "actual-results.json" | 
| @@ -136,11 +141,13 @@ | 
| # rebaseline whatever configs the JSON results summary file tells | 
| # us to | 
| # add_new: if True, add expectations for tests which don't have any yet | 
| - def __init__(self, expectations_root, expectations_filename, | 
| - actuals_base_url, actuals_filename, exception_handler, | 
| + def __init__(self, expectations_root, expectations_input_filename, | 
| + expectations_output_filename, actuals_base_url, | 
| + actuals_filename, exception_handler, | 
| tests=None, configs=None, add_new=False): | 
| self._expectations_root = expectations_root | 
| - self._expectations_filename = expectations_filename | 
| + self._expectations_input_filename = expectations_input_filename | 
| + self._expectations_output_filename = expectations_output_filename | 
| self._tests = tests | 
| self._configs = configs | 
| self._actuals_base_url = actuals_base_url | 
| @@ -233,9 +240,9 @@ | 
| sections=sections) | 
| # Read in current expectations. | 
| - expectations_json_filepath = os.path.join( | 
| - self._expectations_root, subdir, self._expectations_filename) | 
| - expectations_dict = gm_json.LoadFromFile(expectations_json_filepath) | 
| + expectations_input_filepath = os.path.join( | 
| + self._expectations_root, subdir, self._expectations_input_filename) | 
| + expectations_dict = gm_json.LoadFromFile(expectations_input_filepath) | 
| expected_results = expectations_dict[gm_json.JSONKEY_EXPECTEDRESULTS] | 
| # Update the expectations in memory, skipping any tests/configs that | 
| @@ -260,13 +267,15 @@ | 
| [image_results] | 
| # Write out updated expectations. | 
| - gm_json.WriteToFile(expectations_dict, expectations_json_filepath) | 
| + expectations_output_filepath = os.path.join( | 
| + self._expectations_root, subdir, self._expectations_output_filename) | 
| + gm_json.WriteToFile(expectations_dict, expectations_output_filepath) | 
| # Mark the JSON file as plaintext, so text-style diffs can be applied. | 
| # Fixes https://code.google.com/p/skia/issues/detail?id=1442 | 
| if self._using_svn: | 
| self._Call(['svn', 'propset', '--quiet', 'svn:mime-type', | 
| - 'text/x-json', expectations_json_filepath]) | 
| + 'text/x-json', expectations_output_filepath]) | 
| # main... | 
| @@ -301,8 +310,15 @@ | 
| parser.add_argument('--expectations-filename', | 
| help='filename (under EXPECTATIONS_ROOT) to read ' + | 
| 'current expectations from, and to write new ' + | 
| - 'expectations into; defaults to %(default)s', | 
| + 'expectations into (unless a separate ' + | 
| + 'EXPECTATIONS_FILENAME_OUTPUT has been specified); ' + | 
| + 'defaults to %(default)s', | 
| default='expected-results.json') | 
| +parser.add_argument('--expectations-filename-output', | 
| 
epoger
2013/07/24 19:31:34
Here's what this section of the --help output look
 | 
| + help='filename (under EXPECTATIONS_ROOT) to write ' + | 
| + 'updated expectations into; by default, overwrites the ' + | 
| + 'input file (EXPECTATIONS_FILENAME)', | 
| + default='') | 
| parser.add_argument('--expectations-root', | 
| help='root of expectations directory to update-- should ' + | 
| 'contain one or more base-* subdirectories. Defaults to ' + | 
| @@ -350,7 +366,9 @@ | 
| if os.path.isfile(expectations_json_file): | 
| rebaseliner = JsonRebaseliner( | 
| expectations_root=args.expectations_root, | 
| - expectations_filename=args.expectations_filename, | 
| + expectations_input_filename=args.expectations_filename, | 
| + expectations_output_filename=(args.expectations_filename_output or | 
| + args.expectations_filename), | 
| tests=args.tests, configs=args.configs, | 
| actuals_base_url=args.actuals_base_url, | 
| actuals_filename=args.actuals_filename, |