From d164b840c3973e0793da1b3e4142b1711514b9ba Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Wed, 30 Sep 2020 15:31:23 +1000 Subject: waf: Fix test module dependency check --- builder.py | 22 ++++++++++++++-------- libbsd.py | 4 ++-- waf_libbsd.py | 7 ++++++- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/builder.py b/builder.py index 7e79d5f9..cbe5dc59 100755 --- a/builder.py +++ b/builder.py @@ -608,13 +608,15 @@ class TestFragementComposer(BuildSystemComposer): configTest=None, runTest=True, netTest=False, - extraLibs=[]): + extraLibs=[], + modules=[]): self.testName = testName self.fileFragments = fileFragments self.configTest = configTest self.runTest = runTest self.netTest = netTest self.extraLibs = extraLibs + self.modules = modules def __str__(self): return 'TEST: ' + self.testName @@ -625,7 +627,8 @@ class TestFragementComposer(BuildSystemComposer): 'files': self.fileFragments, 'run': self.runTest, 'net': self.netTest, - 'libs': self.extraLibs + 'libs': self.extraLibs, + 'modules': self.modules, } @@ -636,7 +639,8 @@ class TestIfHeaderComposer(TestFragementComposer): fileFragments, runTest=True, netTest=False, - extraLibs=[]): + extraLibs=[], + modules=[]): if headers is not list: headers = [headers] self.headers = headers @@ -645,7 +649,8 @@ class TestIfHeaderComposer(TestFragementComposer): 'header', runTest=runTest, netTest=netTest, - extraLibs=extraLibs) + extraLibs=extraLibs, + modules=modules) def compose(self, path): r = TestFragementComposer.compose(self, path) @@ -660,7 +665,8 @@ class TestIfLibraryComposer(TestFragementComposer): fileFragments, runTest=True, netTest=False, - extraLibs=[]): + extraLibs=[], + modules=[]): if libraries is not list: libraries = [libraries] self.libraries = libraries @@ -669,7 +675,8 @@ class TestIfLibraryComposer(TestFragementComposer): 'library', runTest=runTest, netTest=netTest, - extraLibs=extraLibs) + extraLibs=extraLibs, + modules=modules) def compose(self, path): r = TestFragementComposer.compose(self, path) @@ -990,12 +997,11 @@ class Module(object): NoConverter(), assertSourceFile, sourceFileBuildComposer) - def addTest(self, testFragementComposer, dependencies=[]): + def addTest(self, testFragementComposer): self.files += [ File('user', testFragementComposer.testName, PathComposer(), NoConverter(), NoConverter(), testFragementComposer) ] - self.dependencies += dependencies def addDependency(self, dep): if not isinstance(dep, str): diff --git a/libbsd.py b/libbsd.py index b9de3cbd..caa1c730 100644 --- a/libbsd.py +++ b/libbsd.py @@ -5333,8 +5333,8 @@ class tests(builder.Module): def generate(self): mm = self.manager self.addTest(mm.generator['test']('epoch01', ['test_main'], extraLibs = ['rtemstest'])) - self.addTest(mm.generator['test']('nfs01', ['test_main'], netTest = True), - ['nfsv2']) + self.addTest(mm.generator['test']('nfs01', ['test_main'], + netTest = True, modules = ['nfsv2'])) self.addTest(mm.generator['test']('foobarclient', ['test_main'], runTest = False, netTest = True)) self.addTest(mm.generator['test']('foobarserver', ['test_main'], diff --git a/waf_libbsd.py b/waf_libbsd.py index 17cab509..070d3eac 100644 --- a/waf_libbsd.py +++ b/waf_libbsd.py @@ -561,13 +561,18 @@ class Builder(builder.ModuleManager): tests = [] if 'tests' in self.data: tests = self.data['tests']['user'] + enabled_modules = self.getEnabledModules() for testName in sorted(tests): test = tests[testName]['all'] test_source = [] libs = ['bsd', 'm', 'z', 'rtemstest'] for cfg in test: build_test = True - if cfg != 'default': + for mod in test[cfg]['modules']: + if mod not in enabled_modules: + build_test = False + break + if build_test and cfg != 'default': for c in cfg.split(' '): if not bld.env['HAVE_%s' % (c)]: build_test = False -- cgit v1.2.3