Title: [116061] trunk/Tools
Revision
116061
Author
rak...@webkit.org
Date
2012-05-03 18:53:05 -0700 (Thu, 03 May 2012)

Log Message

webkitpy: Recognize FreeBSD as a valid platform.
https://bugs.webkit.org/show_bug.cgi?id=81467

Reviewed by Adam Barth.

Add PlatformInfo.is_freebsd() so that trying to use webkit-patch
on FreeBSD does not raise an "unrecognized platform" exception.

Most of this patch contains some unit tests for the mentioned
method, as currently platform-specific code is needed only on
Windows.

* Scripts/webkitpy/common/system/platforminfo.py:
(PlatformInfo.__init__):
(PlatformInfo.is_freebsd):
(PlatformInfo._determine_os_name):
* Scripts/webkitpy/common/system/platforminfo_mock.py:
(MockPlatformInfo.is_freebsd):
* Scripts/webkitpy/common/system/platforminfo_unittest.py:
(fake_platform):
(fake_platform.FakePlatformModule.release):
(TestPlatformInfo.test_real_code):
(TestPlatformInfo.test_os_name_and_wrappers):
(TestPlatformInfo.test_os_version):
(TestPlatformInfo.test_display_name):
(TestPlatformInfo.test_total_bytes_memory):
(TestPlatformInfo.test_free_bytes_memory):
* Scripts/webkitpy/layout_tests/port/factory.py:
(PortFactory._default_port):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (116060 => 116061)


--- trunk/Tools/ChangeLog	2012-05-04 01:51:22 UTC (rev 116060)
+++ trunk/Tools/ChangeLog	2012-05-04 01:53:05 UTC (rev 116061)
@@ -1,3 +1,35 @@
+2012-05-03  Raphael Kubo da Costa  <rak...@webkit.org>
+
+        webkitpy: Recognize FreeBSD as a valid platform.
+        https://bugs.webkit.org/show_bug.cgi?id=81467
+
+        Reviewed by Adam Barth.
+
+        Add PlatformInfo.is_freebsd() so that trying to use webkit-patch
+        on FreeBSD does not raise an "unrecognized platform" exception.
+
+        Most of this patch contains some unit tests for the mentioned
+        method, as currently platform-specific code is needed only on
+        Windows.
+
+        * Scripts/webkitpy/common/system/platforminfo.py:
+        (PlatformInfo.__init__):
+        (PlatformInfo.is_freebsd):
+        (PlatformInfo._determine_os_name):
+        * Scripts/webkitpy/common/system/platforminfo_mock.py:
+        (MockPlatformInfo.is_freebsd):
+        * Scripts/webkitpy/common/system/platforminfo_unittest.py:
+        (fake_platform):
+        (fake_platform.FakePlatformModule.release):
+        (TestPlatformInfo.test_real_code):
+        (TestPlatformInfo.test_os_name_and_wrappers):
+        (TestPlatformInfo.test_os_version):
+        (TestPlatformInfo.test_display_name):
+        (TestPlatformInfo.test_total_bytes_memory):
+        (TestPlatformInfo.test_free_bytes_memory):
+        * Scripts/webkitpy/layout_tests/port/factory.py:
+        (PortFactory._default_port):
+
 2012-05-03  Ojan Vafai  <o...@chromium.org>
 
         Make the table headers white-space:nowrap. This decreases the vertical size,

Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py (116060 => 116061)


--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py	2012-05-04 01:51:22 UTC (rev 116060)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py	2012-05-04 01:53:05 UTC (rev 116061)
@@ -48,6 +48,8 @@
         self.os_name = self._determine_os_name(sys_module.platform)
         if self.os_name == 'linux':
             self.os_version = self._determine_linux_version()
+        if self.os_name == 'freebsd':
+            self.os_version = platform_module.release()
         if self.os_name.startswith('mac'):
             self.os_version = self._determine_mac_version(platform_module.mac_ver()[0])
         if self.os_name.startswith('win'):
@@ -62,6 +64,9 @@
     def is_linux(self):
         return self.os_name == 'linux'
 
+    def is_freebsd(self):
+        return self.os_name == 'freebsd'
+
     def display_name(self):
         # platform.platform() returns Darwin information for Mac, which is just confusing.
         if self.is_mac():
@@ -93,6 +98,8 @@
             return 'linux'
         if sys_platform in ('win32', 'cygwin'):
             return 'win'
+        if sys_platform.startswith('freebsd'):
+            return 'freebsd'
         raise AssertionError('unrecognized platform string "%s"' % sys_platform)
 
     def _determine_mac_version(self, mac_version_string):

Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo_mock.py (116060 => 116061)


--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo_mock.py	2012-05-04 01:51:22 UTC (rev 116060)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo_mock.py	2012-05-04 01:53:05 UTC (rev 116061)
@@ -41,6 +41,9 @@
     def is_win(self):
         return self.os_name == 'win'
 
+    def is_freebsd(self):
+        return self.os_name == 'freebsd'
+
     def display_name(self):
         return "MockPlatform 1.0"
 

Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py (116060 => 116061)


--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py	2012-05-04 01:51:22 UTC (rev 116060)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py	2012-05-04 01:53:05 UTC (rev 116061)
@@ -45,7 +45,7 @@
     return FakeSysModule()
 
 
-def fake_platform(mac_version_string='10.6.3'):
+def fake_platform(mac_version_string='10.6.3', release_string='bar'):
 
     class FakePlatformModule(object):
         def mac_ver(self):
@@ -54,6 +54,9 @@
         def platform(self):
             return 'foo'
 
+        def release(self):
+            return release_string
+
     return FakePlatformModule()
 
 
@@ -75,7 +78,7 @@
         self.assertNotEquals(info.os_name, '')
         self.assertNotEquals(info.os_version, '')
         self.assertNotEquals(info.display_name(), '')
-        self.assertTrue(info.is_mac() or info.is_win() or info.is_linux())
+        self.assertTrue(info.is_mac() or info.is_win() or info.is_linux() or info.is_freebsd())
 
         if info.is_mac():
             self.assertTrue(info.total_bytes_memory() > 0)
@@ -89,30 +92,42 @@
         self.assertTrue(info.is_linux())
         self.assertFalse(info.is_mac())
         self.assertFalse(info.is_win())
+        self.assertFalse(info.is_freebsd())
 
         info = self.make_info(fake_sys('linux3'))
         self.assertTrue(info.is_linux())
         self.assertFalse(info.is_mac())
         self.assertFalse(info.is_win())
+        self.assertFalse(info.is_freebsd())
 
         info = self.make_info(fake_sys('darwin'), fake_platform('10.6.3'))
         self.assertEquals(info.os_name, 'mac')
         self.assertFalse(info.is_linux())
         self.assertTrue(info.is_mac())
         self.assertFalse(info.is_win())
+        self.assertFalse(info.is_freebsd())
 
         info = self.make_info(fake_sys('win32', tuple([6, 1, 7600])))
         self.assertEquals(info.os_name, 'win')
         self.assertFalse(info.is_linux())
         self.assertFalse(info.is_mac())
         self.assertTrue(info.is_win())
+        self.assertFalse(info.is_freebsd())
 
         info = self.make_info(fake_sys('cygwin'), executive=fake_executive('6.1.7600'))
         self.assertEquals(info.os_name, 'win')
         self.assertFalse(info.is_linux())
         self.assertFalse(info.is_mac())
         self.assertTrue(info.is_win())
+        self.assertFalse(info.is_freebsd())
 
+        info = self.make_info(fake_sys('freebsd8'))
+        self.assertEquals(info.os_name, 'freebsd')
+        self.assertFalse(info.is_linux())
+        self.assertFalse(info.is_mac())
+        self.assertFalse(info.is_win())
+        self.assertTrue(info.is_freebsd())
+
         self.assertRaises(AssertionError, self.make_info, fake_sys('vms'))
 
     def test_os_version(self):
@@ -124,6 +139,9 @@
 
         self.assertEquals(self.make_info(fake_sys('linux2')).os_version, 'lucid')
 
+        self.assertEquals(self.make_info(fake_sys('freebsd8'), fake_platform('', '8.3-PRERELEASE')).os_version, '8.3-PRERELEASE')
+        self.assertEquals(self.make_info(fake_sys('freebsd9'), fake_platform('', '9.0-RELEASE')).os_version, '9.0-RELEASE')
+
         self.assertRaises(AssertionError, self.make_info, fake_sys('win32', tuple([5, 0, 1234])))
         self.assertEquals(self.make_info(fake_sys('win32', tuple([6, 2, 1234]))).os_version, 'future')
         self.assertEquals(self.make_info(fake_sys('win32', tuple([6, 1, 7600]))).os_version, '7sp0')
@@ -146,6 +164,9 @@
         info = self.make_info(fake_sys('linux2'))
         self.assertNotEquals(info.display_name(), '')
 
+        info = self.make_info(fake_sys('freebsd9'))
+        self.assertNotEquals(info.display_name(), '')
+
     def test_total_bytes_memory(self):
         info = self.make_info(fake_sys('darwin'), fake_platform('10.6.3'), fake_executive('1234'))
         self.assertEquals(info.total_bytes_memory(), 1234)
@@ -156,6 +177,9 @@
         info = self.make_info(fake_sys('linux2'))
         self.assertEquals(info.total_bytes_memory(), None)
 
+        info = self.make_info(fake_sys('freebsd9'))
+        self.assertEquals(info.total_bytes_memory(), None)
+
     def test_free_bytes_memory(self):
         vmstat_output = ("Mach Virtual Memory Statistics: (page size of 4096 bytes)\n"
                          "Pages free:                        1.\n"
@@ -169,6 +193,9 @@
         info = self.make_info(fake_sys('linux2'))
         self.assertEquals(info.free_bytes_memory(), None)
 
+        info = self.make_info(fake_sys('freebsd9'))
+        self.assertEquals(info.free_bytes_memory(), None)
 
+
 if __name__ == '__main__':
     unittest.main()

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/factory.py (116060 => 116061)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/factory.py	2012-05-04 01:51:22 UTC (rev 116060)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/factory.py	2012-05-04 01:53:05 UTC (rev 116061)
@@ -86,7 +86,7 @@
 
     def _default_port(self, options):
         platform = self._host.platform
-        if platform.is_linux():
+        if platform.is_linux() or platform.is_freebsd():
             return 'chromium-linux'
         elif platform.is_mac():
             return 'mac'
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to