[llvm-commits] [llvm] r152958 - /llvm/trunk/utils/lit/lit/TestRunner.py
Francois Pichet
pichet2000 at gmail.com
Fri Mar 16 15:50:01 PDT 2012
Author: fpichet
Date: Fri Mar 16 17:50:01 2012
New Revision: 152958
URL: http://llvm.org/viewvc/llvm-project?rev=152958&view=rev
Log:
Revert r152915. Chapuni's WinWaitReleased refactoring: It doesn't work for me
Modified:
llvm/trunk/utils/lit/lit/TestRunner.py
Modified: llvm/trunk/utils/lit/lit/TestRunner.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/TestRunner.py?rev=152958&r1=152957&r2=152958&view=diff
==============================================================================
--- llvm/trunk/utils/lit/lit/TestRunner.py (original)
+++ llvm/trunk/utils/lit/lit/TestRunner.py Fri Mar 16 17:50:01 2012
@@ -29,20 +29,12 @@
except OSError:
pass
-def WinWaitReleased(f):
- import time, win32file
+def WinRename(f_o, f_n):
+ import time
retry_cnt = 256
- while True:
+ while (True):
try:
- h = win32file.CreateFile(
- f,
- 0, # Querying, neither GENERIC_READ nor GENERIC_WRITE
- 0, # Exclusive
- None,
- win32file.OPEN_EXISTING,
- win32file.FILE_ATTRIBUTE_NORMAL,
- None)
- h.close()
+ os.rename(f_o, f_n)
break
except WindowsError, (winerror, strerror):
retry_cnt = retry_cnt - 1
@@ -53,6 +45,21 @@
else:
raise
+def WinWaitReleased(f):
+ import random
+ t = "%s%06d" % (f, random.randint(0, 999999))
+ RemoveForce(t)
+ try:
+ WinRename(f, t) # rename
+ WinRename(t, f) # restore
+ except WindowsError, (winerror, strerror):
+ if winerror in (2, 3):
+ # 2: ERROR_FILE_NOT_FOUND
+ # 3: ERROR_PATH_NOT_FOUND
+ pass
+ else:
+ raise
+
def executeCommand(command, cwd=None, env=None):
p = subprocess.Popen(command, cwd=cwd,
stdin=subprocess.PIPE,
More information about the llvm-commits
mailing list