[lit] Move unittest adaptor code into discovery module.

- Also, add a test for it.

llvm-svn: 174019
This commit is contained in:
Daniel Dunbar 2013-01-31 01:23:39 +00:00
parent 29c19beaa9
commit 6acef346f3
6 changed files with 50 additions and 23 deletions

View File

@ -6,7 +6,7 @@ import os
import sys
from lit.TestingConfig import TestingConfig
from lit import Test
from lit import LitConfig, Test
def dirContainsTestSuite(path, lit_config):
cfgpath = os.path.join(path, lit_config.site_config_name)
@ -208,3 +208,27 @@ def find_tests_for_inputs(lit_config, inputs):
sys.exit(2)
return tests
def load_test_suite(inputs):
import platform
import unittest
from lit.LitTestCase import LitTestCase
# Create the global config object.
litConfig = LitConfig.LitConfig(progname = 'lit',
path = [],
quiet = False,
useValgrind = False,
valgrindLeakCheck = False,
valgrindArgs = [],
noExecute = False,
ignoreStdErr = False,
debug = False,
isWindows = (platform.system()=='Windows'),
params = {})
tests = find_tests_for_inputs(litConfig, inputs)
# Return a unittest test suite which just runs the tests in order.
return unittest.TestSuite([LitTestCase(test, litConfig) for test in tests])

View File

@ -148,28 +148,6 @@ def runTests(numThreads, litConfig, provider, display):
except KeyboardInterrupt:
sys.exit(2)
def load_test_suite(inputs):
import unittest
# Create the global config object.
litConfig = LitConfig.LitConfig(progname = 'lit',
path = [],
quiet = False,
useValgrind = False,
valgrindLeakCheck = False,
valgrindArgs = [],
noExecute = False,
ignoreStdErr = False,
debug = False,
isWindows = (platform.system()=='Windows'),
params = {})
tests = lit.discovery.find_tests_for_inputs(litConfig, inputs)
# Return a unittest test suite which just runs the tests in order.
from LitTestCase import LitTestCase
return unittest.TestSuite([LitTestCase(test, litConfig) for test in tests])
def main(builtinParameters = {}):
# Bump the GIL check interval, its more important to get any one thread to a
# blocking operation (hopefully exec) than to try and unblock other threads.

View File

@ -0,0 +1,5 @@
config.name = 'unittest-adaptor'
config.suffixes = ['.txt']
config.test_format = lit.formats.ShTest()
config.test_source_root = None
config.test_exec_root = None

View File

@ -0,0 +1 @@
# RUN: true

View File

@ -0,0 +1 @@
# RUN: false

View File

@ -0,0 +1,18 @@
# Check the lit adaption to run under unittest.
#
# RUN: python %s %{inputs}/unittest-adaptor 2> %t.err
# RUN: FileCheck < %t.err %s
#
# CHECK: unittest-adaptor :: test-one.txt ... ok
# CHECK: unittest-adaptor :: test-two.txt ... FAIL
import unittest
import sys
import lit
import lit.discovery
input_path = sys.argv[1]
unittest_suite = lit.discovery.load_test_suite([input_path])
runner = unittest.TextTestRunner(verbosity=2)
runner.run(unittest_suite)