Allow language to be specified to run_tests.py
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 7737b94..aa3245d 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -46,7 +46,10 @@
 
 
 _DEFAULT = ['dbg', 'opt']
-_MAKE_TEST_TARGETS = ['buildtests_c', 'buildtests_cxx']
+_LANGUAGE_TEST_TARGETS = {
+    'c++': 'buildtests_cxx',
+    'c': 'buildtests_c',
+}
 
 # parse command line
 argp = argparse.ArgumentParser(description='Run grpc tests.')
@@ -64,6 +67,10 @@
                   default=False,
                   action='store_const',
                   const=True)
+argp.add_argument('-l', '--language',
+                  choices=sorted(_LANGUAGE_TEST_TARGETS.keys()),
+                  nargs='+',
+                  default=sorted(_LANGUAGE_TEST_TARGETS.keys()))
 args = argp.parse_args()
 
 # grab config
@@ -72,6 +79,7 @@
                       _CONFIGS.iterkeys() if x == 'all' else [x]
                       for x in args.config))
 build_configs = set(cfg.build_config for cfg in run_configs)
+make_targets = set(_LANGUAGE_TEST_TARGETS[x] for x in args.language)
 filters = args.test_filter
 runs_per_test = args.runs_per_test
 forever = args.forever
@@ -83,7 +91,7 @@
   if not jobset.run(
       (['make',
         '-j', '%d' % (multiprocessing.cpu_count() + 1),
-        'CONFIG=%s' % cfg] + _MAKE_TEST_TARGETS
+        'CONFIG=%s' % cfg] + list(make_targets)
        for cfg in build_configs),
       check_cancelled, maxjobs=1):
     return 1