Changeset 251808 in webkit
- Timestamp:
- Oct 30, 2019 2:56:56 PM (5 years ago)
- Location:
- trunk/Tools
- Files:
-
- 2 deleted
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r251793 r251808 1 2019-10-30 Jonathan Bedard <jbedard@apple.com> 2 3 Python 3: Add support in webkitpy.port 4 https://bugs.webkit.org/show_bug.cgi?id=203489 5 6 Reviewed by Dewei Zhu. 7 8 * Scripts/test-webkitpy-python3: Add webkitpy.port. 9 * Scripts/webkitpy/common/newstringio.py: Removed. 10 * Scripts/webkitpy/common/newstringio_unittest.py: Removed. 11 * Scripts/webkitpy/common/system/executive_mock.py: 12 (MockProcess.__init__): Ensure that stdout and stderr are byte arrays. 13 * Scripts/webkitpy/common/version.py: 14 (Version.__hash__): Add hash function for Version objects. 15 * Scripts/webkitpy/port/base.py: 16 (Port.default_baseline_search_path): Convert list to map. 17 (Port.diff_text): Decode for the native string type. 18 (Port.skipped_perf_tests): Convert filter to list. 19 (Port._run_script): No need to decode strings in Python 3, even if decode_output is set. 20 (Port.diff_text.to_raw_bytes): Deleted. 21 * Scripts/webkitpy/port/base_unittest.py: 22 (cmp): Add cmp function for Python 3 comparisons. 23 (PortTest.test_diff_text): Do not escape spaces. 24 (PortTest.test_parse_reftest_list): Write to test file explicitly. 25 * Scripts/webkitpy/port/builders_unittest.py: Use full import path. 26 * Scripts/webkitpy/port/config_standalone.py: script_dir was refering to Tools, 27 not Tools/Scripts. 28 * Scripts/webkitpy/port/config_unittest.py: Use full import path. 29 * Scripts/webkitpy/port/darwin.py: 30 (DarwinPort.show_results_html_file): Use os.devnull directly. 31 * Scripts/webkitpy/port/driver_unittest.py: 32 (DriverTest.test_read_base64_block): Explicitly compare against byte array. 33 (DriverTest.test_setup_environ_base_vars): Convert iterators to lists. 34 * Scripts/webkitpy/port/factory.py: 35 (PortFactory.get.in): Imports need to use the full import path. 36 * Scripts/webkitpy/port/gtk.py: 37 (GtkPort.default_baseline_search_path): Convert map to list. 38 * Scripts/webkitpy/port/leakdetector.py: 39 (LeakDetector._parse_leaks_output): Search byte array with byte array. 40 * Scripts/webkitpy/port/leakdetector_valgrind.py: 41 (ValgrindError.__str__): Split byte array with byte array. 42 (ValgrindError.error_hash): Correct regex. 43 (LeakDetectorValgrind._parse_leaks_output): Convert bytes to string. 44 (LeakDetectorValgrind.parse_and_print_leaks_detail): Standardize Python 2 and 3 sorting order. 45 * Scripts/webkitpy/port/leakdetector_valgrind_unittest.py: Make unit tests Python 3 compatible. 46 * Scripts/webkitpy/port/linux_get_crash_log.py: 47 (GDBCrashLogGenerator._get_trace_from_systemd): Modernize exception handling. 48 (GDBCrashLogGenerator.generate_crash_log): No need to decode strings in Python 3. 49 * Scripts/webkitpy/port/mac.py: 50 (MacPort.start_helper): is_ready will be a byte array. 51 (MacPort.stop_helper): stdin will be a byte array. 52 * Scripts/webkitpy/port/mock_drt_unittest.py: 53 (MockDRTTest.assertTest): Use unicode compatible StringIO objects. 54 (MockDRTTest.test_main): Ditto. 55 * Scripts/webkitpy/port/port_testcase.py: 56 (bind_mock_apple_additions.MockAppleAdditions.version_name_mapping): Use items instead of iteritems. 57 (PortTestCase.test_expectations_ordering): Convert iterator to list. 58 (PortTestCase.test_test_expectations): Ditto. 59 * Scripts/webkitpy/port/win.py: 60 (WinPort.__init__): 61 (WinPort.default_baseline_search_path): Convert map to list. 62 (WinPort.test_search_path): Ditto. 63 (WinPort.setup_crash_log_saving): Use items instead of iteritems. 64 (WinPort.restore_crash_log_saving): Ditto. 65 (WinPort.prevent_error_dialogs): Ditto. 66 (WinPort.allow_error_dialogs): Ditto. 67 (WinCairoPort.default_baseline_search_path): Convert map to list. 68 (WinCairoPort._port_specific_expectations_files): Ditto. 69 (FTWPort.default_baseline_search_path): Ditto. 70 (FTWPort._port_specific_expectations_files): Ditto. 71 * Scripts/webkitpy/port/win_unittest.py: Ditto. 72 (WinPortTest._assert_search_path): Ditto. 73 * Scripts/webkitpy/port/wpe.py: 74 (WPEPort.default_baseline_search_path): Convert map to list. 75 (WPEPort._port_specific_expectations_files): Ditto. 76 1 77 2019-10-30 Jonathan Bedard <jbedard@apple.com> 2 78 -
trunk/Tools/Scripts/test-webkitpy-python3
r251613 r251808 41 41 'webkitpy.common.net', 42 42 'webkitpy.common.watchlist', 43 'webkitpy.port', 43 44 'webkitpy.results', 44 45 'webkitpy.xcode', -
trunk/Tools/Scripts/webkitpy/common/system/executive_mock.py
r250375 r251808 30 30 import os 31 31 32 from webkitpy.common.unicode_compatibility import BytesIO, unicode32 from webkitpy.common.unicode_compatibility import BytesIO, encode_if_necessary, unicode 33 33 from webkitpy.common.system.executive import ScriptError 34 34 … … 39 39 def __init__(self, stdout='MOCK STDOUT\n', stderr=''): 40 40 self.pid = 42 41 self.stdout = BytesIO( stdout)42 self.stderr = BytesIO( stderr)41 self.stdout = BytesIO(encode_if_necessary(stdout)) 42 self.stderr = BytesIO(encode_if_necessary(stderr)) 43 43 self.stdin = BytesIO() 44 44 self.returncode = 0 -
trunk/Tools/Scripts/webkitpy/common/version.py
r250375 r251808 117 117 return result 118 118 119 def __hash__(self): 120 return hash(str(self)) 121 119 122 def __cmp__(self, other): 120 123 if other is None: -
trunk/Tools/Scripts/webkitpy/port/base.py
r251020 r251808 52 52 from webkitpy.common.wavediff import WaveDiff 53 53 from webkitpy.common.webkit_finder import WebKitFinder 54 from webkitpy.common.unicode_compatibility import encode_for, encode_if_necessary, decode_for 54 55 from webkitpy.layout_tests.models.test_configuration import TestConfiguration 55 56 from webkitpy.port import config as port_config … … 223 224 if self.name() != self.port_name: 224 225 search_paths.append(self.port_name) 225 return map(self._webkit_baseline_path, search_paths)226 return list(map(self._webkit_baseline_path, search_paths)) 226 227 227 228 @memoized … … 341 342 """Returns a string containing the diff of the two text strings 342 343 in 'unified diff' format.""" 343 344 # The filenames show up in the diff output, make sure they're 345 # raw bytes and not unicode, so that they don't trigger join() 346 # trying to decode the input. 347 def to_raw_bytes(string_value): 348 if isinstance(string_value, unicode): 349 return string_value.encode('utf-8') 350 return string_value 351 expected_filename = to_raw_bytes(expected_filename) 352 actual_filename = to_raw_bytes(actual_filename) 344 expected_filename = decode_for(encode_if_necessary(expected_filename), str) 345 actual_filename = decode_for(encode_if_necessary(actual_filename), str) 353 346 diff = difflib.unified_diff(expected_text.splitlines(True), 354 347 actual_text.splitlines(True), … … 359 352 result += line 360 353 if not line.endswith('\n'): 361 result += '\n \No newline at end of file\n'354 result += '\n No newline at end of file\n' 362 355 return result 363 356 … … 765 758 _log.error("Syntax error at line %d in %s: %s" % (line_number + 1, filename, line)) 766 759 else: 767 platform_names = filter(lambda token: token, match.group('platforms').lower().split(' ')) if match.group('platforms') else []760 platform_names = list(filter(lambda token: token, match.group('platforms').lower().split(' '))) if match.group('platforms') else [] 768 761 test_name = match.group('test') 769 762 if test_name and (not platform_names or self.port_name in platform_names or self._name in platform_names): … … 1493 1486 run_script_command.extend(args) 1494 1487 output = self._executive.run_command(run_script_command, cwd=self.webkit_base(), decode_output=decode_output, env=env) 1495 _log.debug('Output of %s:\n%s' % (run_script_command, output.encode('utf-8') if decode_output else output))1488 _log.debug('Output of %s:\n%s' % (run_script_command, encode_for(output, str) if decode_output else output)) 1496 1489 return output 1497 1490 -
trunk/Tools/Scripts/webkitpy/port/base_unittest.py
r241318 r251808 42 42 43 43 44 def cmp(a, b): 45 return (a > b) - (a < b) 46 44 47 class PortTest(unittest.TestCase): 45 48 def make_port(self, executive=None, with_tests=False, port_name=None, **kwargs): … … 106 109 t1 = "A\n\nB" 107 110 t2 = "A\n\nB\n\n\n" 108 t3 = "--- exp.txt\n+++ act.txt\n@@ -1,3 +1,5 @@\n A\n \n-B\n \No newline at end of file\n+B\n+\n+\n"111 t3 = "--- exp.txt\n+++ act.txt\n@@ -1,3 +1,5 @@\n A\n \n-B\n No newline at end of file\n+B\n+\n+\n" 109 112 self.assertEqual(t3, port.diff_text(t1, t2, 'exp.txt', 'act.txt')) 110 113 … … 289 292 def test_parse_reftest_list(self): 290 293 port = self.make_port(with_tests=True) 291 port.host.filesystem.files['bar/reftest.list'] = "\n".join(["== test.html test-ref.html", 292 "", 293 "# some comment", 294 "!= test-2.html test-notref.html # more comments", 295 "== test-3.html test-ref.html", 296 "== test-3.html test-ref2.html", 297 "!= test-3.html test-notref.html"]) 294 port.host.filesystem.write_text_file( 295 'bar/reftest.list', 296 "\n".join([ 297 "== test.html test-ref.html", 298 "", 299 "# some comment", 300 "!= test-2.html test-notref.html # more comments", 301 "== test-3.html test-ref.html", 302 "== test-3.html test-ref2.html", 303 "!= test-3.html test-notref.html", 304 ]), 305 ) 298 306 299 307 reftest_list = Port._parse_reftest_list(port.host.filesystem, 'bar') -
trunk/Tools/Scripts/webkitpy/port/builders_unittest.py
r174136 r251808 27 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 28 29 import builders30 29 import unittest 30 import webkitpy.port.builders as builders 31 31 32 32 -
trunk/Tools/Scripts/webkitpy/port/config_standalone.py
r225698 r251808 40 40 this_dir = os.path.abspath(sys.path[0]) 41 41 up = os.path.dirname 42 script_dir = up(up( up(this_dir)))42 script_dir = up(up(this_dir)) 43 43 if script_dir not in sys.path: 44 44 sys.path.append(script_dir) -
trunk/Tools/Scripts/webkitpy/port/config_unittest.py
r246159 r251808 38 38 from webkitpy.common.webkit_finder import WebKitFinder 39 39 40 import config40 import webkitpy.port.config as config 41 41 42 42 -
trunk/Tools/Scripts/webkitpy/port/darwin.py
r249151 r251808 86 86 # launching the browser. 87 87 self._executive.popen([self.path_to_script('run-safari')] + self._arguments_for_configuration() + ['--no-saved-state', '-NSOpen', results_filename], 88 cwd=self.webkit_base(), stdout= file(os.devnull), stderr=file(os.devnull))88 cwd=self.webkit_base(), stdout=os.devnull, stderr=os.devnull) 89 89 90 90 @memoized -
trunk/Tools/Scripts/webkitpy/port/driver_unittest.py
r247682 r251808 203 203 self.assertEqual(content_block.encoding, 'base64') 204 204 self.assertEqual(content_block.content, 'MTIzNDU2NzgK') 205 self.assertEqual(content_block.decoded_content, '12345678\n')205 self.assertEqual(content_block.decoded_content, b'12345678\n') 206 206 207 207 def test_no_timeout(self): … … 369 369 'WAYLAND_SOCKET': 'wayland-socket-0', 370 370 'GDK_BACKEND': 'x11'} 371 environment_user = dict( environ_keep_yes.items() + environ_keep_no.items())371 environment_user = dict(list(environ_keep_yes.items()) + list(environ_keep_no.items())) 372 372 with patch('os.environ', environment_user): 373 373 port = self.make_port() -
trunk/Tools/Scripts/webkitpy/port/factory.py
r250121 r251808 137 137 for port_class in self.PORT_CLASSES: 138 138 module_name, class_name = port_class.rsplit('.', 1) 139 module = __import__(module_name, globals(), locals(), [], -1) 140 cls = module.__dict__[class_name] 141 classes.append(cls) 139 module = __import__('webkitpy.port.{}'.format(module_name), globals(), locals(), [], 0) 140 cls = module.__dict__.get('port').__dict__.get(module_name).__dict__.get(class_name) 141 if cls: 142 classes.append(cls) 142 143 if config.apple_additions() and hasattr(config.apple_additions(), 'ports'): 143 144 classes += config.apple_additions().ports() -
trunk/Tools/Scripts/webkitpy/port/gtk.py
r251661 r251808 212 212 213 213 def default_baseline_search_path(self, **kwargs): 214 return map(self._webkit_baseline_path, self._search_paths())214 return list(map(self._webkit_baseline_path, self._search_paths())) 215 215 216 216 def _port_specific_expectations_files(self, **kwargs): -
trunk/Tools/Scripts/webkitpy/port/leakdetector.py
r243559 r251808 32 32 33 33 from webkitpy.common.system.executive import ScriptError 34 from webkitpy.common.unicode_compatibility import encode_if_necessary 34 35 35 36 _log = logging.getLogger(__name__) … … 79 80 if not leaks_output: 80 81 return 0, 0, 0 81 _, count, bytes = re.search(r'Process (?P<pid>\d+): (?P<count>\d+) leaks? for (?P<bytes>\d+) total', leaks_output).groups() 82 excluded_match = re.search(r'(?P<excluded>\d+) leaks? excluded', leaks_output) 82 leaks_output = encode_if_necessary(leaks_output) 83 _, count, bytes = re.search(b'Process (?P<pid>\\d+): (?P<count>\\d+) leaks? for (?P<bytes>\\d+) total', leaks_output).groups() 84 excluded_match = re.search(b'(?P<excluded>\\d+) leaks? excluded', leaks_output) 83 85 excluded = excluded_match.group('excluded') if excluded_match else 0 84 86 return int(count), int(excluded), int(bytes) -
trunk/Tools/Scripts/webkitpy/port/leakdetector_valgrind.py
r225733 r251808 35 35 from xml.dom.minidom import parseString 36 36 from xml.parsers.expat import ExpatError 37 38 from webkitpy.common.unicode_compatibility import encode_if_necessary, decode_for 37 39 38 40 _log = logging.getLogger(__name__) … … 128 130 buf += (frame[FUNCTION_NAME] or frame[INSTRUCTION_POINTER]) + "\n" 129 131 130 input = buf.encode('latin-1').split( "\n")132 input = buf.encode('latin-1').split(b"\n") 131 133 demangled_names = [self._executive.run_command(['c++filt', '-n', name]) for name in input if name] 132 134 … … 173 175 for frame in range(len(supplines)): 174 176 # Replace the always-changing anonymous namespace prefix with "*". 175 m = re.match( "( +fun:)_ZN.*_GLOBAL__N_.*\.cc_" +176 "[0-9a-fA-F]{8}_[0-9a-fA-F]{8}(.*)",177 supplines[frame])177 m = re.match(r"( +fun:)_ZN.*_GLOBAL__N_.*\.cc_" + 178 "[0-9a-fA-F]{8}_[0-9a-fA-F]{8}(.*)", 179 supplines[frame]) 178 180 if m: 179 181 supplines[frame] = "*".join(m.groups()) … … 197 199 # By printing out this hash we can find duplicate reports between tests and 198 200 # different shards running on multiple buildbots 199 return int(hashlib.md5( self.unique_string()).hexdigest()[:16], 16)201 return int(hashlib.md5(encode_if_necessary(self.unique_string())).hexdigest()[:16], 16) 200 202 201 203 def __hash__(self): … … 223 225 except ExpatError as e: 224 226 parse_failed = True 225 _log.error("could not parse %s: %s" % ( leaks_output, e))227 _log.error("could not parse %s: %s" % (decode_for(leaks_output, str), e)) 226 228 return 227 229 … … 284 286 _log.info("Suppressions used:") 285 287 _log.info(" count name") 286 for (name, count) in sorted(self._suppressions.items(), key=lambda (k, v): (v, k)):288 for (name, count) in sorted(self._suppressions.items(), key=lambda pair: (pair[1], pair[0])): 287 289 _log.info("%7d %s" % (count, name)) 288 290 _log.info("-----------------------------------------------------") … … 290 292 if self._errors: 291 293 _log.info("Valgrind detected %s leaks:" % len(self._errors)) 292 for leak in self._errors: 294 # Force the same order in Python 2 and Python 3 295 for leak in sorted(self._errors, key=lambda error: error.unique_string()): 293 296 _log.info(leak) -
trunk/Tools/Scripts/webkitpy/port/leakdetector_valgrind_unittest.py
r174136 r251808 30 30 from webkitpy.common.system.filesystem_mock import MockFileSystem 31 31 from webkitpy.common.system.outputcapture import OutputCapture 32 from webkitpy.common.unicode_compatibility import decode_for 32 33 from webkitpy.port.leakdetector_valgrind import LeakDetectorValgrind 33 34 … … 620 621 Valgrind detected 2 leaks: 621 622 Leak_DefinitelyLost 622 8 bytes in 1 blocks are definitely lost in loss record 421 of 7,972623 operator new(unsigned long) (/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)624 std::_Function_base::_Base_manager<WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, void (*)(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool), void*)::{lambda(WebCore::PolicyAction)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, void (*)(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool), void*)::{lambda(WebCore::PolicyAction)#1}> const&, std::_Manager_operation) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3)625 webkit_web_policy_decision_new (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3)626 WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction(WebCore::NavigationAction const&, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, std::function<void (WebCore::PolicyAction)>) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3)627 WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, void (*)(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool), void*) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3)628 WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3)629 WebCore::FrameLoader::load(WebCore::DocumentLoader*) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3)630 WebCore::FrameLoader::load(WebCore::FrameLoadRequest const&) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3)631 webkit_web_frame_load_uri (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3)632 runTest(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/home/user/WebKit/WebKitBuild/Release/Programs/DumpRenderTree)633 runTestingServerLoop() (/home/user/WebKit/WebKitBuild/Release/Programs/DumpRenderTree)634 main (/home/user/WebKit/WebKitBuild/Release/Programs/DumpRenderTree)635 Suppression (error hash=#0449D3ED253FE1F9#):636 637 {638 <insert_a_suppression_name_here>639 Memcheck:Leak640 fun:_Znw*641 fun:_ZNSt14_Function_base13_Base_managerIZN7WebCore13PolicyChecker21checkNavigationPolicyERKNS1_15ResourceRequestEPNS1_14DocumentLoaderEN3WTF10PassRefPtrINS1_9FormStateEEEPFvPvS5_SB_bESC_EUlNS1_12PolicyActionEE_E10_M_managerERSt9_Any_dataRKSI_St18_Manager_operation642 fun:webkit_web_policy_decision_new643 fun:_ZN6WebKit17FrameLoaderClient39dispatchDecidePolicyForNavigationActionERKN7WebCore16NavigationActionERKNS1_15ResourceRequestEN3WTF10PassRefPtrINS1_9FormStateEEESt8functionIFvNS1_12PolicyActionEEE644 fun:_ZN7WebCore13PolicyChecker21checkNavigationPolicyERKNS_15ResourceRequestEPNS_14DocumentLoaderEN3WTF10PassRefPtrINS_9FormStateEEEPFvPvS3_S9_bESA_645 fun:_ZN7WebCore11FrameLoader22loadWithDocumentLoaderEPNS_14DocumentLoaderENS_13FrameLoadTypeEN3WTF10PassRefPtrINS_9FormStateEEE646 fun:_ZN7WebCore11FrameLoader4loadEPNS_14DocumentLoaderE647 fun:_ZN7WebCore11FrameLoader4loadERKNS_16FrameLoadRequestE648 fun:webkit_web_frame_load_uri649 fun:_ZL7runTestRKSs650 fun:_ZL20runTestingServerLoopv651 fun:main652 }653 654 655 Leak_DefinitelyLost656 623 8 bytes in 1 blocks are definitely lost in loss record 422 of 7,972 657 624 operator new(unsigned long) (/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) … … 693 660 fun:g_main_loop_run 694 661 fun:gtk_main 662 fun:_ZL7runTestRKSs 663 fun:_ZL20runTestingServerLoopv 664 fun:main 665 } 666 667 668 Leak_DefinitelyLost 669 8 bytes in 1 blocks are definitely lost in loss record 421 of 7,972 670 operator new(unsigned long) (/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) 671 std::_Function_base::_Base_manager<WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, void (*)(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool), void*)::{lambda(WebCore::PolicyAction)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, void (*)(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool), void*)::{lambda(WebCore::PolicyAction)#1}> const&, std::_Manager_operation) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3) 672 webkit_web_policy_decision_new (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3) 673 WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction(WebCore::NavigationAction const&, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, std::function<void (WebCore::PolicyAction)>) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3) 674 WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, void (*)(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool), void*) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3) 675 WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3) 676 WebCore::FrameLoader::load(WebCore::DocumentLoader*) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3) 677 WebCore::FrameLoader::load(WebCore::FrameLoadRequest const&) (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3) 678 webkit_web_frame_load_uri (/home/user/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0.19.3) 679 runTest(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/home/user/WebKit/WebKitBuild/Release/Programs/DumpRenderTree) 680 runTestingServerLoop() (/home/user/WebKit/WebKitBuild/Release/Programs/DumpRenderTree) 681 main (/home/user/WebKit/WebKitBuild/Release/Programs/DumpRenderTree) 682 Suppression (error hash=#0449D3ED253FE1F9#): 683 684 { 685 <insert_a_suppression_name_here> 686 Memcheck:Leak 687 fun:_Znw* 688 fun:_ZNSt14_Function_base13_Base_managerIZN7WebCore13PolicyChecker21checkNavigationPolicyERKNS1_15ResourceRequestEPNS1_14DocumentLoaderEN3WTF10PassRefPtrINS1_9FormStateEEEPFvPvS5_SB_bESC_EUlNS1_12PolicyActionEE_E10_M_managerERSt9_Any_dataRKSI_St18_Manager_operation 689 fun:webkit_web_policy_decision_new 690 fun:_ZN6WebKit17FrameLoaderClient39dispatchDecidePolicyForNavigationActionERKN7WebCore16NavigationActionERKNS1_15ResourceRequestEN3WTF10PassRefPtrINS1_9FormStateEEESt8functionIFvNS1_12PolicyActionEEE 691 fun:_ZN7WebCore13PolicyChecker21checkNavigationPolicyERKNS_15ResourceRequestEPNS_14DocumentLoaderEN3WTF10PassRefPtrINS_9FormStateEEEPFvPvS3_S9_bESA_ 692 fun:_ZN7WebCore11FrameLoader22loadWithDocumentLoaderEPNS_14DocumentLoaderENS_13FrameLoadTypeEN3WTF10PassRefPtrINS_9FormStateEEE 693 fun:_ZN7WebCore11FrameLoader4loadEPNS_14DocumentLoaderE 694 fun:_ZN7WebCore11FrameLoader4loadERKNS_16FrameLoadRequestE 695 fun:webkit_web_frame_load_uri 695 696 fun:_ZL7runTestRKSs 696 697 fun:_ZL20runTestingServerLoopv … … 808 809 def mock_run_cppfilt_command(args): 809 810 if args[0] == 'c++filt': 810 return valgrind_output_cppfilt_map[ args[2]]811 return valgrind_output_cppfilt_map[decode_for(args[2], str)] 811 812 return "" 812 813 -
trunk/Tools/Scripts/webkitpy/port/linux_get_crash_log.py
r233411 r251808 37 37 38 38 from webkitpy.common.system.executive import ScriptError 39 from webkitpy.common.unicode_compatibility import decode_if_necessary 39 40 40 41 … … 76 77 info = self._executive.run_command(coredumpctl + ['info', "--since=" + time.strftime("%a %Y-%m-%d %H:%M:%S %Z", time.localtime(self.newer_than))], 77 78 return_stderr=True) 78 except ScriptError, OSError:79 except (ScriptError, OSError): 79 80 continue 80 81 … … 130 131 crash_log, errors = self._get_trace_from_systemd(coredumpctl, pid_representation) 131 132 132 stderr_lines = errors + str(stderr or '<empty>').decode('utf8','ignore').splitlines()133 stderr_lines = errors + decode_if_necessary(str(stderr or '<empty>'), errors='ignore').splitlines() 133 134 errors_str = '\n'.join(('STDERR: ' + stderr_line) for stderr_line in stderr_lines) 134 135 cppfilt_proc = self._executive.popen( -
trunk/Tools/Scripts/webkitpy/port/mac.py
r251020 r251808 223 223 stdin=self._executive.PIPE, stdout=self._executive.PIPE, stderr=None) 224 224 is_ready = self._helper.stdout.readline() 225 if not is_ready.startswith( 'ready'):225 if not is_ready.startswith(b'ready'): 226 226 _log.error("LayoutTestHelper could not start") 227 227 return False … … 243 243 _log.debug("Stopping LayoutTestHelper") 244 244 try: 245 self._helper.stdin.write( "x\n")245 self._helper.stdin.write(b"x\n") 246 246 self._helper.stdin.close() 247 247 self._helper.wait() -
trunk/Tools/Scripts/webkitpy/port/mock_drt_unittest.py
r246326 r251808 32 32 import unittest 33 33 34 from webkitpy.common import newstringio35 34 from webkitpy.common.system.systemhost_mock import MockSystemHost 35 from webkitpy.common.unicode_compatibility import StringIO 36 36 from webkitpy.port import mock_drt 37 37 from webkitpy.port import port_testcase … … 147 147 148 148 args = ['--platform', port_name] + self.extra_args(pixel_tests) 149 stdin = newstringio.StringIO(drt_input)150 stdout = newstringio.StringIO()151 stderr = newstringio.StringIO()149 stdin = StringIO(drt_input) 150 stdout = StringIO() 151 stderr = StringIO() 152 152 options, args = mock_drt.parse_options(args) 153 153 … … 157 157 self.assertEqual(res, 0) 158 158 159 # We use the StringIO.buflist here instead of getvalue() because 160 # the StringIO might be a mix of unicode/ascii and 8-bit strings. 161 self.assertEqual(stdout.buflist, drt_output) 159 self.assertEqual(stdout.getvalue(), ''.join(drt_output)) 162 160 self.assertEqual(stderr.getvalue(), '#EOF\n') 163 161 … … 165 163 host = MockSystemHost() 166 164 test.add_unit_tests_to_mock_filesystem(host.filesystem) 167 stdin = newstringio.StringIO()168 stdout = newstringio.StringIO()169 stderr = newstringio.StringIO()165 stdin = StringIO() 166 stdout = StringIO() 167 stderr = StringIO() 170 168 res = mock_drt.main(['--platform', 'test'] + self.extra_args(False), 171 169 host, stdin, stdout, stderr) -
trunk/Tools/Scripts/webkitpy/port/port_testcase.py
r250330 r251808 90 90 for platform in result.mapping[PUBLIC_TABLE]: 91 91 result.mapping[INTERNAL_TABLE][platform] = {} 92 for name, version in result.mapping[PUBLIC_TABLE][platform].ite ritems():92 for name, version in result.mapping[PUBLIC_TABLE][platform].items(): 93 93 result.mapping[INTERNAL_TABLE][platform]['add-' + name] = version 94 94 return result … … 470 470 port._filesystem.write_text_file(path, '') 471 471 ordered_dict = port.expectations_dict() 472 self.assertEqual(port.path_to_generic_test_expectations_file(), ordered_dict.keys()[0])473 self.assertEqual(port.path_to_test_expectations_file(), ordered_dict.keys()[port.test_expectations_file_position()])472 self.assertEqual(port.path_to_generic_test_expectations_file(), list(ordered_dict.keys())[0]) 473 self.assertEqual(port.path_to_test_expectations_file(), list(ordered_dict.keys())[port.test_expectations_file_position()]) 474 474 475 475 options = MockOptions(additional_expectations=['/tmp/foo', '/tmp/bar']) … … 480 480 port._filesystem.write_text_file('/tmp/bar', 'bar') 481 481 ordered_dict = port.expectations_dict() 482 self.assertEqual( ordered_dict.keys()[-2:], options.additional_expectations) # pylint: disable=E1101483 self.assertEqual( ordered_dict.values()[-2:], ['foo', 'bar'])482 self.assertEqual(list(ordered_dict.keys())[-2:], options.additional_expectations) # pylint: disable=E1101 483 self.assertEqual(list(ordered_dict.values())[-2:], ['foo', 'bar']) 484 484 485 485 def test_path_to_test_expectations_file(self): … … 532 532 'BUG_TESTEXPECTATIONS SKIP : fast/html/article-element.html = FAIL\n') 533 533 port = TestWebKitPort(host=host) 534 self.assertEqual(''.join( port.expectations_dict().values()), 'BUG_TESTEXPECTATIONS SKIP : fast/html/article-element.html = FAIL\n')534 self.assertEqual(''.join(list(port.expectations_dict().values())), 'BUG_TESTEXPECTATIONS SKIP : fast/html/article-element.html = FAIL\n') 535 535 536 536 def test_build_driver(self): -
trunk/Tools/Scripts/webkitpy/port/win.py
r251661 r251808 92 92 def __init__(self, host, port_name, **kwargs): 93 93 ApplePort.__init__(self, host, port_name, **kwargs) 94 if port_name.split('-') > 1:94 if len(port_name.split('-')) > 1: 95 95 self._os_version = VersionNameMap.map(host.platform).from_name(port_name.split('-')[1])[1] 96 96 else: … … 128 128 # FIXME: Perhaps we should get this list from MacPort? 129 129 fallback_names.append('mac') 130 result = map(self._webkit_baseline_path, fallback_names)130 result = list(map(self._webkit_baseline_path, fallback_names)) 131 131 if apple_additions() and getattr(apple_additions(), "layout_tests_path", None): 132 132 result.insert(0, self._filesystem.join(apple_additions().layout_tests_path(), self.port_name)) … … 206 206 def test_search_path(self, **kwargs): 207 207 test_fallback_names = [path for path in self.baseline_search_path() if not path.startswith(self._webkit_baseline_path('mac'))] 208 return map(self._webkit_baseline_path, test_fallback_names)208 return list(map(self._webkit_baseline_path, test_fallback_names)) 209 209 210 210 def _ntsd_location(self): … … 341 341 debugger_options = '"{0}" -p %ld -e %ld -g -noio -lines -cf "{1}"'.format(cygpath(ntsd_path), cygpath(command_file)) 342 342 registry_settings = {'Debugger': [debugger_options, self._REG_SZ], 'Auto': ["1", self._REG_SZ]} 343 for key, value in registry_settings.ite ritems():343 for key, value in registry_settings.items(): 344 344 for arch in ["--wow32", "--wow64"]: 345 345 self.previous_debugger_values[(arch, self._HKLM, key)] = self.read_registry_value(self.POST_MORTEM_DEBUGGER_KEY, arch, self._HKLM, key) … … 349 349 350 350 def restore_crash_log_saving(self): 351 for key, value in self.previous_debugger_values.ite ritems():351 for key, value in self.previous_debugger_values.items(): 352 352 self.write_registry_value(self.POST_MORTEM_DEBUGGER_KEY, key[0], key[1], key[2], value[1], value[0]) 353 for key, value in self.previous_wow64_debugger_values.ite ritems():353 for key, value in self.previous_wow64_debugger_values.items(): 354 354 self.write_registry_value(self.WOW64_POST_MORTEM_DEBUGGER_KEY, key[0], key[1], key[2], value[1], value[0]) 355 355 356 356 def prevent_error_dialogs(self): 357 357 registry_settings = {'DontShowUI': [1, self._REG_DWORD], 'Disabled': [1, self._REG_DWORD]} 358 for key, value in registry_settings.ite ritems():358 for key, value in registry_settings.items(): 359 359 for root in [self._HKLM, self._HKCU]: 360 360 for arch in ["--wow32", "--wow64"]: … … 365 365 366 366 def allow_error_dialogs(self): 367 for key, value in self.previous_error_reporting_values.ite ritems():367 for key, value in self.previous_error_reporting_values.items(): 368 368 self.write_registry_value(self.WINDOWS_ERROR_REPORTING_KEY, key[0], key[1], key[2], value[1], value[0]) 369 for key, value in self.previous_wow64_error_reporting_values.ite ritems():369 for key, value in self.previous_wow64_error_reporting_values.items(): 370 370 self.write_registry_value(self.WOW64_WINDOWS_ERROR_REPORTING_KEY, key[0], key[1], key[2], value[1], value[0]) 371 371 … … 464 464 465 465 def default_baseline_search_path(self, **kwargs): 466 return map(self._webkit_baseline_path, self._search_paths())466 return list(map(self._webkit_baseline_path, self._search_paths())) 467 467 468 468 def _port_specific_expectations_files(self, **kwargs): 469 return map(lambda x: self._filesystem.join(self._webkit_baseline_path(x), 'TestExpectations'), reversed(self._search_paths()))469 return list(map(lambda x: self._filesystem.join(self._webkit_baseline_path(x), 'TestExpectations'), reversed(self._search_paths()))) 470 470 471 471 def _search_paths(self): … … 508 508 509 509 def default_baseline_search_path(self, **kwargs): 510 return map(self._webkit_baseline_path, self._search_paths())510 return list(map(self._webkit_baseline_path, self._search_paths())) 511 511 512 512 def _port_specific_expectations_files(self, **kwargs): 513 return map(lambda x: self._filesystem.join(self._webkit_baseline_path(x), 'TestExpectations'), reversed(self._search_paths()))513 return list(map(lambda x: self._filesystem.join(self._webkit_baseline_path(x), 'TestExpectations'), reversed(self._search_paths()))) 514 514 515 515 def _search_paths(self): -
trunk/Tools/Scripts/webkitpy/port/win_unittest.py
r245733 r251808 57 57 def _assert_search_path(self, expected_search_paths, version, use_webkit2=False): 58 58 port = self.make_port(port_name='win', os_version=version, options=MockOptions(webkit_test_runner=use_webkit2)) 59 absolute_search_paths = map(port._webkit_baseline_path, expected_search_paths)59 absolute_search_paths = list(map(port._webkit_baseline_path, expected_search_paths)) 60 60 self.assertEqual(port.baseline_search_path(), absolute_search_paths) 61 61 -
trunk/Tools/Scripts/webkitpy/port/wpe.py
r251661 r251808 108 108 109 109 def default_baseline_search_path(self, **kwargs): 110 return map(self._webkit_baseline_path, self._search_paths())110 return list(map(self._webkit_baseline_path, self._search_paths())) 111 111 112 112 def _port_specific_expectations_files(self, **kwargs): 113 return map(lambda x: self._filesystem.join(self._webkit_baseline_path(x), 'TestExpectations'), reversed(self._search_paths()))113 return list(map(lambda x: self._filesystem.join(self._webkit_baseline_path(x), 'TestExpectations'), reversed(self._search_paths()))) 114 114 115 115 def test_expectations_file_position(self):
Note: See TracChangeset
for help on using the changeset viewer.