diff options
author | 2015-03-05 11:29:50 -0800 | |
---|---|---|
committer | 2015-03-05 11:29:50 -0800 | |
commit | 1e90c8cffce4f5985ba7ae76131e16069ffa0d14 (patch) | |
tree | 4b43c49bce3859771ad0db82dcede169e93c7c7c /tools/run_tests/run_tests.py | |
parent | 639ca900ee6f44ea0f8d3bae38c0c735a212e0b6 (diff) | |
parent | 2decfa2f7caf67e6129c2e02a62b8feb2d20e3bd (diff) |
Merge pull request #954 from murgatroid99/node_binding_cleanup
Cleaned up some unnecessary verbosity in Node's binding.gyp
Diffstat (limited to 'tools/run_tests/run_tests.py')
-rwxr-xr-x | tools/run_tests/run_tests.py | 55 |
1 files changed, 52 insertions, 3 deletions
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 9d45693cd4..0f4544a5c6 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -51,11 +51,14 @@ os.chdir(ROOT) # SimpleConfig: just compile with CONFIG=config, and run the binary to test class SimpleConfig(object): - def __init__(self, config, environ={}): + def __init__(self, config, environ=None): + if environ is None: + environ = {} self.build_config = config self.maxjobs = 2 * multiprocessing.cpu_count() self.allow_hashing = (config != 'gcov') self.environ = environ + self.environ['CONFIG'] = config def job_spec(self, cmdline, hash_targets): """Construct a jobset.JobSpec for a test under this config @@ -78,7 +81,9 @@ class SimpleConfig(object): # ValgrindConfig: compile with some CONFIG=config, but use valgrind to run class ValgrindConfig(object): - def __init__(self, config, tool, args=[]): + def __init__(self, config, tool, args=None): + if args is None: + args = [] self.build_config = config self.tool = tool self.args = args @@ -115,6 +120,12 @@ class CLanguage(object): def build_steps(self): return [] + def supports_multi_config(self): + return True + + def __str__(self): + return self.make_target + class NodeLanguage(object): @@ -127,6 +138,12 @@ class NodeLanguage(object): def build_steps(self): return [['tools/run_tests/build_node.sh']] + def supports_multi_config(self): + return False + + def __str__(self): + return 'node' + class PhpLanguage(object): @@ -139,6 +156,12 @@ class PhpLanguage(object): def build_steps(self): return [['tools/run_tests/build_php.sh']] + def supports_multi_config(self): + return False + + def __str__(self): + return 'php' + class PythonLanguage(object): @@ -156,6 +179,12 @@ class PythonLanguage(object): def build_steps(self): return [['tools/run_tests/build_python.sh']] + def supports_multi_config(self): + return False + + def __str__(self): + return 'python' + class RubyLanguage(object): def test_specs(self, config, travis): @@ -167,6 +196,12 @@ class RubyLanguage(object): def build_steps(self): return [['tools/run_tests/build_ruby.sh']] + def supports_multi_config(self): + return False + + def __str__(self): + return 'ruby' + class CSharpLanguage(object): def test_specs(self, config, travis): @@ -178,6 +213,12 @@ class CSharpLanguage(object): def build_steps(self): return [['tools/run_tests/build_csharp.sh']] + def supports_multi_config(self): + return False + + def __str__(self): + return 'csharp' + # different configurations we can run under _CONFIGS = { 'dbg': SimpleConfig('dbg'), @@ -242,6 +283,13 @@ build_configs = set(cfg.build_config for cfg in run_configs) make_targets = [] languages = set(_LANGUAGES[l] for l in args.language) + +if len(build_configs) > 1: + for language in languages: + if not language.supports_multi_config(): + print language, 'does not support multiple build configurations' + sys.exit(1) + build_steps = [jobset.JobSpec(['make', '-j', '%d' % (multiprocessing.cpu_count() + 1), 'EXTRA_DEFINES=GRPC_TEST_SLOWDOWN_MACHINE_FACTOR=%f' % args.slowdown, @@ -249,7 +297,8 @@ build_steps = [jobset.JobSpec(['make', itertools.chain.from_iterable( l.make_targets() for l in languages)))) for cfg in build_configs] + list(set( - jobset.JobSpec(cmdline) + jobset.JobSpec(cmdline, environ={'CONFIG': cfg}) + for cfg in build_configs for l in languages for cmdline in l.build_steps())) one_run = set( |