Force GRPC_TRACE=surface,batch for wrapped languages

Trying to make all bugs become clearer
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 41f53a4..1f94238 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -61,7 +61,7 @@
     self.environ = environ
     self.environ['CONFIG'] = config
 
-  def job_spec(self, cmdline, hash_targets, shortname=None):
+  def job_spec(self, cmdline, hash_targets, shortname=None, environ={}):
     """Construct a jobset.JobSpec for a test under this config
 
        Args:
@@ -73,9 +73,12 @@
                        -- if used, all artifacts needed to run the test must
                           be listed
     """
+    actual_environ = self.environ.copy()
+    for k, v in environ.iteritems():
+      actual_environ[k] = v
     return jobset.JobSpec(cmdline=cmdline,
                           shortname=shortname,
-                          environ=self.environ,
+                          environ=actual_environ,
                           hash_targets=hash_targets
                               if self.allow_hashing else None)
 
@@ -143,7 +146,8 @@
 class NodeLanguage(object):
 
   def test_specs(self, config, travis):
-    return [config.job_spec(['tools/run_tests/run_node.sh'], None)]
+    return [config.job_spec(['tools/run_tests/run_node.sh'], None,
+                            environ={'GRPC_TRACE': 'surface,batch'})]
 
   def make_targets(self):
     return ['static_c']
@@ -161,7 +165,8 @@
 class PhpLanguage(object):
 
   def test_specs(self, config, travis):
-    return [config.job_spec(['src/php/bin/run_tests.sh'], None)]
+    return [config.job_spec(['src/php/bin/run_tests.sh'], None,
+                            environ={'GRPC_TRACE': 'surface,batch'})]
 
   def make_targets(self):
     return ['static_c']
@@ -184,15 +189,17 @@
 
   def test_specs(self, config, travis):
     modules = [config.job_spec(['tools/run_tests/run_python.sh', '-m',
-                                test['module']], 
-                               None, 
+                                test['module']],
+                               None,
+                               environ={'GRPC_TRACE': 'surface,batch'},
                                shortname=test['module'])
                for test in self._tests if 'module' in test]
     files = [config.job_spec(['tools/run_tests/run_python.sh',
-                              test['file']], 
-                             None, 
+                              test['file']],
+                             None,
+                             environ={'GRPC_TRACE': 'surface,batch'},
                              shortname=test['file'])
-             for test in self._tests if 'file' in test]
+            for test in self._tests if 'file' in test]
     return files + modules
 
   def make_targets(self):
@@ -211,7 +218,8 @@
 class RubyLanguage(object):
 
   def test_specs(self, config, travis):
-    return [config.job_spec(['tools/run_tests/run_ruby.sh'], None)]
+    return [config.job_spec(['tools/run_tests/run_ruby.sh'], None,
+                            environ={'GRPC_TRACE': 'surface,batch'})]
 
   def make_targets(self):
     return ['run_dep_checks']
@@ -232,7 +240,8 @@
                   'Grpc.Examples.Tests',
                   'Grpc.IntegrationTesting']
     return [config.job_spec(['tools/run_tests/run_csharp.sh', assembly],
-            None, shortname=assembly)
+            None, shortname=assembly,
+            environ={'GRPC_TRACE': 'surface,batch'})
             for assembly in assemblies ]
 
   def make_targets(self):