mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-05-14 04:19:34 +08:00
waf: Change the test configure check for libdebugger to it's lib
- Add support for a 'test-if-library' - Use rtems_waf's 'test_application()' fragment in the check_cc call Closes #3948
This commit is contained in:
parent
2b9172c9d4
commit
3cc039cdac
30
builder.py
30
builder.py
@ -502,15 +502,17 @@ class SourceFileIfHeaderComposer(SourceFileFragmentComposer):
|
|||||||
|
|
||||||
class TestFragementComposer(BuildSystemFragmentComposer):
|
class TestFragementComposer(BuildSystemFragmentComposer):
|
||||||
|
|
||||||
def __init__(self, testName, fileFragments, runTest = True, netTest = False, extraLibs = []):
|
def __init__(self, testName, fileFragments, configTest = None, runTest = True, netTest = False, extraLibs = []):
|
||||||
self.testName = testName
|
self.testName = testName
|
||||||
self.fileFragments = fileFragments
|
self.fileFragments = fileFragments
|
||||||
|
self.configTest = configTest
|
||||||
self.runTest = runTest
|
self.runTest = runTest
|
||||||
self.netTest = netTest
|
self.netTest = netTest
|
||||||
self.extraLibs = extraLibs
|
self.extraLibs = extraLibs
|
||||||
|
|
||||||
def compose(self, path):
|
def compose(self, path):
|
||||||
return ['tests', self.testName, ('default', None)], { 'files': self.fileFragments,
|
return ['tests', self.testName, ('default', None)], { 'configTest': self.configTest,
|
||||||
|
'files': self.fileFragments,
|
||||||
'run': self.runTest,
|
'run': self.runTest,
|
||||||
'net': self.netTest,
|
'net': self.netTest,
|
||||||
'libs': self.extraLibs}
|
'libs': self.extraLibs}
|
||||||
@ -521,7 +523,7 @@ class TestIfHeaderComposer(TestFragementComposer):
|
|||||||
if headers is not list:
|
if headers is not list:
|
||||||
headers = [headers]
|
headers = [headers]
|
||||||
self.headers = headers
|
self.headers = headers
|
||||||
super(TestIfHeaderComposer, self).__init__(testName, fileFragments,
|
super(TestIfHeaderComposer, self).__init__(testName, fileFragments, 'header',
|
||||||
runTest = runTest, netTest = netTest,
|
runTest = runTest, netTest = netTest,
|
||||||
extraLibs = extraLibs)
|
extraLibs = extraLibs)
|
||||||
|
|
||||||
@ -536,6 +538,27 @@ class TestIfHeaderComposer(TestFragementComposer):
|
|||||||
r[0][2] = (define_keys.strip(), self.headers)
|
r[0][2] = (define_keys.strip(), self.headers)
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
class TestIfLibraryComposer(TestFragementComposer):
|
||||||
|
|
||||||
|
def __init__(self, testName, libraries, fileFragments, runTest = True, netTest = False, extraLibs = []):
|
||||||
|
if libraries is not list:
|
||||||
|
libraries = [libraries]
|
||||||
|
self.libraries = libraries
|
||||||
|
super(TestIfLibraryComposer, self).__init__(testName, fileFragments, 'library',
|
||||||
|
runTest = runTest, netTest = netTest,
|
||||||
|
extraLibs = extraLibs)
|
||||||
|
|
||||||
|
def compose(self, path):
|
||||||
|
r = TestFragementComposer.compose(self, path)
|
||||||
|
define_keys = ''
|
||||||
|
for l in self.libraries:
|
||||||
|
l = l.upper()
|
||||||
|
for c in '\/-.':
|
||||||
|
l = l.replace(c, '_')
|
||||||
|
define_keys += ' ' + l
|
||||||
|
r[0][2] = (define_keys.strip(), self.libraries)
|
||||||
|
return r
|
||||||
|
|
||||||
class KVMSymbolsFragmentComposer(BuildSystemFragmentComposer):
|
class KVMSymbolsFragmentComposer(BuildSystemFragmentComposer):
|
||||||
|
|
||||||
def compose(self, path):
|
def compose(self, path):
|
||||||
@ -849,3 +872,4 @@ class ModuleManager(object):
|
|||||||
|
|
||||||
self.generator['source-if-header'] = SourceFileIfHeaderComposer
|
self.generator['source-if-header'] = SourceFileIfHeaderComposer
|
||||||
self.generator['test-if-header'] = TestIfHeaderComposer
|
self.generator['test-if-header'] = TestIfHeaderComposer
|
||||||
|
self.generator['test-if-library'] = TestIfLibraryComposer
|
||||||
|
@ -5105,8 +5105,8 @@ class tests(builder.Module):
|
|||||||
self.addTest(mm.generator['test']('termios06', ['test_main',
|
self.addTest(mm.generator['test']('termios06', ['test_main',
|
||||||
'../termios/test_termios_driver',
|
'../termios/test_termios_driver',
|
||||||
'../termios/test_termios_utilities']))
|
'../termios/test_termios_utilities']))
|
||||||
self.addTest(mm.generator['test-if-header']('debugger01', 'rtems/rtems-debugger.h',
|
self.addTest(mm.generator['test-if-library']('debugger01', 'debugger',
|
||||||
['test_main'], runTest = False, netTest = True,
|
['test_main'], runTest = False, netTest = True,
|
||||||
extraLibs = ['debugger']))
|
extraLibs = ['debugger']))
|
||||||
self.addTest(mm.generator['test']('crypto01', ['test_main']))
|
self.addTest(mm.generator['test']('crypto01', ['test_main']))
|
||||||
self.addTest(mm.generator['test']('ipsec01', ['test_main']))
|
self.addTest(mm.generator['test']('ipsec01', ['test_main']))
|
||||||
|
@ -109,7 +109,10 @@ class Builder(builder.ModuleManager):
|
|||||||
if config != 'default':
|
if config != 'default':
|
||||||
if 'configure' not in data:
|
if 'configure' not in data:
|
||||||
data['configure'] = { }
|
data['configure'] = { }
|
||||||
data['configure'][config] = frag[0][2][1]
|
configTest = frag[1]['configTest']
|
||||||
|
if configTest not in data['configure']:
|
||||||
|
data['configure'][configTest] = { }
|
||||||
|
data['configure'][configTest][config] = frag[0][2][1]
|
||||||
if type(frag[1]) is list:
|
if type(frag[1]) is list:
|
||||||
if config not in d[cpu]:
|
if config not in d[cpu]:
|
||||||
d[cpu][config] = []
|
d[cpu][config] = []
|
||||||
@ -149,12 +152,23 @@ class Builder(builder.ModuleManager):
|
|||||||
|
|
||||||
def bsp_configure(self, conf, arch_bsp):
|
def bsp_configure(self, conf, arch_bsp):
|
||||||
if 'configure' in self.data:
|
if 'configure' in self.data:
|
||||||
for cfg in self.data['configure']:
|
for configTest in self.data['configure']:
|
||||||
for h in self.data['configure'][cfg]:
|
for cfg in self.data['configure'][configTest]:
|
||||||
conf.check(header_name = h,
|
if configTest == 'header':
|
||||||
features = "c",
|
for h in self.data['configure'][configTest][cfg]:
|
||||||
includes = conf.env.IFLAGS,
|
conf.check(header_name = h,
|
||||||
mandatory = False)
|
features = "c",
|
||||||
|
includes = conf.env.IFLAGS,
|
||||||
|
mandatory = False)
|
||||||
|
elif configTest == 'library':
|
||||||
|
for l in self.data['configure'][configTest][cfg]:
|
||||||
|
conf.check_cc(lib = l,
|
||||||
|
fragment = rtems.test_application(),
|
||||||
|
execute = False,
|
||||||
|
mandatory = False)
|
||||||
|
else:
|
||||||
|
bld.fatal('invalid config test: %s' % (configTest))
|
||||||
|
|
||||||
|
|
||||||
def build(self, bld):
|
def build(self, bld):
|
||||||
#
|
#
|
||||||
|
Loading…
x
Reference in New Issue
Block a user