<!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
<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.</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 <jbedard@apple.com>
+
+ 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.
+
</ins><span class="cx"> 2017-03-28 Jason Marcell <jmarcell@apple.com>
</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("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)
</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("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)
</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>