[llvm] r357789 - lit: make rm python 3 friendly (NFC)

Saleem Abdulrasool via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 5 11:00:49 PDT 2019


Author: compnerd
Date: Fri Apr  5 11:00:49 2019
New Revision: 357789

URL: http://llvm.org/viewvc/llvm-project?rev=357789&view=rev
Log:
lit: make rm python 3 friendly (NFC)

Add some alterations for python 3 compatibility.

Modified:
    llvm/trunk/utils/lit/lit/TestRunner.py
    llvm/trunk/utils/lit/lit/util.py

Modified: llvm/trunk/utils/lit/lit/TestRunner.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/TestRunner.py?rev=357789&r1=357788&r2=357789&view=diff
==============================================================================
--- llvm/trunk/utils/lit/lit/TestRunner.py (original)
+++ llvm/trunk/utils/lit/lit/TestRunner.py Fri Apr  5 11:00:49 2019
@@ -617,10 +617,10 @@ def executeBuiltinRm(cmd, cmd_shenv):
                     # NOTE: use ctypes to access `SHFileOperationsW` on Windows to
                     # use the NT style path to get access to long file paths which
                     # cannot be removed otherwise.
-                    from ctypes.wintypes import BOOL, HWND, LPCWSTR, POINTER, UINT, WORD
-                    from ctypes import c_void_p, byref
+                    from ctypes.wintypes import BOOL, HWND, LPCWSTR, UINT, WORD
+                    from ctypes import addressof, byref, c_void_p, create_unicode_buffer
                     from ctypes import Structure
-                    from ctypes import windll, WinError
+                    from ctypes import windll, WinError, POINTER
 
                     class SHFILEOPSTRUCTW(Structure):
                         _fields_ = [
@@ -634,7 +634,7 @@ def executeBuiltinRm(cmd, cmd_shenv):
                                 ('lpszProgressTitle', LPCWSTR),
                         ]
 
-                    FO_MOVE, FO_COPY, FO_DELETE, FO_RENAME = xrange(1, 5)
+                    FO_MOVE, FO_COPY, FO_DELETE, FO_RENAME = range(1, 5)
 
                     FOF_SILENT = 4
                     FOF_NOCONFIRMATION = 16
@@ -648,8 +648,10 @@ def executeBuiltinRm(cmd, cmd_shenv):
 
                     path = os.path.abspath(path)
 
+                    pFrom = create_unicode_buffer(path, len(path) + 2)
+                    pFrom[len(path)] = pFrom[len(path) + 1] = '\0'
                     operation = SHFILEOPSTRUCTW(wFunc=UINT(FO_DELETE),
-                                                pFrom=LPCWSTR(unicode(path + '\0')),
+                                                pFrom=LPCWSTR(addressof(pFrom)),
                                                 fFlags=FOF_NO_UI)
                     result = SHFileOperationW(byref(operation))
                     if result:

Modified: llvm/trunk/utils/lit/lit/util.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/util.py?rev=357789&r1=357788&r2=357789&view=diff
==============================================================================
--- llvm/trunk/utils/lit/lit/util.py (original)
+++ llvm/trunk/utils/lit/lit/util.py Fri Apr  5 11:00:49 2019
@@ -149,7 +149,7 @@ def mkdir(path):
             from ctypes import GetLastError, WinError
 
             path = os.path.abspath(path)
-            NTPath = unicode(r'\\?\%s' % path)
+            NTPath = to_unicode(r'\\?\%s' % path)
             if not windll.kernel32.CreateDirectoryW(NTPath, None):
                 raise WinError(GetLastError())
         else:




More information about the llvm-commits mailing list