1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00

[lit] Set --single-process for single tests and --threads=1

Summary:
Automatically upgrade debugging experience (single process, no thread
pool) when:
  1) we only run a single test
  2) user specifies `-j1`

Details:
Fix `--max-failures` in single process mode. Option did not have an
effect in single process mode.

Add display feedback for single process mode. Adapted test.

Improve argument checking (require positive integers).

`--single-process` is now essentially an alias for `-j1`. Should we
remove it?

Reviewers: rnk

Differential Revision: https://reviews.llvm.org/D58249

llvm-svn: 354068
This commit is contained in:
Julian Lettner 2019-02-14 22:30:07 +00:00
parent 7934cfbd89
commit 98ead046b6
6 changed files with 19 additions and 17 deletions

View File

@ -21,7 +21,7 @@ class LitConfig(object):
def __init__(self, progname, path, quiet,
useValgrind, valgrindLeakCheck, valgrindArgs,
noExecute, debug, isWindows, singleProcess,
noExecute, debug, isWindows,
params, config_prefix = None,
maxIndividualTestTime = 0,
maxFailures = None,
@ -37,7 +37,6 @@ class LitConfig(object):
self.valgrindUserArgs = list(valgrindArgs)
self.noExecute = noExecute
self.debug = debug
self.singleProcess = singleProcess
self.isWindows = bool(isWindows)
self.params = dict(params)
self.bashPath = None

View File

@ -262,7 +262,6 @@ def load_test_suite(inputs):
useValgrind = False,
valgrindLeakCheck = False,
valgrindArgs = [],
singleProcess=False,
noExecute = False,
debug = False,
isWindows = (platform.system()=='Windows'),

View File

@ -336,11 +336,11 @@ def main_with_tmp(builtinParameters):
if not args:
parser.error('No inputs specified')
if opts.numThreads is None:
opts.numThreads = lit.util.detectCPUs()
if opts.numThreads is not None and opts.numThreads <= 0:
parser.error("Option '--threads' or '-j' requires positive integer")
if opts.maxFailures == 0:
parser.error("Setting --max-failures to 0 does not have any effect.")
if opts.maxFailures is not None and opts.maxFailures <= 0:
parser.error("Option '--max-failures' requires positive integer")
if opts.echoAllCommands:
opts.showOutput = True
@ -374,7 +374,6 @@ def main_with_tmp(builtinParameters):
valgrindLeakCheck = opts.valgrindLeakCheck,
valgrindArgs = opts.valgrindArgs,
noExecute = opts.noExecute,
singleProcess = opts.singleProcess,
debug = opts.debug,
isWindows = isWindows,
params = userParams,
@ -481,6 +480,12 @@ def main_with_tmp(builtinParameters):
if opts.maxTests is not None:
run.tests = run.tests[:opts.maxTests]
# Determine number of workers to use.
if opts.singleProcess:
opts.numThreads = 1
elif opts.numThreads is None:
opts.numThreads = lit.util.detectCPUs()
# Don't create more threads than tests.
opts.numThreads = min(len(run.tests), opts.numThreads)
@ -506,11 +511,9 @@ def main_with_tmp(builtinParameters):
except:
pass
extra = ''
if len(run.tests) != numTotalTests:
extra = ' of %d' % numTotalTests
header = '-- Testing: %d%s tests, %d threads --'%(len(run.tests), extra,
opts.numThreads)
extra = (' of %d' % numTotalTests) if (len(run.tests) != numTotalTests) else ''
threads = 'single process' if (opts.numThreads == 1) else ('%d threads' % opts.numThreads)
header = '-- Testing: %d%s tests, %s --' % (len(run.tests), extra, threads)
progressBar = None
if not opts.quiet:
if opts.succinct and opts.useProgressBar:

View File

@ -133,7 +133,7 @@ class Run(object):
be given an UNRESOLVED result.
"""
# Don't do anything if we aren't going to run any tests.
if not self.tests or jobs == 0:
if not self.tests:
return
# Save the display object on the runner so that we can update it from
@ -142,12 +142,14 @@ class Run(object):
self.failure_count = 0
self.hit_max_failures = False
if self.lit_config.singleProcess:
if jobs == 1:
global child_lit_config
child_lit_config = self.lit_config
for test_index, test in enumerate(self.tests):
result = worker_run_one_test(test_index, test)
self.consume_test_result(result)
if self.hit_max_failures:
break
else:
self.execute_tests_in_pool(jobs, max_time)

View File

@ -11,4 +11,4 @@
# CHECK: Failing Tests (27)
# CHECK: Failing Tests (1)
# CHECK: Failing Tests (2)
# CHECK: error: Setting --max-failures to 0 does not have any effect.
# CHECK: error: Option '--max-failures' requires positive integer

View File

@ -29,7 +29,6 @@ class TestIntegratedTestKeywordParser(unittest.TestCase):
quiet=False,
useValgrind=False,
valgrindLeakCheck=False,
singleProcess=False,
valgrindArgs=[],
noExecute=False,
debug=False,