Only run language specified tests
Add a template to generate a complete list of tests for C/C++, and use it to generate the list of binaries to run tests for.
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 0826dfc..71c68d7 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -41,12 +41,17 @@
class CLanguage(object):
- def __init__(self, make_target):
+ def __init__(self, make_target, test_lang):
self.allow_hashing = True
self.make_target = make_target
+ with open('tools/run_tests/tests.json') as f:
+ js = json.loads(f.read())
+ self.binaries = [tgt['name']
+ for tgt in js
+ if tgt['language'] == test_lang]
def test_binaries(self, config):
- return glob.glob('bins/%s/*_test' % config)
+ return ['bins/%s/%s' % (config, binary) for binary in self.binaries]
def make_targets(self):
return ['buildtests_%s' % self.make_target]
@@ -85,8 +90,8 @@
_DEFAULT = ['dbg', 'opt']
_LANGUAGES = {
- 'c++': CLanguage('cxx'),
- 'c': CLanguage('c'),
+ 'c++': CLanguage('cxx', 'c++'),
+ 'c': CLanguage('c', 'c'),
'php': PhpLanguage()
}