Add --vg-arg option to clang test runner.
 - Passes additional argument through to valgrind.

Also, don't run valgrind with --leak-check=no by default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80981 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/test/MultiTestRunner.py b/utils/test/MultiTestRunner.py
index c94f114..6e15f1c 100755
--- a/utils/test/MultiTestRunner.py
+++ b/utils/test/MultiTestRunner.py
@@ -257,6 +257,9 @@
     group.add_option("", "--vg", dest="useValgrind",
                      help="Run tests under valgrind",
                      action="store_true", default=False)
+    group.add_option("", "--vg-arg", dest="valgrindArgs",
+                     help="Specify an extra argument for valgrind",
+                     type=str, action="append", default=[])
     group.add_option("", "--time-tests", dest="timeTests",
                      help="Track elapsed wall time for each test",
                      action="store_true", default=False)
@@ -320,6 +323,7 @@
     cfg.clang = opts.clang
     cfg.clangcc = opts.clangcc
     cfg.useValgrind = opts.useValgrind
+    cfg.valgrindArgs = opts.valgrindArgs
     cfg.useExternalShell = opts.useExternalShell
 
     # FIXME: It could be worth loading these in parallel with testing.
diff --git a/utils/test/TestRunner.py b/utils/test/TestRunner.py
index 3c0c807..2fdede0 100755
--- a/utils/test/TestRunner.py
+++ b/utils/test/TestRunner.py
@@ -149,9 +149,10 @@
         if cfg.useValgrind:
             # FIXME: Running valgrind on sh is overkill. We probably could just
             # run on clang with no real loss.
-            command = ['valgrind', '-q',
-                       '--tool=memcheck', '--leak-check=no', '--trace-children=yes',
-                       '--error-exitcode=123'] + command
+            valgrindArgs = ['valgrind', '-q',
+                            '--tool=memcheck', '--trace-children=yes',
+                            '--error-exitcode=123'] + cfg.valgrindArgs
+            command = valgrindArgs + command
 
     p = subprocess.Popen(command, cwd=cwd,
                          stdin=subprocess.PIPE,
diff --git a/utils/test/TestingConfig.py b/utils/test/TestingConfig.py
index a43bd76..b611d78 100644
--- a/utils/test/TestingConfig.py
+++ b/utils/test/TestingConfig.py
@@ -20,6 +20,7 @@
         self.root = None
         self.useValgrind = None
         self.useExternalShell = None
+        self.valgrindArgs = []
 
         # FIXME: These need to move into a substitutions mechanism.
         self.clang = None