Modified: trunk/Tools/ChangeLog (293131 => 293132)
--- trunk/Tools/ChangeLog 2022-04-21 00:25:03 UTC (rev 293131)
+++ trunk/Tools/ChangeLog 2022-04-21 00:30:33 UTC (rev 293132)
@@ -1,3 +1,20 @@
+2022-04-20 Ross Kirsling <ross.kirsl...@sony.com>
+
+ [LayoutTests][Win] Tests can fail if long paths are not enabled in registry.
+ https://bugs.webkit.org/show_bug.cgi?id=188092
+
+ Reviewed by Basuke Suzuki.
+
+ Python 3.6 supports long file paths on Windows by default so long as LongPathsEnabled is set in
+ HKLM\System\CurrentControlSet\Control\FileSystem. This patch adds that key to webkitpy's registry editing.
+
+ * Scripts/webkitpy/port/win.py:
+ (WinPort):
+ (WinPort.set_long_paths_enabled): Added.
+ (WinPort.restore_long_paths_enabled): Added.
+ (WinPort.setup_test_run):
+ (WinPort.clean_up_test_run):
+
2022-04-20 Megan Gardner <megan_gard...@apple.com>
Address recent deprecation warnings on iOS.
Modified: trunk/Tools/Scripts/webkitpy/port/win.py (293131 => 293132)
--- trunk/Tools/Scripts/webkitpy/port/win.py 2022-04-21 00:25:03 UTC (rev 293131)
+++ trunk/Tools/Scripts/webkitpy/port/win.py 2022-04-21 00:30:33 UTC (rev 293132)
@@ -75,6 +75,7 @@
WOW64_POST_MORTEM_DEBUGGER_KEY = r'SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug'
WINDOWS_ERROR_REPORTING_KEY = r'SOFTWARE\Microsoft\Windows\Windows Error Reporting'
WOW64_WINDOWS_ERROR_REPORTING_KEY = r'SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting'
+ FILE_SYSTEM_KEY = r'SYSTEM\CurrentControlSet\Control\FileSystem'
_HKLM = _winreg.HKEY_LOCAL_MACHINE
_HKCU = _winreg.HKEY_CURRENT_USER
_REG_DWORD = _winreg.REG_DWORD
@@ -84,6 +85,7 @@
WOW64_POST_MORTEM_DEBUGGER_KEY = "/%s/SOFTWARE/Wow6432Node/Microsoft/Windows NT/CurrentVersion/AeDebug/%s"
WINDOWS_ERROR_REPORTING_KEY = "/%s/SOFTWARE/Microsoft/Windows/Windows Error Reporting/%s"
WOW64_WINDOWS_ERROR_REPORTING_KEY = "/%s/SOFTWARE/Wow6432Node/Microsoft/Windows/Windows Error Reporting/%s"
+ FILE_SYSTEM_KEY = "/%s/SYSTEM/CurrentControlSet/Control/FileSystem/%s"
_HKLM = "HKLM"
_HKCU = "HKCU"
_REG_DWORD = "-d"
@@ -95,6 +97,8 @@
previous_error_reporting_values = {}
previous_wow64_error_reporting_values = {}
+ previous_file_system_values = {}
+
def __init__(self, host, port_name, **kwargs):
ApplePort.__init__(self, host, port_name, **kwargs)
if len(port_name.split('-')) > 1:
@@ -373,6 +377,17 @@
for key, value in self.previous_wow64_error_reporting_values.items():
self.write_registry_value(self.WOW64_WINDOWS_ERROR_REPORTING_KEY, key[0], key[1], key[2], value[1], value[0])
+ def set_long_paths_enabled(self):
+ key = 'LongPathsEnabled'
+ value = [1, self._REG_DWORD]
+ self.previous_file_system_values[key] = self.read_registry_value(self.FILE_SYSTEM_KEY, '--wow64', self._HKLM, key)
+ self.write_registry_value(self.FILE_SYSTEM_KEY, '--wow64', self._HKLM, key, value[1], value[0])
+
+ def restore_long_paths_enabled(self):
+ key = 'LongPathsEnabled'
+ value = self.previous_file_system_values[key]
+ self.write_registry_value(self.FILE_SYSTEM_KEY, '--wow64', self._HKLM, key, value[1], value[0])
+
def delete_sem_locks(self):
if self.is_cygwin():
os.system("rm -rf /dev/shm/sem.*")
@@ -390,11 +405,13 @@
atexit.register(self.restore_crash_log_saving)
self.setup_crash_log_saving()
self.prevent_error_dialogs()
+ self.set_long_paths_enabled()
self.delete_sem_locks()
self.delete_preference_files()
super(WinPort, self).setup_test_run(device_type)
def clean_up_test_run(self):
+ self.restore_long_paths_enabled()
self.allow_error_dialogs()
self.restore_crash_log_saving()
super(WinPort, self).clean_up_test_run()