lit: Add internal script execution.
- Off by default, you can test it with the --no-sh argument.
- For me it works for all but 3 tests, but there a number of FIXMEs and QOI
issues:
o Redirection isn't completely accurate -- in practice it can't portably
be, but I would like to error out if someone writes something which isn't
going to work. This is the source of the 3 test failures.
o Some pipe configurations have the potential to deadlock.
o It is significantly slower when multithreaded. I believe this is due to
locking happening under the hood, there is probably some kind of solution
but I haven't investigated yet.
o Log output is ugly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77784 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/test/MultiTestRunner.py b/utils/test/MultiTestRunner.py
index 00cdfd4..df67b0e 100755
--- a/utils/test/MultiTestRunner.py
+++ b/utils/test/MultiTestRunner.py
@@ -249,6 +249,9 @@
group.add_option("", "--path", dest="path",
help="Additional paths to add to testing environment",
action="append", type=str, default=[])
+ group.add_option("", "--no-sh", dest="useExternalShell",
+ help="Run tests using an external shell",
+ action="store_false", default=True)
group.add_option("", "--vg", dest="useValgrind",
help="Run tests under valgrind",
action="store_true", default=False)
@@ -314,6 +317,7 @@
cfg.clang = opts.clang
cfg.clangcc = opts.clangcc
cfg.useValgrind = opts.useValgrind
+ cfg.useExternalShell = opts.useExternalShell
# FIXME: It could be worth loading these in parallel with testing.
allTests = list(getTests(cfg, args))