Index: gm/copy_config.py |
diff --git a/gm/copy_config.py b/gm/copy_config.py |
deleted file mode 100755 |
index 57743ae8953adb2c430d63ba2dcb7e3736892881..0000000000000000000000000000000000000000 |
--- a/gm/copy_config.py |
+++ /dev/null |
@@ -1,104 +0,0 @@ |
-#!/usr/bin/python |
-# Copyright (c) 2014 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. |
- |
-"""Utility to duplicate a config in some subset of our GM expectation files. |
- |
-Created for http://skbug.com/2752 ('split existing "gpu" GM results into "gl" |
-and "gles"') |
- |
-Run with -h to see usage. |
- |
-Example command lines: |
- copy_config.py gl gles '.*Mac10.7.*' |
- |
-TODO(epoger): Once https://codereview.chromium.org/397103003/ is committed, |
-we should add a unittest. Until then, we can test this as follows: |
- |
-OLD=expectations/gm && NEW=/tmp/expectations && \ |
- rm -rf $NEW && \ |
- cp -a $OLD $NEW && \ |
- gm/copy_config.py 8888 8888-copy '.*Mac10.7.*' \ |
- --expectations-root $NEW && \ |
- diff --recursive $OLD $NEW |
-""" |
-__author__ = 'Elliot Poger' |
- |
-import argparse |
-import os |
-import re |
- |
-import gm_json |
- |
-DEFAULT_EXPECTATIONS_ROOT = os.path.join( |
- os.path.dirname(__file__), os.pardir, 'expectations', 'gm') |
-IMAGE_FILENAME_RE = re.compile(gm_json.IMAGE_FILENAME_PATTERN) |
- |
- |
-class Copier(object): |
- |
- def __init__(self, args): |
- """ |
- Params: |
- args: the Namespace object generated by argparse.parse_args() |
- """ |
- self._args = args |
- |
- def run(self): |
- """Perform all the duplications.""" |
- for path in self._get_file_list(): |
- self._duplicate_config(path=path, |
- old=self._args.old_config_name, |
- new=self._args.new_config_name) |
- |
- def _duplicate_config(self, path, old, new): |
- """Duplicates all instances of a config within a GM expectations file. |
- |
- Params: |
- path: path to file which will be modified in place |
- old: old config name |
- new: new config name |
- """ |
- dic = gm_json.LoadFromFile(file_path=path) |
- expected_results = dic[gm_json.JSONKEY_EXPECTEDRESULTS] |
- orig_keys = expected_results.keys() |
- for key in orig_keys: |
- result = expected_results[key] |
- (testname, config) = IMAGE_FILENAME_RE.match(key).groups() |
- if config == old: |
- config = new |
- key = '%s_%s.png' % (testname, config) |
- expected_results[key] = result |
- gm_json.WriteToFile(json_dict=dic, file_path=path) |
- |
- def _get_file_list(self): |
- """Returns the list of files we want to operate on (the complete path |
- to each file).""" |
- root = self._args.expectations_root |
- regex = re.compile(self._args.builder_name_pattern) |
- return [os.path.join(root, builder, 'expected-results.json') |
- for builder in os.listdir(root) |
- if regex.match(builder)] |
- |
- |
-def main(): |
- parser = argparse.ArgumentParser() |
- parser.add_argument('old_config_name', |
- help=('Config we want to duplicate.')) |
- parser.add_argument('new_config_name', |
- help=('Name of the new config we want to create.')) |
- parser.add_argument('builder_name_pattern', |
- help=('Regex pattern describing which builders we want ' |
- 'to make the duplication for; \'.*\' to perform ' |
- 'the duplication on all builders.')) |
- parser.add_argument('--expectations-root', |
- default=DEFAULT_EXPECTATIONS_ROOT, |
- help=('Root of the GM expectations dir; defaults to ' |
- '%(default)s')) |
- args = parser.parse_args() |
- copier = Copier(args) |
- copier.run() |
- |
-if __name__ == '__main__': |
- main() |