def test_pycparser_describe_device_measure(): obs = ad.pycparser_describe("device.c", "Device_measure", "func", ts=ts) exp = { #'name': {'srcname': 'Device_measure', 'tarname': 'Device_measure'}, "name": "Device_measure", "namespace": None, "signatures": { ("Device_measure", ("_0", ("uint32", "*"))): { "return": ("enum", "ErrorStatusTag", (("ERROR_OK", 0), ("ERROR_FAILED_INIT", 1))), "defaults": ((Arg.NONE, None),), }, ("Device_measure", ("aiValue", ("uint32", "*"))): { "return": ("enum", "ErrorStatusTag", (("ERROR_OK", 0), ("ERROR_FAILED_INIT", 1))), "defaults": ((Arg.NONE, None),), }, ("Device_measure", ("deviceNumber", "uchar"), ("aiValue", ("uint32", "*"))): { "return": ("enum", "ErrorStatusTag", (("ERROR_OK", 0), ("ERROR_FAILED_INIT", 1))), "defaults": ((Arg.NONE, None), (Arg.NONE, None)), }, ("Device_measure", ("_0", "uchar"), ("_1", ("uint32", "*"))): { "return": ("enum", "ErrorStatusTag", (("ERROR_OK", 0), ("ERROR_FAILED_INIT", 1))), "defaults": ((Arg.NONE, None), (Arg.NONE, None)), }, }, } assert_equal_or_diff(obs, exp)
def test_pycparser_describe_device_measure(): obs = ad.pycparser_describe('device.c', 'Device_measure', 'func', ts=ts) exp = { #'name': {'srcname': 'Device_measure', 'tarname': 'Device_measure'}, 'name': 'Device_measure', 'namespace': None, 'signatures': { ('Device_measure', ('_0', ('uint32', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None), ) }, ('Device_measure', ('aiValue', ('uint32', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None), ) }, ('Device_measure', ('deviceNumber', 'uchar'), ('aiValue', ('uint32', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None), (Arg.NONE, None)) }, ('Device_measure', ('_0', 'uchar'), ('_1', ('uint32', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None), (Arg.NONE, None)) }, } } assert_equal_or_diff(obs, exp)
def check(parser): goals = ( ('class', ('Base', 'int32', 7, 0), exp_base_desc(parser)), ('class', ('Point', True, 'CA', 0), exp_point_desc), ('class', 'Toaster', exp_toaster_desc), ('func', 'simple', exp_simple_desc), # Verify that we pick up parameter names from definitions ('func', 'twice', exp_twice_desc), # Verify that the first parameter name declaration wins ('func', 'conflict', exp_conflict_desc), ('func', ('lasso', 17, 'int32', 'float32'), exp_lasso_desc(17)), ('func', ('lasso', 18, 'int32', 'float32'), exp_lasso_desc(18)), ('class', 'Default', exp_default_desc), ('class', 'NoDefaultBase', exp_nodefault_base_desc), ('class', 'NoDefault', exp_nodefault_desc), ('var', 'Choices', exp_choices_desc)) for kind, name, exp in goals: obs = ad.describe(fname, name=name, kind=kind, parsers=parser, builddir=buildbase + '-' + parser, verbose=False, ts=ts, clang_includes=clang_includes) assert_equal_or_diff(obs, exp)
def test_pycparser_describe_device_measure(): obs = ad.pycparser_describe('device.c', 'Device_measure', 'func', ts=ts) exp = {#'name': {'srcname': 'Device_measure', 'tarname': 'Device_measure'}, 'name': 'Device_measure', 'namespace': None, 'signatures': { ('Device_measure', ('_0', ('uint32', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None),)}, ('Device_measure', ('aiValue', ('uint32', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None),)}, ('Device_measure', ('deviceNumber', 'uchar'), ('aiValue', ('uint32', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None), (Arg.NONE, None))}, ('Device_measure', ('_0', 'uchar'), ('_1', ('uint32', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None), (Arg.NONE, None))}, } } assert_equal_or_diff(obs, exp)
def check(parser): goals = ( ("class", ("Base", "int32", 7, 0), exp_base_desc(parser)), ("class", ("Point", True, "CA", 0), exp_point_desc), ("class", "Toaster", exp_toaster_desc), ("func", "simple", exp_simple_desc), # Verify that we pick up parameter names from definitions ("func", "twice", exp_twice_desc), # Verify that the first parameter name declaration wins ("func", "conflict", exp_conflict_desc), ("func", ("lasso", 17, "int32", "float32"), exp_lasso_desc(17)), ("func", ("lasso", 18, "int32", "float32"), exp_lasso_desc(18)), ("class", "Default", exp_default_desc), ("class", "NoDefaultBase", exp_nodefault_base_desc), ("class", "NoDefault", exp_nodefault_desc), ("var", "Choices", exp_choices_desc), ) for kind, name, exp in goals: obs = ad.describe( fname, name=name, kind=kind, parsers=parser, builddir=buildbase + "-" + parser, verbose=False, ts=ts, clang_includes=clang_includes, ) assert_equal_or_diff(obs, exp)
def test_pycparser_describe_device_init(): obs = ad.pycparser_describe('device.c', 'Device_Init', 'func', ts=ts) exp = {#'name': {'srcname': 'Device_Init', 'tarname': 'Device_Init'}, 'name': 'Device_Init', 'namespace': None, 'signatures': { ('Device_Init', ('_0', ('DeviceParamTag', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None),)}, ('Device_Init', ('param', ('DeviceParamTag', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None),)}, } } assert_equal_or_diff(obs, exp)
def test_pycparser_describe_device_init(): obs = ad.pycparser_describe("device.c", "Device_Init", "func", ts=ts) exp = { #'name': {'srcname': 'Device_Init', 'tarname': 'Device_Init'}, "name": "Device_Init", "namespace": None, "signatures": { ("Device_Init", ("_0", ("DeviceParamTag", "*"))): { "return": ("enum", "ErrorStatusTag", (("ERROR_OK", 0), ("ERROR_FAILED_INIT", 1))), "defaults": ((Arg.NONE, None),), }, ("Device_Init", ("param", ("DeviceParamTag", "*"))): { "return": ("enum", "ErrorStatusTag", (("ERROR_OK", 0), ("ERROR_FAILED_INIT", 1))), "defaults": ((Arg.NONE, None),), }, }, } assert_equal_or_diff(obs, exp)
def test_pycparser_describe_device_init(): obs = ad.pycparser_describe('device.c', 'Device_Init', 'func', ts=ts) exp = { #'name': {'srcname': 'Device_Init', 'tarname': 'Device_Init'}, 'name': 'Device_Init', 'namespace': None, 'signatures': { ('Device_Init', ('_0', ('DeviceParamTag', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None), ) }, ('Device_Init', ('param', ('DeviceParamTag', '*'))): { 'return': ('enum', 'ErrorStatusTag', (('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1))), 'defaults': ((Arg.NONE, None), ) }, } } assert_equal_or_diff(obs, exp)
def test_pycparser_describe_device_descriptor_tag(): ts.register_class('DeviceDescriptorTag') obs = ad.pycparser_describe('device.c', 'DeviceDescriptorTag', 'class', ts=ts) exp = {#'name': {'srcname': 'DeviceDescriptorTag', 'tarname': 'DeviceDescriptorTag'}, 'name': 'DeviceDescriptorTag', 'type': 'DeviceDescriptorTag', 'namespace': None, 'construct': 'struct', 'parents': [], 'attrs': { 'deviceNumber': 'uchar', 'deviceMeasurement': ('function_pointer', (('_0', ('uint32', '*')),), ('enum', 'ErrorStatusTag', ( ('ERROR_OK', 0), ('ERROR_FAILED_INIT', 1)))), }, 'methods': {}, } assert_equal_or_diff(obs, exp)
def check(parser): goals = (('class', ('Base', 'int32', 7, 0), exp_base_desc(parser)), ('class', ('Point', True, 'CA', 0), exp_point_desc), ('class', 'Toaster', exp_toaster_desc), ('func', 'simple', exp_simple_desc), # Verify that we pick up parameter names from definitions ('func', 'twice', exp_twice_desc), # Verify that the first parameter name declaration wins ('func', 'conflict', exp_conflict_desc), ('func', ('lasso', 17, 'int32', 'float32'), exp_lasso_desc(17)), ('func', ('lasso', 18, 'int32', 'float32'), exp_lasso_desc(18)), ('class', 'Default', exp_default_desc), ('class', 'NoDefaultBase', exp_nodefault_base_desc), ('class', 'NoDefault', exp_nodefault_desc), ('var', 'Choices', exp_choices_desc)) for kind, name, exp in goals: obs = ad.describe(fname, name=name, kind=kind, parsers=parser, builddir=buildbase + '-' + parser, verbose=False, ts=ts, clang_includes=clang_includes) assert_equal_or_diff(obs, exp)
def test_pycparser_describe_device_descriptor_tag(): ts.register_class("DeviceDescriptorTag") obs = ad.pycparser_describe("device.c", "DeviceDescriptorTag", "class", ts=ts) exp = { #'name': {'srcname': 'DeviceDescriptorTag', 'tarname': 'DeviceDescriptorTag'}, "name": "DeviceDescriptorTag", "type": "DeviceDescriptorTag", "namespace": None, "construct": "struct", "parents": [], "attrs": { "deviceNumber": "uchar", "deviceMeasurement": ( "function_pointer", (("_0", ("uint32", "*")),), ("enum", "ErrorStatusTag", (("ERROR_OK", 0), ("ERROR_FAILED_INIT", 1))), ), }, "methods": {}, } assert_equal_or_diff(obs, exp)
def check_all(parser): obs_var, obs_fun, obs_cls = autoall.findall(filename, parsers=parser, builddir=buildbase + '-' + parser, clang_includes=clang_includes) assert_equal_or_diff(obs_var, exp_var) assert_equal_or_diff(obs_fun, exp_fun) assert_equal_or_diff(obs_cls, exp_cls)
def test_merge_descriptions(): obs = ad.merge_descriptions([exp_merge_desc, meta_merge_desc]) exp = full_merge_desc assert_equal_or_diff(obs, exp)