summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Smith <aaron.smith@microsoft.com>2018-04-07 00:21:28 +0000
committerAaron Smith <aaron.smith@microsoft.com>2018-04-07 00:21:28 +0000
commite5ee89c0d3efc1a7a34357d1d04e3d9e9f65d2be (patch)
treeff14c818c5252a938abf3739ef5a9e5f3cbe89e1
parent045c514fb42515df05eb9bea3cac6a831da05ce7 (diff)
downloadbcm5719-llvm-e5ee89c0d3efc1a7a34357d1d04e3d9e9f65d2be.tar.gz
bcm5719-llvm-e5ee89c0d3efc1a7a34357d1d04e3d9e9f65d2be.zip
[lit] Fix several Python 2/3 compatibility issues and tests
- In Python 2.x, basestring is the base string type, but in Python 3.x basestring is not defined and instead str includes unicode strings. - When Python is in a path that includes spaces, it needs to be specified with quotes in the test files for it to run. - The cache.ll test relies on files of a specific size being created by Python, but on some versions of Windows the files that are created by the current code are one byte larger than expected. To fix the test, update file creation to always make files of the expected size. Patch by Stella Stamenova! llvm-svn: 329466
-rw-r--r--llvm/test/Other/opt-bisect-legacy-pass-manager.ll2
-rw-r--r--llvm/test/ThinLTO/X86/cache.ll20
-rw-r--r--llvm/utils/lit/lit/TestRunner.py8
3 files changed, 18 insertions, 12 deletions
diff --git a/llvm/test/Other/opt-bisect-legacy-pass-manager.ll b/llvm/test/Other/opt-bisect-legacy-pass-manager.ll
index bf89e80d496..560675e893c 100644
--- a/llvm/test/Other/opt-bisect-legacy-pass-manager.ll
+++ b/llvm/test/Other/opt-bisect-legacy-pass-manager.ll
@@ -38,7 +38,7 @@
; utils/bisect) to locate the optimization that inlines the call to
; f2() in f3().
-; RUN: %python %S/opt-bisect-helper.py --start=0 --end=256 --optcmd=opt \
+; RUN: '%python' %S/opt-bisect-helper.py --start=0 --end=256 --optcmd=opt \
; RUN: --filecheckcmd=FileCheck --test=%s \
; RUN: --prefix=CHECK-BISECT-INLINE-HELPER \
; RUN: | FileCheck %s --check-prefix=CHECK-BISECT-INLINE-RESULT
diff --git a/llvm/test/ThinLTO/X86/cache.ll b/llvm/test/ThinLTO/X86/cache.ll
index f3fcaf30987..6fddfb631b4 100644
--- a/llvm/test/ThinLTO/X86/cache.ll
+++ b/llvm/test/ThinLTO/X86/cache.ll
@@ -85,11 +85,11 @@
; RUN: rm -Rf %t.cache && mkdir %t.cache
; Create cache files with different sizes.
; Only 8B, 16B and 76B files should stay after pruning.
-; RUN: %python -c "print(' ' * 1023)" > %t.cache/llvmcache-foo-1024
-; RUN: %python -c "print(' ' * 15)" > %t.cache/llvmcache-foo-16
-; RUN: %python -c "print(' ' * 7)" > %t.cache/llvmcache-foo-8
-; RUN: %python -c "print(' ' * 75)" > %t.cache/llvmcache-foo-76
-; RUN: %python -c "print(' ' * 76)" > %t.cache/llvmcache-foo-77
+; RUN: "%python" -c "with open(r'%t.cache/llvmcache-foo-1024', 'w') as file: file.truncate(1024)"
+; RUN: "%python" -c "with open(r'%t.cache/llvmcache-foo-16', 'w') as file: file.truncate(16)"
+; RUN: "%python" -c "with open(r'%t.cache/llvmcache-foo-8', 'w') as file: file.truncate(8)"
+; RUN: "%python" -c "with open(r'%t.cache/llvmcache-foo-76', 'w') as file: file.truncate(76)"
+; RUN: "%python" -c "with open(r'%t.cache/llvmcache-foo-77', 'w') as file: file.truncate(77)"
; RUN: llvm-lto -thinlto-action=run -exported-symbol=globalfunc %t2.bc %t.bc -thinlto-cache-dir %t.cache --thinlto-cache-max-size-bytes 100
; RUN: ls %t.cache/llvmcache-foo-16
; RUN: ls %t.cache/llvmcache-foo-8
@@ -102,11 +102,11 @@
; RUN: rm -Rf %t.cache && mkdir %t.cache
; Create cache files with different sizes.
; Only 8B and 16B files should stay after pruning.
-; RUN: %python -c "print(' ' * 1023)" > %t.cache/llvmcache-foo-1024
-; RUN: %python -c "print(' ' * 15)" > %t.cache/llvmcache-foo-16
-; RUN: %python -c "print(' ' * 7)" > %t.cache/llvmcache-foo-8
-; RUN: %python -c "print(' ' * 75)" > %t.cache/llvmcache-foo-76
-; RUN: %python -c "print(' ' * 76)" > %t.cache/llvmcache-foo-77
+; RUN: "%python" -c "print(' ' * 1023)" > %t.cache/llvmcache-foo-1024
+; RUN: "%python" -c "print(' ' * 15)" > %t.cache/llvmcache-foo-16
+; RUN: "%python" -c "print(' ' * 7)" > %t.cache/llvmcache-foo-8
+; RUN: "%python" -c "print(' ' * 75)" > %t.cache/llvmcache-foo-76
+; RUN: "%python" -c "print(' ' * 76)" > %t.cache/llvmcache-foo-77
; RUN: llvm-lto -thinlto-action=run -exported-symbol=globalfunc %t2.bc %t.bc -thinlto-cache-dir %t.cache --thinlto-cache-max-size-files 2
; RUN: ls %t.cache/llvmcache-foo-16
; RUN: ls %t.cache/llvmcache-foo-8
diff --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py
index 5eecb80e2f3..bfd15961ba0 100644
--- a/llvm/utils/lit/lit/TestRunner.py
+++ b/llvm/utils/lit/lit/TestRunner.py
@@ -845,8 +845,14 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
# Replace uses of /dev/null with temporary files.
if kAvoidDevNull:
+ # In Python 2.x, basestring is the base class for all string (including unicode)
+ # In Python 3.x, basestring no longer exist and str is always unicode
+ try:
+ str_type = basestring
+ except NameError:
+ str_type = str
for i,arg in enumerate(args):
- if isinstance(arg, basestring) and kDevNull in arg:
+ if isinstance(arg, str_type) and kDevNull in arg:
f = tempfile.NamedTemporaryFile(delete=False)
f.close()
named_temp_files.append(f.name)
OpenPOWER on IntegriCloud