Title: [273762] trunk/Tools
Revision
273762
Author
[email protected]
Date
2021-03-02 14:53:04 -0800 (Tue, 02 Mar 2021)

Log Message

[run-webkit-tests] Use webkitscmpy when reporting results
https://bugs.webkit.org/show_bug.cgi?id=222432
<rdar://problem/74755765>

Rubber-stamped by Aakash Jain.

* Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Bump version.
* Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git): The root directory should be treated as if it does not exist.
* Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:
(SummarizedResultsTest.test_svn_revision): Use webkitscmpy's mock repository.
(SummarizedResultsTest.test_svn_revision_git): Added.
* Scripts/webkitpy/port/base.py:
(Port.commits_for_upload): Use webkitscmpy instead of webkitpy for repository manipulation.
* Scripts/webkitpy/port/base_unittest.py:
(PortTest.test_commits_for_upload): Use webkitscmpy's mock repository.
(PortTest.test_commits_for_upload_git_svn): Added.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (273761 => 273762)


--- trunk/Tools/ChangeLog	2021-03-02 22:51:33 UTC (rev 273761)
+++ trunk/Tools/ChangeLog	2021-03-02 22:53:04 UTC (rev 273762)
@@ -1,3 +1,24 @@
+2021-03-02  Jonathan Bedard  <[email protected]>
+
+        [run-webkit-tests] Use webkitscmpy when reporting results
+        https://bugs.webkit.org/show_bug.cgi?id=222432
+        <rdar://problem/74755765>
+
+        Rubber-stamped by Aakash Jain.
+
+        * Scripts/libraries/webkitscmpy/setup.py: Bump version.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Bump version.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
+        (Git): The root directory should be treated as if it does not exist.
+        * Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:
+        (SummarizedResultsTest.test_svn_revision): Use webkitscmpy's mock repository.
+        (SummarizedResultsTest.test_svn_revision_git): Added.
+        * Scripts/webkitpy/port/base.py:
+        (Port.commits_for_upload): Use webkitscmpy instead of webkitpy for repository manipulation.
+        * Scripts/webkitpy/port/base_unittest.py:
+        (PortTest.test_commits_for_upload): Use webkitscmpy's mock repository.
+        (PortTest.test_commits_for_upload_git_svn): Added.
+
 2021-03-02  Lauro Moura  <[email protected]>
 
         [WPE] Support sending key modifiers after r272572

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/setup.py (273761 => 273762)


--- trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-03-02 22:51:33 UTC (rev 273761)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-03-02 22:53:04 UTC (rev 273762)
@@ -29,7 +29,7 @@
 
 setup(
     name='webkitscmpy',
-    version='0.11.3',
+    version='0.11.4',
     description='Library designed to interact with git and svn repositories.',
     long_description=readme(),
     classifiers=[

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py (273761 => 273762)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-03-02 22:51:33 UTC (rev 273761)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-03-02 22:53:04 UTC (rev 273762)
@@ -46,7 +46,7 @@
         "Please install webkitcorepy with `pip install webkitcorepy --extra-index-url <package index URL>`"
     )
 
-version = Version(0, 11, 3)
+version = Version(0, 11, 4)
 
 AutoInstall.register(Package('fasteners', Version(0, 15, 0)))
 AutoInstall.register(Package('monotonic', Version(1, 5)))

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py (273761 => 273762)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py	2021-03-02 22:51:33 UTC (rev 273761)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py	2021-03-02 22:53:04 UTC (rev 273762)
@@ -64,7 +64,7 @@
         self.tags = {}
 
         # If the directory provided actually exists, populate it
-        if os.path.isdir(self.path):
+        if self.path != '/' and os.path.isdir(self.path):
             if not os.path.isdir(os.path.join(self.path, '.git')):
                 os.mkdir(os.path.join(self.path, '.git'))
             with open(os.path.join(self.path, '.git', 'config'), 'w') as config:

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py (273761 => 273762)


--- trunk/Tools/Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py	2021-03-02 22:51:33 UTC (rev 273761)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py	2021-03-02 22:53:04 UTC (rev 273762)
@@ -35,7 +35,9 @@
 from webkitpy.layout_tests.models import test_run_results
 from webkitpy.tool.mocktool import MockOptions
 
+from webkitscmpy import mocks
 
+
 def get_result(test_name, result_type=test_expectations.PASS, run_time=0):
     failures = []
     if result_type == test_expectations.TIMEOUT:
@@ -160,10 +162,17 @@
         self.assertNotEquals(summary['revision'], '')
 
     def test_svn_revision(self):
-        self.port._options.builder_name = 'dummy builder'
-        summary = summarized_results(self.port, expected=False, passing=False, flaky=False)
-        self.assertEquals(summary['revision'], '2738499')
+        with mocks.local.Svn(path='/'), mocks.local.Git():
+            self.port._options.builder_name = 'dummy builder'
+            summary = summarized_results(self.port, expected=False, passing=False, flaky=False)
+            self.assertEquals(summary['revision'], '6')
 
+    def test_svn_revision_git(self):
+        with mocks.local.Svn(), mocks.local.Git(path='/', git_svn=True):
+            self.port._options.builder_name = 'dummy builder'
+            summary = summarized_results(self.port, expected=False, passing=False, flaky=False)
+            self.assertEquals(summary['revision'], '9')
+
     def test_summarized_results_wontfix(self):
         self.port._options.builder_name = 'dummy builder'
         summary = summarized_results(self.port, expected=False, passing=False, flaky=False)

Modified: trunk/Tools/Scripts/webkitpy/port/base.py (273761 => 273762)


--- trunk/Tools/Scripts/webkitpy/port/base.py	2021-03-02 22:51:33 UTC (rev 273761)
+++ trunk/Tools/Scripts/webkitpy/port/base.py	2021-03-02 22:53:04 UTC (rev 273762)
@@ -42,6 +42,7 @@
 from collections import OrderedDict
 from functools import partial
 from webkitcorepy import string_utils, decorators
+from webkitscmpy import local
 
 from webkitpy.common import find_files
 from webkitpy.common import read_checksum_from_png
@@ -1511,31 +1512,31 @@
     def commits_for_upload(self):
         from webkitpy.results.upload import Upload
 
-        self.host.initialize_scm()
         repos = {}
         if port_config.apple_additions() and getattr(port_config.apple_additions(), 'repos', False):
-            repos = port_config.apple_additions().repos()
-        repos['webkit'] = self.host.scm().checkout_root
+            repos = {
+                name: local.Scm.from_path(pth)
+                for name, pth in port_config.apple_additions().repos().items()
+            }
+
+        if 'webkit' not in repos:
+            try:
+                repos['webkit'] = local.Scm.from_path(self.host.filesystem.getcwd())
+            except OSError:
+                repos['webkit'] = local.Scm.from_path(self.host.filesystem.dirname(__file__))
+
         commits = []
-        for repo_id, path in repos.items():
-            scm = SCMDetector(self._filesystem, self._executive).detect_scm_system(path)
+        for repo_id, repo in repos.items():
+            commit = repo.commit(include_log=False, include_identifier=False)
 
-            # If using git-svn for WebKit, prefer the SVN branch/revision.
-            svn_revision = scm.svn_revision(path)
-            if repo_id == 'webkit' and svn_revision:
-                used_revision = svn_revision
-            else:
-                used_revision = scm.native_revision(path)
+            # Special case for WebKit since we have multiple representations at the moment
+            branch = commit.branch
+            if repo_id == 'webkit' and branch in repo.DEFAULT_BRANCHES:
+                branch = 'trunk'
 
-            svn_branch = scm.svn_branch(path)
-            if repo_id == 'webkit' and svn_branch:
-                used_branch = svn_branch
-            else:
-                used_branch = scm.native_branch(path)
-
             commits.append(Upload.create_commit(
                 repository_id=repo_id,
-                id=used_revision,
-                branch=used_branch,
+                id=str(commit.revision or commit.hash),
+                branch=branch,
             ))
         return commits

Modified: trunk/Tools/Scripts/webkitpy/port/base_unittest.py (273761 => 273762)


--- trunk/Tools/Scripts/webkitpy/port/base_unittest.py	2021-03-02 22:51:33 UTC (rev 273761)
+++ trunk/Tools/Scripts/webkitpy/port/base_unittest.py	2021-03-02 22:53:04 UTC (rev 273762)
@@ -41,6 +41,7 @@
 from webkitpy.port.test import add_unit_tests_to_mock_filesystem, TestPort
 
 from webkitcorepy import OutputCapture
+from webkitscmpy import mocks
 
 
 def cmp(a, b):
@@ -323,10 +324,16 @@
         )
 
     def test_commits_for_upload(self):
-        port = self.make_port(port_name='foo')
-        self.assertEqual([{'repository_id': 'webkit', 'id': '2738499', 'branch': 'trunk'}], port.commits_for_upload())
+        with mocks.local.Svn(path='/'), mocks.local.Git():
+            port = self.make_port(port_name='foo')
+            self.assertEqual([{'repository_id': 'webkit', 'id': '6', 'branch': 'trunk'}], port.commits_for_upload())
 
+    def test_commits_for_upload_git_svn(self):
+        with mocks.local.Svn(), mocks.local.Git(path='/', git_svn=True):
+            port = self.make_port(port_name='foo')
+            self.assertEqual([{'repository_id': 'webkit', 'id': '9', 'branch': 'trunk'}], port.commits_for_upload())
 
+
 class NaturalCompareTest(unittest.TestCase):
     def setUp(self):
         self._port = TestPort(MockSystemHost())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to