NRWT doesn't store the svn revision in full_results.json on chromium-win
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Jul 2011 19:32:00 +0000 (19:32 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Jul 2011 19:32:00 +0000 (19:32 +0000)
https://bugs.webkit.org/show_bug.cgi?id=64492

Reviewed by Ojan Vafai.

This should fix the bug.  Unfortunately this code is currently
impossible to test since it's impossible to mock detect_scm_system at the
moment.  I started re-writing scm.detection.py to be mockable, but decided that
was best left for another day.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
* Scripts/webkitpy/layout_tests/port/base.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@91023 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/Scripts/webkitpy/layout_tests/controllers/manager.py
Tools/Scripts/webkitpy/layout_tests/port/base.py

index 675c1c4..1af3ff6 100644 (file)
@@ -1,3 +1,18 @@
+2011-07-14  Eric Seidel  <eric@webkit.org>
+
+        NRWT doesn't store the svn revision in full_results.json on chromium-win
+        https://bugs.webkit.org/show_bug.cgi?id=64492
+
+        Reviewed by Ojan Vafai.
+
+        This should fix the bug.  Unfortunately this code is currently
+        impossible to test since it's impossible to mock detect_scm_system at the
+        moment.  I started re-writing scm.detection.py to be mockable, but decided that
+        was best left for another day.
+
+        * Scripts/webkitpy/layout_tests/controllers/manager.py:
+        * Scripts/webkitpy/layout_tests/port/base.py:
+
 2011-07-14  Ojan Vafai  <ojan@chromium.org>
 
         fix coding style of dashboard_base.js
index 508f04b..1e68c7f 100644 (file)
@@ -209,7 +209,7 @@ def summarize_results(port_obj, expectations, result_summary, retry_summary, tes
     results['has_wdiff'] = port_obj.wdiff_available()
     results['has_pretty_patch'] = port_obj.pretty_patch_available()
     try:
-        results['revision'] = scm.default_scm().head_svn_revision()
+        results['revision'] = port_object.webkit_scm().head_svn_revision()
     except Exception, e:
         _log.warn("Failed to determine svn revision for checkout (cwd: %s), leaving 'revision' key blank in full_results.json.\n%s" % (port_obj._filesystem.getcwd(), e))
         # Handle cases where we're running outside of version control.
index e03d433..4f90b82 100755 (executable)
@@ -37,8 +37,10 @@ import difflib
 import errno
 import os
 
+from webkitpy.common.memoized import memoized
 from webkitpy.common.net.testoutputset import AggregateTestOutputSet
 
+
 # Handle Python < 2.6 where multiprocessing isn't available.
 try:
     import multiprocessing
@@ -60,6 +62,7 @@ from webkitpy.layout_tests.servers import websocket_server
 
 _log = logutils.get_logger(__file__)
 
+
 class DummyOptions(object):
     """Fake implementation of optparse.Values. Cloned from webkitpy.tool.mocktool.MockOptions."""
 
@@ -598,6 +601,14 @@ class Port(object):
         WebKit source tree and the list of path components in |*comps|."""
         return self._config.path_from_webkit_base(*comps)
 
+    @memoized
+    def webkit_scm(self):
+        # On the chromium bots, the cwd is the root of the chromium checkout.
+        # self._config.webkit_base_dir() knows where the webkit root is, no other
+        # object in NRWT seems to keep an SCM around.  (Unlike webkit-patch where it's on the Tool/Host object.)
+        # FIXME: We should be able to get the SCM from somewhere else.
+        return scm.detect_scm_system(self._config.webkit_base_dir())
+
     def path_to_test_expectations_file(self):
         """Update the test expectations to the passed-in string.