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
This commit is contained in:
Daniel Dunbar 2009-07-27 19:01:13 +00:00
Родитель 6c1fddf9f2
Коммит 6779647c89
3 изменённых файлов: 15 добавлений и 8 удалений

Просмотреть файл

@ -20,7 +20,10 @@ endif
all:: all::
@ echo '--- Running clang tests for $(TARGET_TRIPLE) ---' @ 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:: clean::
@ rm -rf Output/ @ rm -rf Output/

Просмотреть файл

@ -236,7 +236,7 @@ def main():
action="store_true", default=False) action="store_true", default=False)
parser.add_option("", "--path", dest="path", parser.add_option("", "--path", dest="path",
help="Additional paths to add to testing environment", help="Additional paths to add to testing environment",
action="store", type=str, default=None) action="append", type=str, default=[])
(opts, args) = parser.parse_args() (opts, args) = parser.parse_args()
@ -246,6 +246,10 @@ def main():
parser.error('Support for running with valgrind is ' parser.error('Support for running with valgrind is '
'temporarily disabled') 'temporarily disabled')
# FIXME: Move into configuration object.
TestRunner.kChildEnv["PATH"] = os.pathsep.join(opts.path +
[TestRunner.kChildEnv['PATH']])
if opts.clang is None: if opts.clang is None:
opts.clang = TestRunner.inferClang() opts.clang = TestRunner.inferClang()
if opts.clangcc is None: if opts.clangcc is None:
@ -266,9 +270,7 @@ def main():
random.shuffle(tests) random.shuffle(tests)
if opts.maxTests is not None: if opts.maxTests is not None:
tests = tests[:opts.maxTests] tests = tests[:opts.maxTests]
if opts.path is not None:
os.environ["PATH"] = opts.path + ":" + os.environ["PATH"];
extra = '' extra = ''
if len(tests) != len(allTests): if len(tests) != len(allTests):
extra = ' of %d'%(len(allTests),) extra = ' of %d'%(len(allTests),)

Просмотреть файл

@ -142,8 +142,8 @@ def runOneTest(testPath, tmpBase, clang, clangcc):
if not ln.endswith('&&'): if not ln.endswith('&&'):
return (TestStatus.Fail, return (TestStatus.Fail,
"MISSING \'&&\': %s\n" + ("MISSING \'&&\': %s\n" +
"FOLLOWED BY : %s\n" % (ln,scriptLines[i + 1])) "FOLLOWED BY : %s\n") % (ln, scriptLines[i + 1]))
# Strip off '&&' # Strip off '&&'
scriptLines[i] = ln[:-2] scriptLines[i] = ln[:-2]
@ -182,12 +182,14 @@ def capture(args):
return out return out
def which(command): def which(command):
# FIXME: Take configuration object.
# Check for absolute match first. # Check for absolute match first.
if os.path.exists(command): if os.path.exists(command):
return command return command
# Would be nice if Python had a lib function for this. # Would be nice if Python had a lib function for this.
paths = os.environ.get('PATH') paths = kChildEnv['PATH']
if not paths: if not paths:
paths = os.defpath paths = os.defpath