Index: test/BugPoint/compile-custom.ll =================================================================== --- test/BugPoint/compile-custom.ll +++ test/BugPoint/compile-custom.ll @@ -1,4 +1,4 @@ -; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext --compile-custom --compile-command="%python %/s.py arg1 arg2" --opt-command opt --output-prefix %t %s | FileCheck %s +; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext --compile-custom --compile-command="%/s.py arg1 arg2" --opt-command opt --output-prefix %t %s | FileCheck %s ; REQUIRES: loadable_module ; Test that arguments are correctly passed in --compile-command. The output Index: test/BugPoint/unsymbolized.ll =================================================================== --- test/BugPoint/unsymbolized.ll +++ test/BugPoint/unsymbolized.ll @@ -2,7 +2,7 @@ ; RUN: echo "import sys" > %t.py ; RUN: echo "print('args = ' + str(sys.argv))" >> %t.py ; RUN: echo "exit(1)" >> %t.py -; RUN: not bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -opt-command="%python" -opt-args %t.py | FileCheck %s +; RUN: not bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -opt-command=%python -opt-args %t.py | FileCheck %s ; RUN: not --crash opt -load %llvmshlibdir/BugpointPasses%shlibext %s -bugpoint-crashcalls -disable-symbolication 2>&1 | FileCheck --check-prefix=CRASH %s ; RUN: not bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -opt-command=%t.non.existent.opt.binary -opt-args %t.py 2>&1 | FileCheck %s --check-prefix=BAD-OPT Index: test/Other/opt-bisect-legacy-pass-manager.ll =================================================================== --- test/Other/opt-bisect-legacy-pass-manager.ll +++ 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 Index: test/TableGen/JSON.td =================================================================== --- test/TableGen/JSON.td +++ test/TableGen/JSON.td @@ -1,4 +1,4 @@ -// RUN: llvm-tblgen -dump-json %s | '%python' %S/JSON-check.py %s +// RUN: llvm-tblgen -dump-json %s | %python %S/JSON-check.py %s // CHECK: data['!tablegen_json_version'] == 1 Index: test/ThinLTO/X86/cache.ll =================================================================== --- test/ThinLTO/X86/cache.ll +++ test/ThinLTO/X86/cache.ll @@ -106,11 +106,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 "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: %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 @@ -123,11 +123,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 Index: test/tools/llvm-cov/showLineExecutionCounts.cpp =================================================================== --- test/tools/llvm-cov/showLineExecutionCounts.cpp +++ test/tools/llvm-cov/showLineExecutionCounts.cpp @@ -37,7 +37,7 @@ // // RUN: llvm-cov export %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -name=main 2>/dev/null > %t.export.json // RUN: FileCheck -input-file %t.export.json %S/Inputs/lineExecutionCounts.json -// RUN: cat %t.export.json | "%python" -c "import json, sys; json.loads(sys.stdin.read())" +// RUN: cat %t.export.json | %python -c "import json, sys; json.loads(sys.stdin.read())" // // RUN: llvm-cov export %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata 2>/dev/null -summary-only > %t.export-summary.json // RUN: not grep '"name":"main"' %t.export-summary.json Index: test/tools/llvm-objcopy/auto-remove-shndx.test =================================================================== --- test/tools/llvm-objcopy/auto-remove-shndx.test +++ test/tools/llvm-objcopy/auto-remove-shndx.test @@ -1,4 +1,4 @@ -# RUN: '%python' %p/Inputs/ungzip.py %p/Inputs/many-sections.o.gz > %t +# RUN: %python %p/Inputs/ungzip.py %p/Inputs/many-sections.o.gz > %t # RUN: llvm-objcopy -R .text -R s0 -R s1 -R s2 -R s3 -R s4 -R s5 -R s6 %t %t2 # RUN: llvm-readobj -sections %t2 | FileCheck --check-prefix=SECS %s Index: test/tools/llvm-objcopy/many-sections.test =================================================================== --- test/tools/llvm-objcopy/many-sections.test +++ test/tools/llvm-objcopy/many-sections.test @@ -1,4 +1,4 @@ -RUN: '%python' %p/Inputs/ungzip.py %p/Inputs/many-sections.o.gz > %t +RUN: %python %p/Inputs/ungzip.py %p/Inputs/many-sections.o.gz > %t RUN: llvm-objcopy %t %t2 RUN: llvm-readobj -file-headers %t2 | FileCheck --check-prefix=EHDR %s RUN: llvm-readobj -sections %t2 | FileCheck --check-prefix=SECS %s Index: test/tools/llvm-objcopy/remove-shndx.test =================================================================== --- test/tools/llvm-objcopy/remove-shndx.test +++ test/tools/llvm-objcopy/remove-shndx.test @@ -1,6 +1,6 @@ # This test checks to see that a .symtab_shndx section is added to any binary # that needs it, even if the original was removed. -RUN: '%python' %p/Inputs/ungzip.py %p/Inputs/many-sections.o.gz > %t +RUN: %python %p/Inputs/ungzip.py %p/Inputs/many-sections.o.gz > %t RUN: llvm-objcopy -R .symtab_shndx %t %t2 RUN: llvm-readobj -sections %t2 | FileCheck %s Index: test/tools/llvm-objcopy/strict-no-add.test =================================================================== --- test/tools/llvm-objcopy/strict-no-add.test +++ test/tools/llvm-objcopy/strict-no-add.test @@ -1,7 +1,7 @@ # This test makes sure that sections added at the end that don't have symbols # defined in them don't trigger the creation of a large index table. -RUN: '%python' %p/Inputs/ungzip.py %p/Inputs/many-sections.o.gz > %t.0 +RUN: %python %p/Inputs/ungzip.py %p/Inputs/many-sections.o.gz > %t.0 RUN: cat %p/Inputs/alloc-symtab.o > %t RUN: llvm-objcopy -R .text -R s0 -R s1 -R s2 -R s3 -R s4 -R s5 -R s6 %t.0 %t2 RUN: llvm-objcopy -add-section=.s0=%t -add-section=.s1=%t -add-section=.s2=%t %t2 %t2 Index: test/tools/llvm-symbolizer/pdb/pdb.test =================================================================== --- test/tools/llvm-symbolizer/pdb/pdb.test +++ test/tools/llvm-symbolizer/pdb/pdb.test @@ -9,7 +9,7 @@ --relative-address. RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | "%python" -c 'import sys;print("\n".join([hex(int(x, 16) - 0x400000) for x in sys.stdin]))' \ +RUN: | %python -c 'import sys;print("\n".join([hex(int(x, 16) - 0x400000) for x in sys.stdin]))' \ RUN: | llvm-symbolizer -obj="%p/Inputs/test.exe" -demangle=false --relative-address \ RUN: | FileCheck %s --check-prefix=CHECK-NO-DEMANGLE Index: test/tools/llvm-symbolizer/ppc64.test =================================================================== --- test/tools/llvm-symbolizer/ppc64.test +++ test/tools/llvm-symbolizer/ppc64.test @@ -4,7 +4,7 @@ int bar() { return foo(); } int _start() { return bar(); } -RUN: "%python" -c "print('0x1000014c\n0x1000018c\n0x100001cc')" | llvm-symbolizer -obj=%p/Inputs/ppc64 | FileCheck %s +RUN: %python -c "print('0x1000014c\n0x1000018c\n0x100001cc')" | llvm-symbolizer -obj=%p/Inputs/ppc64 | FileCheck %s CHECK: foo CHECK: bar Index: utils/lit/lit/llvm/config.py =================================================================== --- utils/lit/lit/llvm/config.py +++ utils/lit/lit/llvm/config.py @@ -299,7 +299,8 @@ 'count'), verbatim=True, unresolved='fatal'), ToolSubst(r'\| \bnot\b', command=FindTool('not'), verbatim=True, unresolved='fatal')] - self.config.substitutions.append(('%python', sys.executable)) + self.config.substitutions.append(('%python', "'%s'" % (sys.executable))) + self.add_tool_substitutions( tool_patterns, [self.config.llvm_tools_dir]) Index: utils/lit/tests/Inputs/shtest-env/lit.cfg =================================================================== --- utils/lit/tests/Inputs/shtest-env/lit.cfg +++ utils/lit/tests/Inputs/shtest-env/lit.cfg @@ -6,4 +6,4 @@ config.test_exec_root = None config.environment['FOO'] = '1' config.environment['BAR'] = '2' -config.substitutions.append(('%{python}', sys.executable)) +config.substitutions.append(('%{python}', "'%s'" % (sys.executable))) Index: utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_bad_encoding.txt =================================================================== --- utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_bad_encoding.txt +++ utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_bad_encoding.txt @@ -1,5 +1,5 @@ # Run a command that fails with error on stdout. # -# RUN: "%{python}" %S/write-bad-encoding.py +# RUN: %{python} %S/write-bad-encoding.py # RUN: false Index: utils/lit/tests/Inputs/shtest-format/lit.cfg =================================================================== --- utils/lit/tests/Inputs/shtest-format/lit.cfg +++ utils/lit/tests/Inputs/shtest-format/lit.cfg @@ -6,4 +6,4 @@ config.test_exec_root = None config.target_triple = 'x86_64-unknown-unknown' config.available_features.add('a-present-feature') -config.substitutions.append(('%{python}', sys.executable)) +config.substitutions.append(('%{python}', "'%s'" % (sys.executable))) Index: utils/lit/tests/Inputs/shtest-shell/dev-null.txt =================================================================== --- utils/lit/tests/Inputs/shtest-shell/dev-null.txt +++ utils/lit/tests/Inputs/shtest-shell/dev-null.txt @@ -1,14 +1,14 @@ # Check handling of /dev/null in command line options # On windows, it should be redirected to a temp file. # -# RUN: "%{python}" %S/check_args.py --my_arg /dev/null | FileCheck %s --check-prefix=CHECK1 +# RUN: %{python} %S/check_args.py --my_arg /dev/null | FileCheck %s --check-prefix=CHECK1 # CHECK1: OK -# RUN: "%{python}" %S/check_args.py --my_arg=/dev/null | FileCheck %s --check-prefix=CHECK2 +# RUN: %{python} %S/check_args.py --my_arg=/dev/null | FileCheck %s --check-prefix=CHECK2 # CHECK2: OK -# RUN: "%{python}" %S/check_args.py -a /dev/null | FileCheck %s --check-prefix=CHECK3 +# RUN: %{python} %S/check_args.py -a /dev/null | FileCheck %s --check-prefix=CHECK3 # CHECK3: OK -# RUN: "%{python}" %S/check_args.py -a=/dev/null | FileCheck %s --check-prefix=CHECK4 +# RUN: %{python} %S/check_args.py -a=/dev/null | FileCheck %s --check-prefix=CHECK4 # CHECK4: OK Index: utils/lit/tests/Inputs/shtest-shell/lit.cfg =================================================================== --- utils/lit/tests/Inputs/shtest-shell/lit.cfg +++ utils/lit/tests/Inputs/shtest-shell/lit.cfg @@ -4,4 +4,4 @@ config.test_format = lit.formats.ShTest() config.test_source_root = None config.test_exec_root = None -config.substitutions.append(('%{python}', sys.executable)) +config.substitutions.append(('%{python}', "'%s'" % (sys.executable))) Index: utils/lit/tests/Inputs/shtest-shell/redirects.txt =================================================================== --- utils/lit/tests/Inputs/shtest-shell/redirects.txt +++ utils/lit/tests/Inputs/shtest-shell/redirects.txt @@ -17,13 +17,13 @@ # Check stderr redirect (2> and 2>>). # # RUN: echo "not-present" > %t.stderr-write -# RUN: "%{python}" %S/write-to-stderr.py 2> %t.stderr-write +# RUN: %{python} %S/write-to-stderr.py 2> %t.stderr-write # RUN: FileCheck --check-prefix=STDERR-WRITE < %t.stderr-write %s # # STDERR-WRITE-NOT: not-present # STDERR-WRITE: a line on stderr # -# RUN: "%{python}" %S/write-to-stderr.py 2>> %t.stderr-write +# RUN: %{python} %S/write-to-stderr.py 2>> %t.stderr-write # RUN: FileCheck --check-prefix=STDERR-APPEND < %t.stderr-write %s # # STDERR-APPEND: a line on stderr @@ -33,7 +33,7 @@ # Check combined redirect (&>). # # RUN: echo "not-present" > %t.combined -# RUN: "%{python}" %S/write-to-stdout-and-stderr.py &> %t.combined +# RUN: %{python} %S/write-to-stdout-and-stderr.py &> %t.combined # RUN: FileCheck --check-prefix=COMBINED-WRITE < %t.combined %s # # COMBINED-WRITE-NOT: not-present Index: utils/lit/tests/Inputs/shtest-shell/valid-shell.txt =================================================================== --- utils/lit/tests/Inputs/shtest-shell/valid-shell.txt +++ utils/lit/tests/Inputs/shtest-shell/valid-shell.txt @@ -2,13 +2,13 @@ # Check force remove commands success whether the file does or doesn't exist. # # RUN: rm -f %t.write -# RUN: "%{python}" %S/check_path.py file %t.write > %t.out +# RUN: %{python} %S/check_path.py file %t.write > %t.out # RUN: FileCheck --check-prefix=REMOVE-FILE < %t.out %s # RUN: echo "create a temp file" > %t.write -# RUN: "%{python}" %S/check_path.py file %t.write > %t.out +# RUN: %{python} %S/check_path.py file %t.write > %t.out # RUN: FileCheck --check-prefix=FILE-EXIST < %t.out %s # RUN: rm -f %t.write -# RUN: "%{python}" %S/check_path.py file %t.write > %t.out +# RUN: %{python} %S/check_path.py file %t.write > %t.out # RUN: FileCheck --check-prefix=REMOVE-FILE < %t.out %s # # REMOVE-FILE: False @@ -19,14 +19,14 @@ # # Check the mkdir command with -p option. # RUN: rm -f -r %T/test -# RUN: "%{python}" %S/check_path.py dir %T/test > %t.out +# RUN: %{python} %S/check_path.py dir %T/test > %t.out # RUN: FileCheck --check-prefix=REMOVE-PARENT-DIR < %t.out %s # RUN: mkdir -p %T/test -# RUN: "%{python}" %S/check_path.py dir %T/test > %t.out +# RUN: %{python} %S/check_path.py dir %T/test > %t.out # RUN: FileCheck --check-prefix=MAKE-PARENT-DIR < %t.out %s # RUN: rm -f %T/test || true # RUN: rm -f -r %T/test -# RUN: "%{python}" %S/check_path.py dir %T/test > %t.out +# RUN: %{python} %S/check_path.py dir %T/test > %t.out # RUN: FileCheck --check-prefix=REMOVE-PARENT-DIR < %t.out %s # # MAKE-PARENT-DIR: True @@ -36,13 +36,13 @@ # # RUN: rm -rf %T/test1 # RUN: mkdir %T/test1 -# RUN: "%{python}" %S/check_path.py dir %T/test1 > %t.out +# RUN: %{python} %S/check_path.py dir %T/test1 > %t.out # RUN: FileCheck --check-prefix=MAKE-DIR < %t.out %s # RUN: cd %T/test1 && mkdir foo -# RUN: "%{python}" %S/check_path.py dir %T/test1 > %t.out +# RUN: %{python} %S/check_path.py dir %T/test1 > %t.out # RUN: FileCheck --check-prefix=MAKE-DIR < %t.out %s # RUN: cd %T && rm -rf %T/test1 -# RUN: "%{python}" %S/check_path.py dir %T/test1 > %t.out +# RUN: %{python} %S/check_path.py dir %T/test1 > %t.out # RUN: FileCheck --check-prefix=REMOVE-DIR < %t.out %s # # MAKE-DIR: True @@ -52,16 +52,16 @@ # # RUN: rm -rf %T/test # RUN: mkdir -p %T/test/test1 %T/test/test2 -# RUN: "%{python}" %S/check_path.py dir %T/test %T/test/test1 %T/test/test2 > %t.out +# RUN: %{python} %S/check_path.py dir %T/test %T/test/test1 %T/test/test2 > %t.out # RUN: FileCheck --check-prefix=DIRS-EXIST < %t.out %s # RUN: mkdir %T/test || true # RUN: echo "create a temp file" > %T/test/temp.write # RUN: echo "create a temp1 file" > %T/test/test1/temp1.write # RUN: echo "create a temp2 file" > %T/test/test2/temp2.write -# RUN: "%{python}" %S/check_path.py file %T/test/temp.write %T/test/test1/temp1.write %T/test/test2/temp2.write> %t.out +# RUN: %{python} %S/check_path.py file %T/test/temp.write %T/test/test1/temp1.write %T/test/test2/temp2.write> %t.out # RUN: FileCheck --check-prefix=FILES-EXIST < %t.out %s # RUN: rm -r -f %T/* -# RUN: "%{python}" %S/check_path.py dir %T/test > %t.out +# RUN: %{python} %S/check_path.py dir %T/test > %t.out # RUN: FileCheck --check-prefix=REMOVE-ALL < %t.out %s # # DIRS-EXIST: True @@ -92,7 +92,7 @@ # RUN: mkdir -p %T/testCat # RUN: echo "abcdefgh" > %T/testCat/temp.write # RUN: cat %T/testCat/temp.write > %T/testCat/tempcat.write -# RUN: "%{python}" %S/check_path.py file %T/testCat/tempcat.write > %T/testCat/path.out +# RUN: %{python} %S/check_path.py file %T/testCat/tempcat.write > %T/testCat/path.out # RUN: FileCheck --check-prefix=FILE-EXISTS < %T/testCat/path.out %s # RUN: FileCheck --check-prefix=CAT-OUTPUT < %T/testCat/tempcat.write %s # FILE-EXISTS: True @@ -106,7 +106,7 @@ # RUN: echo "efghijkl" > %T/testCat/temp2.write # RUN: echo "mnopqrst" > %T/testCat/temp3.write # RUN: cat %T/testCat/temp1.write %T/testCat/temp2.write %T/testCat/temp3.write > %T/testCat/tempmulticat.write -# RUN: "%{python}" %S/check_path.py file %T/testCat/tempmulticat.write > %T/testCat/path.out +# RUN: %{python} %S/check_path.py file %T/testCat/tempmulticat.write > %T/testCat/path.out # RUN: FileCheck --check-prefix=MULTI-FILE-EXISTS < %T/testCat/path.out %s # RUN: FileCheck --check-prefix=MULTI-CAT-OUTPUT < %T/testCat/tempmulticat.write %s # MULTI-FILE-EXISTS: True Index: utils/lit/tests/Inputs/shtest-timeout/lit.cfg =================================================================== --- utils/lit/tests/Inputs/shtest-timeout/lit.cfg +++ utils/lit/tests/Inputs/shtest-timeout/lit.cfg @@ -29,4 +29,4 @@ config.target_triple = '(unused)' src_root = os.path.join(config.test_source_root, '..') config.environment['PYTHONPATH'] = src_root -config.substitutions.append(('%{python}', sys.executable)) +config.substitutions.append(('%{python}', "'%s'" % (sys.executable))) Index: utils/lit/tests/lit.cfg =================================================================== --- utils/lit/tests/lit.cfg +++ utils/lit/tests/lit.cfg @@ -40,7 +40,8 @@ src_root, 'tests', 'Inputs'))) config.substitutions.append(('%{lit}', "%%{python} %s" % ( os.path.join(lit_path, 'lit.py'),))) -config.substitutions.append(('%{python}', sys.executable)) +config.substitutions.append(('%{python}', "'%s'" % (sys.executable))) + # Enable coverage.py reporting, assuming the coverage module has been installed # and sitecustomize.py in the virtualenv has been modified appropriately.