Title: [93175] trunk/Tools
Revision
93175
Author
[email protected]
Date
2011-08-16 16:26:17 -0700 (Tue, 16 Aug 2011)

Log Message

Add webkit-patch analyze-baselines, as requested by jamesr.

* Scripts/webkitpy/common/checkout/baselineoptimizer.py:
* Scripts/webkitpy/tool/commands/rebaseline.py:

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (93174 => 93175)


--- trunk/Tools/ChangeLog	2011-08-16 23:16:17 UTC (rev 93174)
+++ trunk/Tools/ChangeLog	2011-08-16 23:26:17 UTC (rev 93175)
@@ -1,5 +1,12 @@
 2011-08-16  Adam Barth  <[email protected]>
 
+        Add webkit-patch analyze-baselines, as requested by jamesr.
+
+        * Scripts/webkitpy/common/checkout/baselineoptimizer.py:
+        * Scripts/webkitpy/tool/commands/rebaseline.py:
+
+2011-08-16  Adam Barth  <[email protected]>
+
         Fold bulk-optimize-baselines into optimize-baselines
         https://bugs.webkit.org/show_bug.cgi?id=66345
 

Modified: trunk/Tools/Scripts/webkitpy/common/checkout/baselineoptimizer.py (93174 => 93175)


--- trunk/Tools/Scripts/webkitpy/common/checkout/baselineoptimizer.py	2011-08-16 23:16:17 UTC (rev 93174)
+++ trunk/Tools/Scripts/webkitpy/common/checkout/baselineoptimizer.py	2011-08-16 23:26:17 UTC (rev 93175)
@@ -150,6 +150,10 @@
                 self._filesystem.write_binary_file(destination, data_for_result[result])
                 self._scm.add(destination)
 
+    def directories_by_result(self, baseline_name):
+        results_by_directory = self._read_results_by_directory(baseline_name)
+        return _invert_dictionary(results_by_directory)
+
     def optimize(self, baseline_name):
         results_by_directory, new_results_by_directory = self._find_optimal_result_placement(baseline_name)
         if self._results_by_port_name(results_by_directory) != self._results_by_port_name(new_results_by_directory):

Modified: trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline.py (93174 => 93175)


--- trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline.py	2011-08-16 23:16:17 UTC (rev 93174)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline.py	2011-08-16 23:26:17 UTC (rev 93175)
@@ -30,6 +30,7 @@
 import re
 import shutil
 import urllib
+import pprint
 
 import webkitpy.common.config.urls as config_urls
 from webkitpy.common.checkout.baselineoptimizer import BaselineOptimizer
@@ -104,7 +105,7 @@
 
 class OptimizeBaselines(AbstractDeclarativeCommand):
     name = "optimize-baselines"
-    help_text = "Reshuffles the baselines for the given test to use as litte space on disk as possible."
+    help_text = "Reshuffles the baselines for the given tests to use as litte space on disk as possible."
     argument_names = "TEST_NAMES"
 
     def _optimize_baseline(self, test_name):
@@ -113,6 +114,9 @@
             if not self._baseline_optimizer.optimize(baseline_name):
                 print "Hueristics failed to optimize %s" % baseline_name
 
+    def _to_test_name(self, file_name): 
+        return self._tool.filesystem.relpath(file_name, self._port.layout_tests_dir())
+
     def execute(self, options, args, tool):
         self._baseline_optimizer = BaselineOptimizer(tool.scm(), tool.filesystem)
         self._port = factory.get("chromium-win-win7")  # FIXME: This should be selectable.
@@ -122,6 +126,31 @@
             self._optimize_baseline(test_name)
 
 
+class AnalyzeBaselines(AbstractDeclarativeCommand):
+    name = "analyze-baselines"
+    help_text = "Analyzes the baselines for the given tests and displays which ones have the same hash."
+    argument_names = "TEST_NAMES"
+
+    def _analyze_baseline(self, test_name):
+        for suffix in _baseline_suffix_list:
+            baseline_name = _baseline_name(self._tool.filesystem, test_name, suffix)
+            directories_by_result = self._baseline_optimizer.directories_by_result(baseline_name)
+            if directories_by_result:
+                print '== ', baseline_name, ' =='
+                pprint.pprint(directories_by_result)
+                print
+
+    def _to_test_name(self, file_name): 
+        return self._tool.filesystem.relpath(file_name, self._port.layout_tests_dir())
+
+    def execute(self, options, args, tool):
+        self._baseline_optimizer = BaselineOptimizer(tool.scm(), tool.filesystem)
+        self._port = factory.get("chromium-win-win7")  # FIXME: This should be selectable.
+
+        for test_name in map(self._to_test_name, test_files.find(self._port, args)):
+            self._analyze_baseline(test_name)
+
+
 class RebaselineExpectations(AbstractDeclarativeCommand):
     name = "rebaseline-expectations"
     help_text = "Rebaselines the tests indicated in test_expectations.txt."
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to