Added CONFIG environment variable to build and test scripts, fixed some bugs

pull/954/head
murgatroid99 10 years ago
parent 9cf9fcaf53
commit 132ce6a232
  1. 8
      tools/run_tests/build_node.sh
  2. 6
      tools/run_tests/jobset.py
  3. 4
      tools/run_tests/run_node.sh
  4. 55
      tools/run_tests/run_tests.py

@ -36,12 +36,8 @@ CONFIG=${CONFIG:-opt}
# change to grpc repo root
cd $(dirname $0)/../..
# tells npm install to look for files in that directory
export GRPC_ROOT=`pwd`
# tells npm install the subdirectory with library files
export GRPC_LIB_SUBDIR=libs/$CONFIG
# tells npm install not to use default locations
export GRPC_NO_INSTALL=yes
export CXXFLAGS=-I`pwd`/include
export LDFLAGS=-L`pwd`/libs/$CONFIG
cd src/node

@ -136,7 +136,7 @@ def which(filename):
class JobSpec(object):
"""Specifies what to run for a job."""
def __init__(self, cmdline, shortname=None, environ={}, hash_targets=[]):
def __init__(self, cmdline, shortname=None, environ=None, hash_targets=None):
"""
Arguments:
cmdline: a list of arguments to pass as the command line
@ -144,6 +144,10 @@ class JobSpec(object):
hash_targets: which files to include in the hash representing the jobs version
(or empty, indicating the job should not be hashed)
"""
if environ is None:
environ = {}
if hash_targets is None:
hash_targets = []
self.cmdline = cmdline
self.environ = environ
self.shortname = cmdline[0] if shortname is None else shortname

@ -30,9 +30,13 @@
set -ex
CONFIG=${CONFIG:-opt}
# change to grpc repo root
cd $(dirname $0)/../..
root=`pwd`
export LD_LIBRARY_PATH=$root/libs/$CONFIG
$root/src/node/node_modules/mocha/bin/mocha $root/src/node/test

@ -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, binary, hash_targets):
return jobset.JobSpec(cmdline=[binary],
@ -67,7 +70,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
@ -104,6 +109,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):
@ -116,6 +127,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):
@ -128,6 +145,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):
@ -140,6 +163,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):
@ -151,6 +180,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):
@ -162,6 +197,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'),
@ -226,6 +267,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,
@ -233,7 +281,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(

Loading…
Cancel
Save