[rtems-libbsd commit] waf: Fix test module dependency check

Chris Johns chrisj at rtems.org
Wed Sep 30 05:34:14 UTC 2020


Module:    rtems-libbsd
Branch:    6-freebsd-12
Commit:    7027254d293cf3a8c888bd9f25052e96f458bc67
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=7027254d293cf3a8c888bd9f25052e96f458bc67

Author:    Chris Johns <chrisj at rtems.org>
Date:      Wed Sep 30 15:31:23 2020 +1000

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 973fa15..8a1b9fd 100755
--- a/builder.py
+++ b/builder.py
@@ -605,13 +605,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
@@ -622,7 +624,8 @@ class TestFragementComposer(BuildSystemComposer):
             'files': self.fileFragments,
             'run': self.runTest,
             'net': self.netTest,
-            'libs': self.extraLibs
+            'libs': self.extraLibs,
+            'modules': self.modules,
         }
 
 
@@ -633,7 +636,8 @@ class TestIfHeaderComposer(TestFragementComposer):
                  fileFragments,
                  runTest=True,
                  netTest=False,
-                 extraLibs=[]):
+                 extraLibs=[],
+                 modules=[]):
         if headers is not list:
             headers = [headers]
         self.headers = headers
@@ -642,7 +646,8 @@ class TestIfHeaderComposer(TestFragementComposer):
                                                    'header',
                                                    runTest=runTest,
                                                    netTest=netTest,
-                                                   extraLibs=extraLibs)
+                                                   extraLibs=extraLibs,
+                                                   modules=modules)
 
     def compose(self, path):
         r = TestFragementComposer.compose(self, path)
@@ -657,7 +662,8 @@ class TestIfLibraryComposer(TestFragementComposer):
                  fileFragments,
                  runTest=True,
                  netTest=False,
-                 extraLibs=[]):
+                 extraLibs=[],
+                 modules=[]):
         if libraries is not list:
             libraries = [libraries]
         self.libraries = libraries
@@ -666,7 +672,8 @@ class TestIfLibraryComposer(TestFragementComposer):
                                                     'library',
                                                     runTest=runTest,
                                                     netTest=netTest,
-                                                    extraLibs=extraLibs)
+                                                    extraLibs=extraLibs,
+                                                    modules=modules)
 
     def compose(self, path):
         r = TestFragementComposer.compose(self, path)
@@ -987,12 +994,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 d9142ad..7c9743c 100644
--- a/libbsd.py
+++ b/libbsd.py
@@ -5162,8 +5162,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 ac7c275..3e15e9e 100644
--- a/waf_libbsd.py
+++ b/waf_libbsd.py
@@ -572,13 +572,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



More information about the vc mailing list