1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00

[sanitizer] Use COMPILER_RT_EMULATOR with gtests

Differential Revision: https://reviews.llvm.org/D100998
This commit is contained in:
Vitaly Buka 2021-04-20 13:14:03 -07:00
parent dcdc354ce1
commit cd55b6be92

View File

@ -11,7 +11,7 @@ from .base import TestFormat
kIsWindows = sys.platform in ['win32', 'cygwin']
class GoogleTest(TestFormat):
def __init__(self, test_sub_dirs, test_suffix):
def __init__(self, test_sub_dirs, test_suffix, run_under = []):
self.test_sub_dirs = str(test_sub_dirs).split(';')
# On Windows, assume tests will also end in '.exe'.
@ -21,6 +21,7 @@ class GoogleTest(TestFormat):
# Also check for .py files for testing purposes.
self.test_suffixes = {exe_suffix, test_suffix + '.py'}
self.run_under = run_under
def getGTestTests(self, path, litConfig, localConfig):
"""getGTestTests(path) - [name]
@ -32,7 +33,7 @@ class GoogleTest(TestFormat):
litConfig: LitConfig instance
localConfig: TestingConfig instance"""
list_test_cmd = self.maybeAddPythonToCmd([path, '--gtest_list_tests'])
list_test_cmd = self.prepareCmd([path, '--gtest_list_tests'])
try:
output = subprocess.check_output(list_test_cmd,
@ -113,7 +114,7 @@ class GoogleTest(TestFormat):
testName = namePrefix + '/' + testName
cmd = [testPath, '--gtest_filter=' + testName]
cmd = self.maybeAddPythonToCmd(cmd)
cmd = self.prepareCmd(cmd)
if litConfig.useValgrind:
cmd = litConfig.valgrindArgs + cmd
@ -141,13 +142,17 @@ class GoogleTest(TestFormat):
return lit.Test.PASS,''
def maybeAddPythonToCmd(self, cmd):
"""Insert the python exe into the command if cmd[0] ends in .py
def prepareCmd(self, cmd):
"""Insert interpreter if needed.
It inserts the python exe into the command if cmd[0] ends in .py or caller
specified run_under.
We cannot rely on the system to interpret shebang lines for us on
Windows, so add the python executable to the command if this is a .py
script.
"""
if cmd[0].endswith('.py'):
return [sys.executable] + cmd
cmd = [sys.executable] + cmd
if self.run_under:
cmd = self.run_under + cmd
return cmd