74 lines
3.1 KiB
Python
74 lines
3.1 KiB
Python
import sys
|
|
sys.path.append('src/')
|
|
|
|
from nameHandling.base import ComponentName
|
|
from protocol_components.protocolFactory import FactoryProtocolDefition
|
|
from protocol_components.enumeration import FactoryEnumeration, Enumeration
|
|
from protocol_components.bitfields import FactoryBitfield, Bitfield
|
|
from protocol_components.dtypes import BprotoFieldBaseType
|
|
from protocol_components.field import FactoryField
|
|
from protocol_components.message import FactoryMessage, Message
|
|
from nameHandling.style.cNameStyle import NameStyleC
|
|
|
|
|
|
def test_style_c_fromStr():
|
|
try:
|
|
NameStyleC.fromStr("")
|
|
assert False
|
|
except Exception as e:
|
|
assert isinstance(e, NotImplementedError)
|
|
|
|
|
|
def test_style_c_toStr_enum():
|
|
assert NameStyleC.toStr(ComponentName(["my", "custom", "Values"]), "enum_name") == "MyCustomValues"
|
|
assert NameStyleC.toStr(ComponentName(["my", "custom", "enum", "value"]), "enum_item") == "MY_CUSTOM_ENUM_VALUE"
|
|
assert NameStyleC.toStr(ComponentName(["my", "custom", "class"]), "struct_name") == "MyCustomClass"
|
|
assert NameStyleC.toStr(ComponentName(["my", "custom", "class", "member"]), "struct_member") == "myCustomClassMember"
|
|
assert NameStyleC.toStr(ComponentName(["my", "custom", "class"]), "bitfield_name") == "MyCustomClass"
|
|
assert NameStyleC.toStr(ComponentName(["my", "custom", "class", "member"]), "bitfield_member") == "myCustomClassMember"
|
|
|
|
|
|
def test_style_c_preprocessor():
|
|
protocol_factory = FactoryProtocolDefition()
|
|
|
|
enum_factory = FactoryEnumeration()
|
|
enum_factory.add_value("first-Value", 1)
|
|
enum_factory.add_value("second-Important-Value", 2)
|
|
protocol_factory.add_enum(enum_factory.assemble("mode"))
|
|
|
|
bitfield_factory = FactoryBitfield()
|
|
bitfield_factory.add_bit("FirstBit", 0)
|
|
bitfield_factory.add_bit("SecondBit", 1)
|
|
protocol_factory.add_bitfield(bitfield_factory.assemble("bitfield1"))
|
|
|
|
message_factory = FactoryMessage()
|
|
message_factory.add_field(FactoryField().assemble("x", 1, BprotoFieldBaseType.FLOAT32, 2, None))
|
|
message_factory.add_field(FactoryField().assemble("y", 2, BprotoFieldBaseType.FLOAT32, 2, None))
|
|
protocol_factory.add_message(message_factory.assemble("cordUpdate", 1))
|
|
|
|
protocol = protocol_factory.assemble("ABCP", 5)
|
|
protocol = NameStyleC.preprocess(protocol)
|
|
|
|
enum: Enumeration = list(protocol.enums.values())[0]
|
|
bitfield: Bitfield = list(protocol.bitfields.values())[0]
|
|
message: Message = list(protocol.messages.values())[0]
|
|
|
|
assert isinstance(enum, Enumeration)
|
|
assert isinstance(bitfield, Bitfield)
|
|
assert isinstance(message, Message)
|
|
|
|
assert NameStyleC.toStr(enum.name, "enum_name") == "Abcp_enum_Mode"
|
|
assert NameStyleC.toStr(bitfield.name, "bitfield_name") == "Abcp_bitfield_Bitfield1"
|
|
assert NameStyleC.toStr(message.name, "struct_name") == "Abcp_message_CordUpdate"
|
|
|
|
assert enum.values == {
|
|
ComponentName(["abcp", "_enum_", "mode", "value", "first", "value"]): 1,
|
|
ComponentName(["abcp", "_enum_", "mode", "value", "second", "important", "value"]): 2
|
|
}
|
|
|
|
assert bitfield.bits == {
|
|
ComponentName(["first", "bit"]): 0,
|
|
ComponentName(["second", "bit"]): 1
|
|
}
|
|
|