
Summary: The technique of directly calling subprocess.Popen on a python script doesn't work on Windows. The executable path of the command must refer to a valid win32 executable. Instead, rename all the python scripts masquerading as gtest executables to have .py extensions, so we can easily detect then and call the python executable for them. Do this on Linux as well as Windows for consistency. The test suite directory names also come out in lower-case on Windows. We can consider removing that in a later patch. This change just updates the FileCheck lines to match on Windows. Fixes PR33933 Reviewers: modocache, mgorny Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D35909 llvm-svn: 309347
36 lines
853 B
Python
36 lines
853 B
Python
#!/usr/bin/env python
|
|
|
|
import sys
|
|
import time
|
|
|
|
if len(sys.argv) != 2:
|
|
raise ValueError("unexpected number of args")
|
|
|
|
if sys.argv[1] == "--gtest_list_tests":
|
|
print("""\
|
|
FirstTest.
|
|
subTestA
|
|
subTestB
|
|
subTestC
|
|
""")
|
|
sys.exit(0)
|
|
elif not sys.argv[1].startswith("--gtest_filter="):
|
|
raise ValueError("unexpected argument: %r" % (sys.argv[1]))
|
|
|
|
test_name = sys.argv[1].split('=',1)[1]
|
|
if test_name == 'FirstTest.subTestA':
|
|
print('I am subTest A, I PASS')
|
|
print('[ PASSED ] 1 test.')
|
|
sys.exit(0)
|
|
elif test_name == 'FirstTest.subTestB':
|
|
print('I am subTest B, I am slow')
|
|
time.sleep(6)
|
|
print('[ PASSED ] 1 test.')
|
|
sys.exit(0)
|
|
elif test_name == 'FirstTest.subTestC':
|
|
print('I am subTest C, I will hang')
|
|
while True:
|
|
pass
|
|
else:
|
|
raise SystemExit("error: invalid test name: %r" % (test_name,))
|