Title: [214542] trunk/Tools
Revision
214542
Author
[email protected]
Date
2017-03-29 10:22:02 -0700 (Wed, 29 Mar 2017)

Log Message

webkitpy: Add IOSDevicePort and IOSPort tests
https://bugs.webkit.org/show_bug.cgi?id=170206
<rdar://problem/31308364>

Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/port/darwin_testcase.py: Removed unused import.
* Scripts/webkitpy/port/ios_device_unittest.py: Added.
(iosDeviceTest): Contains tests for the IOSDevicePort.
(iosDeviceTest.make_port): Creates an IOSDevicePort with arguments.
(iosDeviceTest.test_operating_system): Check for the correct operating system.
* Scripts/webkitpy/port/ios_simulator_unittest.py: Moved from Tools/Scripts/webkitpy/port/ios_unittest.py.
(iosSimulatorTest): Inherit from ios_testcase.
(iosSimulatorTest.make_port): Ditto.
(iosSimulatorTest.test_get_crash_log): Ditto.
* Scripts/webkitpy/port/ios_testcase.py: Added.
(iOSTest): Contains shared tests for the IOSDevicePort and IOSSimulatorPort.
(iOSTest.test_driver_name): Tests for iOS app driver.
(iOSTest.test_baseline_searchpath): Check that ios and ios-wk1 are in the baseline search path.
* Scripts/webkitpy/port/ios_unittest.py: Moved to ios_simulator_unittest.py.
* Scripts/webkitpy/port/port_testcase.py:
(PortTestCase): Rename is_simulator to disable_setup to more accurately describe it's meaning.
(PortTestCase.test_diff_image): Use disable_setup instead of is_simulator.
(PortTestCase.test_diff_image_crashed): Ditto.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Tools/ChangeLog (214541 => 214542)


--- trunk/Tools/ChangeLog	2017-03-29 17:17:49 UTC (rev 214541)
+++ trunk/Tools/ChangeLog	2017-03-29 17:22:02 UTC (rev 214542)
@@ -1,3 +1,30 @@
+2017-03-29  Jonathan Bedard  <[email protected]>
+
+        webkitpy: Add IOSDevicePort and IOSPort tests
+        https://bugs.webkit.org/show_bug.cgi?id=170206
+        <rdar://problem/31308364>
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Scripts/webkitpy/port/darwin_testcase.py: Removed unused import.
+        * Scripts/webkitpy/port/ios_device_unittest.py: Added.
+        (iosDeviceTest): Contains tests for the IOSDevicePort.
+        (iosDeviceTest.make_port): Creates an IOSDevicePort with arguments.
+        (iosDeviceTest.test_operating_system): Check for the correct operating system.
+        * Scripts/webkitpy/port/ios_simulator_unittest.py: Moved from Tools/Scripts/webkitpy/port/ios_unittest.py.
+        (iosSimulatorTest): Inherit from ios_testcase.
+        (iosSimulatorTest.make_port): Ditto.
+        (iosSimulatorTest.test_get_crash_log): Ditto.
+        * Scripts/webkitpy/port/ios_testcase.py: Added.
+        (iOSTest): Contains shared tests for the IOSDevicePort and IOSSimulatorPort.
+        (iOSTest.test_driver_name): Tests for iOS app driver.
+        (iOSTest.test_baseline_searchpath): Check that ios and ios-wk1 are in the baseline search path.
+        * Scripts/webkitpy/port/ios_unittest.py: Moved to ios_simulator_unittest.py.
+        * Scripts/webkitpy/port/port_testcase.py:
+        (PortTestCase): Rename is_simulator to disable_setup to more accurately describe it's meaning.
+        (PortTestCase.test_diff_image): Use disable_setup instead of is_simulator.
+        (PortTestCase.test_diff_image_crashed): Ditto.
+
 2017-03-28  Jason Marcell  <[email protected]>
 
         Fix `index-expected.txt` for dashboard test results.

Modified: trunk/Tools/Scripts/webkitpy/port/darwin_testcase.py (214541 => 214542)


--- trunk/Tools/Scripts/webkitpy/port/darwin_testcase.py	2017-03-29 17:17:49 UTC (rev 214541)
+++ trunk/Tools/Scripts/webkitpy/port/darwin_testcase.py	2017-03-29 17:22:02 UTC (rev 214542)
@@ -21,7 +21,6 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 from webkitpy.port import port_testcase
-from webkitpy.common.system.filesystem_mock import MockFileSystem
 from webkitpy.common.system.outputcapture import OutputCapture
 from webkitpy.tool.mocktool import MockOptions
 from webkitpy.common.system.executive_mock import MockExecutive, MockExecutive2, MockProcess, ScriptError

Added: trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py (0 => 214542)


--- trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py	                        (rev 0)
+++ trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py	2017-03-29 17:22:02 UTC (rev 214542)
@@ -0,0 +1,38 @@
+# Copyright (C) 2017 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+from webkitpy.port.ios_device import IOSDevicePort
+from webkitpy.port import ios_testcase
+
+
+class IOSDeviceTest(ios_testcase.IOSTest):
+    os_name = 'ios-device'
+    os_version = ''
+    port_name = 'ios-device'
+    port_maker = IOSDevicePort
+
+    def make_port(self, host=None, port_name=None, options=None, os_name=None, os_version=None, **kwargs):
+        port = super(IOSDeviceTest, self).make_port(host=host, port_name=port_name, options=options, os_name=os_name, s_version=os_version, kwargs=kwargs)
+        return port
+
+    def test_operating_system(self):
+        self.assertEqual('ios-device', self.make_port().operating_system())

Copied: trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py (from rev 214541, trunk/Tools/Scripts/webkitpy/port/ios_unittest.py) (0 => 214542)


--- trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py	                        (rev 0)
+++ trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py	2017-03-29 17:22:02 UTC (rev 214542)
@@ -0,0 +1,96 @@
+# Copyright (C) 2014-2016 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import time
+
+from webkitpy.port.ios_simulator import IOSSimulatorPort
+from webkitpy.port import ios_testcase
+from webkitpy.common.system.outputcapture import OutputCapture
+from webkitpy.tool.mocktool import MockOptions
+from webkitpy.common.system.executive_mock import MockExecutive2, ScriptError
+
+
+class IOSSimulatorTest(ios_testcase.IOSTest):
+    os_name = 'ios-simulator'
+    os_version = ''
+    port_name = 'ios-simulator'
+    port_maker = IOSSimulatorPort
+
+    def make_port(self, host=None, port_name=None, options=None, os_name=None, os_version=None, **kwargs):
+        port = super(IOSSimulatorTest, self).make_port(host=host, port_name=port_name, options=options, os_name=os_name, s_version=os_version, kwargs=kwargs)
+        port.set_option('child_processes', 1)
+        return port
+
+    def test_setup_environ_for_server(self):
+        port = self.make_port(options=MockOptions(leaks=True, guard_malloc=True))
+        env = port.setup_environ_for_server(port.driver_name())
+        self.assertEqual(env['MallocStackLogging'], '1')
+        self.assertEqual(env['MallocScribble'], '1')
+        self.assertEqual(env['DYLD_INSERT_LIBRARIES'], '/usr/lib/libgmalloc.dylib')
+
+    def test_operating_system(self):
+        self.assertEqual('ios-simulator', self.make_port().operating_system())
+
+    def test_get_crash_log(self):
+        # Mac crash logs are tested elsewhere, so here we just make sure we don't crash.
+        def fake_time_cb():
+            times = [0, 20, 40]
+            return lambda: times.pop(0)
+        port = self.make_port(port_name=self.port_name)
+        port._get_crash_log('DumpRenderTree', 1234, None, None, time.time(), wait_for_log=False)
+
+    def test_32bit(self):
+        port = self.make_port(options=MockOptions(architecture='x86'))
+
+        def run_script(script, args=None, env=None):
+            self.args = args
+
+        port._run_script = run_script
+        self.assertEqual(port.architecture(), 'x86')
+        port._build_driver()
+        self.assertEqual(self.args, ['ARCHS=i386', '--sdk', 'iphonesimulator'])
+
+    def test_64bit(self):
+        # Apple Mac port is 64-bit by default
+        port = self.make_port()
+        self.assertEqual(port.architecture(), 'x86_64')
+
+        def run_script(script, args=None, env=None):
+            self.args = args
+
+        port._run_script = run_script
+        port._build_driver()
+        self.assertEqual(self.args, ['--sdk', 'iphonesimulator'])
+
+    def test_sdk_name(self):
+        port = self.make_port()
+        self.assertEqual(port.SDK, 'iphonesimulator')
+
+    def test_xcrun(self):
+        def throwing_run_command(args):
+            print args
+            raise ScriptError("MOCK script error")
+
+        port = self.make_port()
+        port._executive = MockExecutive2(run_command_fn=throwing_run_command)
+        expected_stdout = "['xcrun', '--sdk', 'iphonesimulator', '-find', 'test']\n"
+        OutputCapture().assert_outputs(self, port.xcrun_find, args=['test', 'falling'], expected_stdout=expected_stdout)

Added: trunk/Tools/Scripts/webkitpy/port/ios_testcase.py (0 => 214542)


--- trunk/Tools/Scripts/webkitpy/port/ios_testcase.py	                        (rev 0)
+++ trunk/Tools/Scripts/webkitpy/port/ios_testcase.py	2017-03-29 17:22:02 UTC (rev 214542)
@@ -0,0 +1,36 @@
+# Copyright (C) 2017 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+from webkitpy.port import darwin_testcase
+from webkitpy.tool.mocktool import MockOptions
+
+
+class IOSTest(darwin_testcase.DarwinTest):
+    disable_setup = True
+
+    def test_driver_name(self):
+        self.assertEqual(self.make_port().driver_name(), 'DumpRenderTree.app')
+
+    def test_baseline_searchpath(self):
+        search_path = self.make_port().default_baseline_search_path()
+        self.assertEqual(search_path[-1], '/mock-checkout/LayoutTests/platform/ios')
+        self.assertEqual(search_path[-2], '/mock-checkout/LayoutTests/platform/ios-wk1')

Deleted: trunk/Tools/Scripts/webkitpy/port/ios_unittest.py (214541 => 214542)


--- trunk/Tools/Scripts/webkitpy/port/ios_unittest.py	2017-03-29 17:17:49 UTC (rev 214541)
+++ trunk/Tools/Scripts/webkitpy/port/ios_unittest.py	2017-03-29 17:22:02 UTC (rev 214542)
@@ -1,99 +0,0 @@
-# Copyright (C) 2014-2016 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1.  Redistributions of source code must retain the above copyright
-#     notice, this list of conditions and the following disclaimer.
-# 2.  Redistributions in binary form must reproduce the above copyright
-#     notice, this list of conditions and the following disclaimer in the
-#     documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import time
-
-from webkitpy.port.ios_simulator import IOSSimulatorPort
-from webkitpy.port import darwin_testcase
-from webkitpy.common.system.filesystem_mock import MockFileSystem
-from webkitpy.common.system.outputcapture import OutputCapture
-from webkitpy.tool.mocktool import MockOptions
-from webkitpy.common.system.executive_mock import MockExecutive, MockExecutive2, MockProcess, ScriptError
-from webkitpy.common.system.systemhost_mock import MockSystemHost
-
-
-class iosTest(darwin_testcase.DarwinTest):
-    os_name = 'ios-simulator'
-    os_version = ''
-    port_name = 'ios-simulator'
-    port_maker = IOSSimulatorPort
-    is_simulator = True
-
-    def make_port(self, host=None, port_name=None, options=None, os_name=None, os_version=None, **kwargs):
-        port = super(iosTest, self).make_port(host=host, port_name=port_name, options=options, os_name=os_name, s_version=os_version, kwargs=kwargs)
-        port.set_option('child_processes', 1)
-        return port
-
-    def test_setup_environ_for_server(self):
-        port = self.make_port(options=MockOptions(leaks=True, guard_malloc=True))
-        env = port.setup_environ_for_server(port.driver_name())
-        self.assertEqual(env['MallocStackLogging'], '1')
-        self.assertEqual(env['MallocScribble'], '1')
-        self.assertEqual(env['DYLD_INSERT_LIBRARIES'], '/usr/lib/libgmalloc.dylib')
-
-    def test_operating_system(self):
-        self.assertEqual('ios-simulator', self.make_port().operating_system())
-
-    def test_get_crash_log(self):
-        # Mac crash logs are tested elsewhere, so here we just make sure we don't crash.
-        def fake_time_cb():
-            times = [0, 20, 40]
-            return lambda: times.pop(0)
-        port = self.make_port(port_name='ios-simulator')
-        port._get_crash_log('DumpRenderTree', 1234, None, None, time.time(), wait_for_log=False)
-
-    def test_32bit(self):
-        port = self.make_port(options=MockOptions(architecture='x86'))
-
-        def run_script(script, args=None, env=None):
-            self.args = args
-
-        port._run_script = run_script
-        self.assertEqual(port.architecture(), 'x86')
-        port._build_driver()
-        self.assertEqual(self.args, ['ARCHS=i386', '--sdk', 'iphonesimulator'])
-
-    def test_64bit(self):
-        # Apple Mac port is 64-bit by default
-        port = self.make_port()
-        self.assertEqual(port.architecture(), 'x86_64')
-
-        def run_script(script, args=None, env=None):
-            self.args = args
-
-        port._run_script = run_script
-        port._build_driver()
-        self.assertEqual(self.args, ['--sdk', 'iphonesimulator'])
-
-    def test_sdk_name(self):
-        port = self.make_port()
-        self.assertEqual(port.SDK, 'iphonesimulator')
-
-    def test_xcrun(self):
-        def throwing_run_command(args):
-            print args
-            raise ScriptError("MOCK script error")
-
-        port = self.make_port()
-        port._executive = MockExecutive2(run_command_fn=throwing_run_command)
-        expected_stdout = "['xcrun', '--sdk', 'iphonesimulator', '-find', 'test']\n"
-        OutputCapture().assert_outputs(self, port.xcrun_find, args=['test', 'falling'], expected_stdout=expected_stdout)

Modified: trunk/Tools/Scripts/webkitpy/port/port_testcase.py (214541 => 214542)


--- trunk/Tools/Scripts/webkitpy/port/port_testcase.py	2017-03-29 17:17:49 UTC (rev 214541)
+++ trunk/Tools/Scripts/webkitpy/port/port_testcase.py	2017-03-29 17:22:02 UTC (rev 214542)
@@ -82,7 +82,7 @@
     os_version = None
     port_maker = TestWebKitPort
     port_name = None
-    is_simulator = False
+    disable_setup = False
 
     def make_port(self, host=None, port_name=None, options=None, os_name=None, os_version=None, **kwargs):
         host = host or MockSystemHost(os_name=(os_name or self.os_name), os_version=(os_version or self.os_version))
@@ -252,8 +252,8 @@
             self.proc = MockServerProcess(port, nm, cmd, env, lines=['diff: 100% failed\n', 'diff: 100% failed\n'])
             return self.proc
 
-        # FIXME: Can't pretend to run a simulator's setup, so just skip this test.
-        if self.is_simulator:
+        # FIXME: Can't pretend to run setup for some ports, so just skip this test.
+        if self.disable_setup:
             return
 
         port._server_process_constructor = make_proc
@@ -279,8 +279,8 @@
             self.proc = MockServerProcess(port, nm, cmd, env, crashed=True)
             return self.proc
 
-        # FIXME: Can't pretend to run a simulator's setup, so just skip this test.
-        if self.is_simulator:
+        # FIXME: Can't pretend to run setup for some ports, so just skip this test.
+        if self.disable_setup:
             return
 
         port._server_process_constructor = make_proc
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to