lit: Add --param NAME=VALUE option, for test suite specific use (to communicate
arbitrary command line arguments to the test suite).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86137 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/lit/lit.py b/utils/lit/lit.py
index a856473..462f912 100755
--- a/utils/lit/lit.py
+++ b/utils/lit/lit.py
@@ -321,6 +321,10 @@
     parser.add_option("", "--config-prefix", dest="configPrefix",
                       metavar="NAME", help="Prefix for 'lit' config files",
                       action="store", default=None)
+    parser.add_option("", "--param", dest="userParameters",
+                      metavar="NAME=VAL",
+                      help="Add 'NAME' = 'VAL' to the user defined parameters",
+                      type=str, action="append", default=[])
 
     group = OptionGroup(parser, "Output Format")
     # FIXME: I find these names very confusing, although I like the
@@ -396,6 +400,15 @@
 
     inputs = args
 
+    # Create the user defined parameters.
+    userParams = {}
+    for entry in opts.userParameters:
+        if '=' not in entry:
+            name,val = entry,''
+        else:
+            name,val = entry.split('=', 1)
+        userParams[name] = val
+
     # Create the global config object.
     litConfig = LitConfig.LitConfig(progname = os.path.basename(sys.argv[0]),
                                     path = opts.path,
@@ -405,7 +418,8 @@
                                     useTclAsSh = opts.useTclAsSh,
                                     noExecute = opts.noExecute,
                                     debug = opts.debug,
-                                    isWindows = (platform.system()=='Windows'))
+                                    isWindows = (platform.system()=='Windows'),
+                                    params = userParams)
 
     # Load the tests from the inputs.
     tests = []