From 6779647c8922c60184873bacdc6743eba6b4942c Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Mon, 27 Jul 2009 19:01:13 +0000 Subject: [PATCH] Tweak MultiTestRunner --path argument. - Accept multiple values instead of embedding separator. - Make sure this gets used when searching for 'clang' binary. - Switch makefiles to using --path to stay in sync with cmake. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77234 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Makefile | 5 ++++- utils/test/MultiTestRunner.py | 10 ++++++---- utils/test/TestRunner.py | 8 +++++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/test/Makefile b/test/Makefile index d649174b71..97c9d27404 100644 --- a/test/Makefile +++ b/test/Makefile @@ -20,7 +20,10 @@ endif all:: @ echo '--- Running clang tests for $(TARGET_TRIPLE) ---' - @ PATH=$(ToolDir):$(LLVM_SRC_ROOT)/test/Scripts:$$PATH $(PROJ_SRC_DIR)/../utils/test/MultiTestRunner.py $(TESTARGS) $(TESTDIRS) $(VGARG) + @ $(PROJ_SRC_DIR)/../utils/test/MultiTestRunner.py \ + --path $(ToolDir) \ + --path $(LLVM_SRC_ROOT)/test/Scripts \ + $(TESTARGS) $(TESTDIRS) $(VGARG) clean:: @ rm -rf Output/ diff --git a/utils/test/MultiTestRunner.py b/utils/test/MultiTestRunner.py index 04bd74f65d..8b48d8d6c7 100755 --- a/utils/test/MultiTestRunner.py +++ b/utils/test/MultiTestRunner.py @@ -236,7 +236,7 @@ def main(): action="store_true", default=False) parser.add_option("", "--path", dest="path", help="Additional paths to add to testing environment", - action="store", type=str, default=None) + action="append", type=str, default=[]) (opts, args) = parser.parse_args() @@ -246,6 +246,10 @@ def main(): parser.error('Support for running with valgrind is ' 'temporarily disabled') + # FIXME: Move into configuration object. + TestRunner.kChildEnv["PATH"] = os.pathsep.join(opts.path + + [TestRunner.kChildEnv['PATH']]) + if opts.clang is None: opts.clang = TestRunner.inferClang() if opts.clangcc is None: @@ -266,9 +270,7 @@ def main(): random.shuffle(tests) if opts.maxTests is not None: tests = tests[:opts.maxTests] - if opts.path is not None: - os.environ["PATH"] = opts.path + ":" + os.environ["PATH"]; - + extra = '' if len(tests) != len(allTests): extra = ' of %d'%(len(allTests),) diff --git a/utils/test/TestRunner.py b/utils/test/TestRunner.py index 2059b51184..9aae55cede 100755 --- a/utils/test/TestRunner.py +++ b/utils/test/TestRunner.py @@ -142,8 +142,8 @@ def runOneTest(testPath, tmpBase, clang, clangcc): if not ln.endswith('&&'): return (TestStatus.Fail, - "MISSING \'&&\': %s\n" + - "FOLLOWED BY : %s\n" % (ln,scriptLines[i + 1])) + ("MISSING \'&&\': %s\n" + + "FOLLOWED BY : %s\n") % (ln, scriptLines[i + 1])) # Strip off '&&' scriptLines[i] = ln[:-2] @@ -182,12 +182,14 @@ def capture(args): return out def which(command): + # FIXME: Take configuration object. + # Check for absolute match first. if os.path.exists(command): return command # Would be nice if Python had a lib function for this. - paths = os.environ.get('PATH') + paths = kChildEnv['PATH'] if not paths: paths = os.defpath