From 2bdccea9a7e2d028d319e7f6fe40e8e1553615bb Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Sat, 1 Aug 2009 03:35:40 +0000 Subject: [PATCH] lit: Don't use threads when only running one test, or with -j 1. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77766 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/test/MultiTestRunner.py | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/utils/test/MultiTestRunner.py b/utils/test/MultiTestRunner.py index cccc6e2360..93532ebf64 100755 --- a/utils/test/MultiTestRunner.py +++ b/utils/test/MultiTestRunner.py @@ -190,6 +190,24 @@ def findConfigPath(root): raise ValueError,"Unable to find config file %r" % kConfigName +def runTests(opts, provider): + # If only using one testing thread, don't use threads at all; this lets us + # profile, among other things. + if opts.numThreads == 1: + t = Tester(provider) + t.run() + return + + # Otherwise spin up the testing threads and wait for them to finish. + testers = [Tester(provider) for i in range(opts.numThreads)] + for t in testers: + t.start() + try: + for t in testers: + t.join() + except KeyboardInterrupt: + sys.exit(1) + def main(): global options from optparse import OptionParser, OptionGroup @@ -323,19 +341,13 @@ def main(): if not progressBar: print header - display = TestingProgressDisplay(opts, len(tests), progressBar) - provider = TestProvider(cfg, opts, tests, display) + # Don't create more threads than tests. + opts.numThreads = min(len(tests), opts.numThreads) - testers = [Tester(provider) for i in range(opts.numThreads)] startTime = time.time() - for t in testers: - t.start() - try: - for t in testers: - t.join() - except KeyboardInterrupt: - sys.exit(1) - + display = TestingProgressDisplay(opts, len(tests), progressBar) + provider = TestProvider(cfg, opts, tests, display) + runTests(opts, provider) display.finish() if not opts.quiet: -- 2.40.0