From dd35ec5cd75e955f50fba3cd1c614d54eec0d1c4 Mon Sep 17 00:00:00 2001 From: Christian Mauderer Date: Wed, 2 May 2018 11:25:18 +0200 Subject: waf: Allow to add libs per test. Update #3419. --- builder.py | 11 +++++++---- libbsd.py | 33 +++++++++++++++++++++++---------- waf_libbsd.py | 4 +++- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/builder.py b/builder.py index 125dcdda..b0d6374e 100755 --- a/builder.py +++ b/builder.py @@ -496,25 +496,28 @@ class SourceFileIfHeaderComposer(SourceFileFragmentComposer): class TestFragementComposer(BuildSystemFragmentComposer): - def __init__(self, testName, fileFragments, runTest = True, netTest = False): + def __init__(self, testName, fileFragments, runTest = True, netTest = False, extraLibs = []): self.testName = testName self.fileFragments = fileFragments self.runTest = runTest self.netTest = netTest + self.extraLibs = extraLibs def compose(self, path): return ['tests', self.testName, ('default', None)], { 'files': self.fileFragments, 'run': self.runTest, - 'net': self.netTest } + 'net': self.netTest, + 'libs': self.extraLibs} class TestIfHeaderComposer(TestFragementComposer): - def __init__(self, testName, headers, fileFragments, runTest = True, netTest = False): + def __init__(self, testName, headers, fileFragments, runTest = True, netTest = False, extraLibs = []): if headers is not list: headers = [headers] self.headers = headers super(TestIfHeaderComposer, self).__init__(testName, fileFragments, - runTest = runTest, netTest = netTest) + runTest = runTest, netTest = netTest, + extraLibs = extraLibs) def compose(self, path): r = TestFragementComposer.compose(self, path) diff --git a/libbsd.py b/libbsd.py index cf5812b6..dac1ece1 100644 --- a/libbsd.py +++ b/libbsd.py @@ -4703,10 +4703,14 @@ class tests(builder.Module): self.addTest(mm.generator['test']('arphole', ['test_main'], runTest = False, netTest = True)) self.addTest(mm.generator['test']('telnetd01', ['test_main'], - runTest = False, netTest = True)) + runTest = False, netTest = True, + extraLibs = ['telnetd'])) self.addTest(mm.generator['test']('unix01', ['test_main'])) - self.addTest(mm.generator['test']('ftpd01', ['test_main'], netTest = True)) - self.addTest(mm.generator['test']('ftpd02', ['test_main'])) + self.addTest(mm.generator['test']('ftpd01', ['test_main'], + netTest = True, + extraLibs = ['ftpd'])) + self.addTest(mm.generator['test']('ftpd02', ['test_main'], + extraLibs = ['ftpfs', 'ftpd'])) self.addTest(mm.generator['test']('ping01', ['test_main'], netTest = True)) self.addTest(mm.generator['test']('selectpollkqueue01', ['test_main'])) self.addTest(mm.generator['test']('rwlock01', ['test_main'])) @@ -4727,19 +4731,27 @@ class tests(builder.Module): self.addTest(mm.generator['test']('thread01', ['test_main'])) self.addTest(mm.generator['test']('mutex01', ['test_main'])) self.addTest(mm.generator['test']('condvar01', ['test_main'])) - self.addTest(mm.generator['test']('ppp01', ['test_main'], runTest = False)) + self.addTest(mm.generator['test']('ppp01', ['test_main'], runTest = False, + extraLibs = ['ftpd', 'telnetd'])) self.addTest(mm.generator['test']('zerocopy01', ['test_main'], - runTest = False, netTest = True)) + runTest = False, netTest = True, + extraLibs = ['telnetd'])) self.addTest(mm.generator['test']('smp01', ['test_main'])) - self.addTest(mm.generator['test']('media01', ['test_main'], runTest = False)) + self.addTest(mm.generator['test']('media01', ['test_main'], + runTest = False, + extraLibs = ['ftpd', 'telnetd'])) self.addTest(mm.generator['test']('vlan01', ['test_main'], netTest = True)) self.addTest(mm.generator['test']('lagg01', ['test_main'], netTest = True)) self.addTest(mm.generator['test']('log01', ['test_main'])) self.addTest(mm.generator['test']('rcconf01', ['test_main'])) - self.addTest(mm.generator['test']('rcconf02', ['test_main'])) + self.addTest(mm.generator['test']('rcconf02', ['test_main'], + extraLibs = ['ftpd', 'telnetd'])) self.addTest(mm.generator['test']('cdev01', ['test_main', 'test_cdev'])) - self.addTest(mm.generator['test']('pf01', ['test_main'])) - self.addTest(mm.generator['test']('pf02', ['test_main'], runTest = False)) + self.addTest(mm.generator['test']('pf01', ['test_main'], + extraLibs = ['ftpd', 'telnetd'])) + self.addTest(mm.generator['test']('pf02', ['test_main'], + runTest = False, + extraLibs = ['ftpd', 'telnetd'])) self.addTest(mm.generator['test']('termios', ['test_main', 'test_termios_driver', 'test_termios_utilities'])) @@ -4762,7 +4774,8 @@ class tests(builder.Module): '../termios/test_termios_driver', '../termios/test_termios_utilities'])) self.addTest(mm.generator['test-if-header']('debugger01', 'rtems/rtems-debugger.h', - ['test_main'], runTest = False, netTest = True)) + ['test_main'], runTest = False, netTest = True, + extraLibs = ['debugger'])) self.addTest(mm.generator['test']('crypto01', ['test_main'])) def load(mm): diff --git a/waf_libbsd.py b/waf_libbsd.py index 1f498aa3..0972cf2c 100644 --- a/waf_libbsd.py +++ b/waf_libbsd.py @@ -496,6 +496,7 @@ class Builder(builder.ModuleManager): for testName in sorted(tests): test = self.data['tests'][testName]['all'] test_source = [] + libs = ['bsd', 'm', 'z'] for cfg in test: build_test = True if cfg != 'default': @@ -506,6 +507,7 @@ class Builder(builder.ModuleManager): if build_test: test_sources = ['testsuite/%s/%s.c' % (testName, f) \ for f in test[cfg]['files']] + libs = test[cfg]['libs'] + libs if build_test: bld.program(target = '%s.exe' % (testName), features = 'cprogram', @@ -513,5 +515,5 @@ class Builder(builder.ModuleManager): includes = includes, source = test_sources, use = ['bsd'], - lib = ['ftpfs', 'ftpd', 'telnetd', 'bsd', 'm', 'z'], + lib = libs, install_path = None) -- cgit v1.2.3