+from __future__ import absolute_import
import os
import sys
-import Test
-import TestRunner
-import Util
+import lit.Test
+import lit.TestRunner
+import lit.Util
kIsWindows = sys.platform in ['win32', 'cygwin']
localConfig: TestingConfig instance"""
try:
- lines = Util.capture([path, '--gtest_list_tests'],
- env=localConfig.environment)
+ lines = lit.Util.capture([path, '--gtest_list_tests'],
+ env=localConfig.environment)
if kIsWindows:
lines = lines.replace('\r', '')
lines = lines.split('\n')
else:
yield ''.join(nested_tests) + ln
+ # Note: path_in_suite should not include the executable name.
def getTestsInExecutable(self, testSuite, path_in_suite, execpath,
litConfig, localConfig):
if not execpath.endswith(self.test_suffix):
(dirname, basename) = os.path.split(execpath)
# Discover the tests in this executable.
for testname in self.getGTestTests(execpath, litConfig, localConfig):
- testPath_in_suite = path_in_suite + (testname, )
- yield Test.Test(testSuite, testPath_in_suite, localConfig)
+ testPath = path_in_suite + (basename, testname)
+ yield lit.Test.Test(testSuite, testPath, localConfig)
def getTestsInDirectory(self, testSuite, path_in_suite,
litConfig, localConfig):
# Iterate over executables in a directory.
if not os.path.normcase(filename) in self.test_sub_dir:
continue
- filepath_in_suite = path_in_suite + (filename, )
+ dirpath_in_suite = path_in_suite + (filename, )
for subfilename in os.listdir(filepath):
execpath = os.path.join(filepath, subfilename)
for test in self.getTestsInExecutable(
- testSuite, filepath_in_suite, execpath,
+ testSuite, dirpath_in_suite, execpath,
litConfig, localConfig):
yield test
elif ('.' in self.test_sub_dir):
- filepath_in_suite = path_in_suite + (filename, )
for test in self.getTestsInExecutable(
- testSuite, filepath_in_suite, filepath,
+ testSuite, path_in_suite, filepath,
litConfig, localConfig):
yield test
cmd = litConfig.valgrindArgs + cmd
if litConfig.noExecute:
- return Test.PASS, ''
+ return lit.Test.PASS, ''
- out, err, exitCode = TestRunner.executeCommand(
+ out, err, exitCode = lit.TestRunner.executeCommand(
cmd, env=test.config.environment)
if not exitCode:
- return Test.PASS,''
+ return lit.Test.PASS,''
- return Test.FAIL, out + err
+ return lit.Test.FAIL, out + err
###
if not os.path.isdir(filepath):
base,ext = os.path.splitext(filename)
if ext in localConfig.suffixes:
- yield Test.Test(testSuite, path_in_suite + (filename,),
- localConfig)
+ yield lit.Test.Test(testSuite, path_in_suite + (filename,),
+ localConfig)
class ShTest(FileBasedTest):
def __init__(self, execute_external = False):
self.execute_external = execute_external
def execute(self, test, litConfig):
- return TestRunner.executeShTest(test, litConfig,
- self.execute_external)
+ return lit.TestRunner.executeShTest(test, litConfig,
+ self.execute_external)
###
suffix = path[len(dir):]
if suffix.startswith(os.sep):
suffix = suffix[1:]
- test = Test.Test(testSuite,
- path_in_suite + tuple(suffix.split(os.sep)),
- localConfig)
+ test = lit.Test.Test(
+ testSuite, path_in_suite + tuple(suffix.split(os.sep)),
+ localConfig)
# FIXME: Hack?
test.source_path = path
yield test
def execute(self, test, litConfig):
if test.config.unsupported:
- return (Test.UNSUPPORTED, 'Test is unsupported')
+ return (lit.Test.UNSUPPORTED, 'Test is unsupported')
cmd = list(self.command)
else:
cmd.append(test.getSourcePath())
- out, err, exitCode = TestRunner.executeCommand(cmd)
+ out, err, exitCode = lit.TestRunner.executeCommand(cmd)
diags = out + err
if not exitCode and not diags.strip():
- return Test.PASS,''
+ return lit.Test.PASS,''
# Try to include some useful information.
report = """Command: %s\n""" % ' '.join(["'%s'" % a
report += "--\n%s--\n""" % open(tmp.name).read()
report += """Output:\n--\n%s--""" % diags
- return Test.FAIL, report
+ return lit.Test.FAIL, report