<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[214542] trunk/Tools</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/214542">214542</a></dd>
<dt>Author</dt> <dd>jbedard@apple.com</dd>
<dt>Date</dt> <dd>2017-03-29 10:22:02 -0700 (Wed, 29 Mar 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>webkitpy: Add IOSDevicePort and IOSPort tests
https://bugs.webkit.org/show_bug.cgi?id=170206
&lt;rdar://problem/31308364&gt;

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.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptswebkitpyportdarwin_testcasepy">trunk/Tools/Scripts/webkitpy/port/darwin_testcase.py</a></li>
<li><a href="#trunkToolsScriptswebkitpyportport_testcasepy">trunk/Tools/Scripts/webkitpy/port/port_testcase.py</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkToolsScriptswebkitpyportios_device_unittestpy">trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py</a></li>
<li><a href="#trunkToolsScriptswebkitpyportios_simulator_unittestpy">trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py</a></li>
<li><a href="#trunkToolsScriptswebkitpyportios_testcasepy">trunk/Tools/Scripts/webkitpy/port/ios_testcase.py</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkToolsScriptswebkitpyportios_unittestpy">trunk/Tools/Scripts/webkitpy/port/ios_unittest.py</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (214541 => 214542)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2017-03-29 17:17:49 UTC (rev 214541)
+++ trunk/Tools/ChangeLog        2017-03-29 17:22:02 UTC (rev 214542)
</span><span class="lines">@@ -1,3 +1,30 @@
</span><ins>+2017-03-29  Jonathan Bedard  &lt;jbedard@apple.com&gt;
+
+        webkitpy: Add IOSDevicePort and IOSPort tests
+        https://bugs.webkit.org/show_bug.cgi?id=170206
+        &lt;rdar://problem/31308364&gt;
+
+        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.
+
</ins><span class="cx"> 2017-03-28  Jason Marcell  &lt;jmarcell@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix `index-expected.txt` for dashboard test results.
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpyportdarwin_testcasepy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/port/darwin_testcase.py (214541 => 214542)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -21,7 +21,6 @@
</span><span class="cx"> # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx"> 
</span><span class="cx"> from webkitpy.port import port_testcase
</span><del>-from webkitpy.common.system.filesystem_mock import MockFileSystem
</del><span class="cx"> from webkitpy.common.system.outputcapture import OutputCapture
</span><span class="cx"> from webkitpy.tool.mocktool import MockOptions
</span><span class="cx"> from webkitpy.common.system.executive_mock import MockExecutive, MockExecutive2, MockProcess, ScriptError
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpyportios_device_unittestpy"></a>
<div class="addfile"><h4>Added: trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py (0 => 214542)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+# 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())
</ins></span></pre></div>
<a id="trunkToolsScriptswebkitpyportios_simulator_unittestpyfromrev214541trunkToolsScriptswebkitpyportios_unittestpy"></a>
<div class="copfile"><h4>Copied: trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py (from rev 214541, trunk/Tools/Scripts/webkitpy/port/ios_unittest.py) (0 => 214542)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,96 @@
</span><ins>+# 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(&quot;MOCK script error&quot;)
+
+        port = self.make_port()
+        port._executive = MockExecutive2(run_command_fn=throwing_run_command)
+        expected_stdout = &quot;['xcrun', '--sdk', 'iphonesimulator', '-find', 'test']\n&quot;
+        OutputCapture().assert_outputs(self, port.xcrun_find, args=['test', 'falling'], expected_stdout=expected_stdout)
</ins></span></pre></div>
<a id="trunkToolsScriptswebkitpyportios_testcasepy"></a>
<div class="addfile"><h4>Added: trunk/Tools/Scripts/webkitpy/port/ios_testcase.py (0 => 214542)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+# 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')
</ins></span></pre></div>
<a id="trunkToolsScriptswebkitpyportios_unittestpy"></a>
<div class="delfile"><h4>Deleted: trunk/Tools/Scripts/webkitpy/port/ios_unittest.py (214541 => 214542)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -1,99 +0,0 @@
</span><del>-# 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(&quot;MOCK script error&quot;)
-
-        port = self.make_port()
-        port._executive = MockExecutive2(run_command_fn=throwing_run_command)
-        expected_stdout = &quot;['xcrun', '--sdk', 'iphonesimulator', '-find', 'test']\n&quot;
-        OutputCapture().assert_outputs(self, port.xcrun_find, args=['test', 'falling'], expected_stdout=expected_stdout)
</del></span></pre></div>
<a id="trunkToolsScriptswebkitpyportport_testcasepy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/port/port_testcase.py (214541 => 214542)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">     os_version = None
</span><span class="cx">     port_maker = TestWebKitPort
</span><span class="cx">     port_name = None
</span><del>-    is_simulator = False
</del><ins>+    disable_setup = False
</ins><span class="cx"> 
</span><span class="cx">     def make_port(self, host=None, port_name=None, options=None, os_name=None, os_version=None, **kwargs):
</span><span class="cx">         host = host or MockSystemHost(os_name=(os_name or self.os_name), os_version=(os_version or self.os_version))
</span><span class="lines">@@ -252,8 +252,8 @@
</span><span class="cx">             self.proc = MockServerProcess(port, nm, cmd, env, lines=['diff: 100% failed\n', 'diff: 100% failed\n'])
</span><span class="cx">             return self.proc
</span><span class="cx"> 
</span><del>-        # FIXME: Can't pretend to run a simulator's setup, so just skip this test.
-        if self.is_simulator:
</del><ins>+        # FIXME: Can't pretend to run setup for some ports, so just skip this test.
+        if self.disable_setup:
</ins><span class="cx">             return
</span><span class="cx"> 
</span><span class="cx">         port._server_process_constructor = make_proc
</span><span class="lines">@@ -279,8 +279,8 @@
</span><span class="cx">             self.proc = MockServerProcess(port, nm, cmd, env, crashed=True)
</span><span class="cx">             return self.proc
</span><span class="cx"> 
</span><del>-        # FIXME: Can't pretend to run a simulator's setup, so just skip this test.
-        if self.is_simulator:
</del><ins>+        # FIXME: Can't pretend to run setup for some ports, so just skip this test.
+        if self.disable_setup:
</ins><span class="cx">             return
</span><span class="cx"> 
</span><span class="cx">         port._server_process_constructor = make_proc
</span></span></pre>
</div>
</div>

</body>
</html>