Allow forcing the use of the default polling strategy [instead of all strategies]
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index f7282dd..2de2120 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -62,6 +62,11 @@
 _FORCE_ENVIRON_FOR_WRAPPERS = {}
 
 
+_POLLING_STRATEGIES = {
+  'linux': ['poll', 'legacy']
+}
+
+
 def platform_string():
   return jobset.platform_string()
 
@@ -153,14 +158,8 @@
   def test_specs(self):
     out = []
     binaries = get_c_tests(self.args.travis, self.test_lang)
-    POLLING_STRATEGIES = {
-      'windows': ['all'],
-      'mac': ['all'],
-      'posix': ['all'],
-      'linux': ['poll', 'legacy']
-    }
     for target in binaries:
-      polling_strategies = (POLLING_STRATEGIES[self.platform]
+      polling_strategies = (_POLLING_STRATEGIES.get(self.platform, ['all'])
                             if target.get('uses_polling', True)
                             else ['all'])
       for polling_strategy in polling_strategies:
@@ -382,7 +381,7 @@
       tests_json = json.load(tests_json_file)
     environment = dict(_FORCE_ENVIRON_FOR_WRAPPERS)
     environment['PYTHONPATH'] = '{}:{}'.format(
-      os.path.abspath('src/python/gens'), 
+      os.path.abspath('src/python/gens'),
       os.path.abspath('src/python/grpcio_health_checking'))
     if self.config.build_config != 'gcov':
       return [self.config.job_spec(
@@ -836,8 +835,13 @@
 argp.add_argument('-a', '--antagonists', default=0, type=int)
 argp.add_argument('-x', '--xml_report', default=None, type=str,
         help='Generates a JUnit-compatible XML report')
+argp.add_argument('--force_default_poller', default=False, action='store_const', const=True,
+                  help='Dont try to iterate over many polling strategies when they exist')
 args = argp.parse_args()
 
+if args.force_default_poller:
+  _POLLING_STRATEGIES = {}
+
 jobset.measure_cpu_costs = args.measure_cpu_costs
 
 # update submodules if necessary