diff --git a/code-generation/protocol-test/src/main/resources/protocols/test/test.mspec b/code-generation/protocol-test/src/main/resources/protocols/test/test.mspec index 6709634952f..28d3b1e7463 100644 --- a/code-generation/protocol-test/src/main/resources/protocols/test/test.mspec +++ b/code-generation/protocol-test/src/main/resources/protocols/test/test.mspec @@ -121,7 +121,7 @@ [simple string 8 abstractStringField] ] ] - //[abstract bit oneMoreBit] // TODO: apparently this breaks java + [abstract bit oneMoreBit] // TODO: apparently this breaks java ] [type ArrayTypeTest @@ -213,6 +213,23 @@ ] ] +// Check field with arguments +[type Struct(bit signed, bit unsigned) + [typeSwitch signed + ['true' SignedType + [simple int 8 data] + ] + ['false' UnsignedType + [simple uint 8 data] + ] + ] +] + +[type StructContainer + [simple bit signed] + [simple Struct('signed', '!signed') struct] +] + // TODO: So far only trouble in GO, C seems OK. [type VirtualFieldTest [simple uint 8 simpleField] @@ -476,7 +493,6 @@ // TypeSwitch in TypeSwitch //////////////////////////////////////////////////////////////// -/* Needs to be ported to C and GO [discriminatedType TTGranddad [discriminator uint 8 dadNumber] [simple uint 8 warStories] @@ -499,6 +515,7 @@ ] ] +/* Needs to be ported to C and GO [discriminatedType TypeSwitchInTypeSwitchParentType [discriminator uint 8 typeNumber] [simple uint 8 parentFieldHurz] @@ -560,6 +577,19 @@ ] ]*/ +[discriminatedType TypeSwitchWithArg(bit arg1, uint 8 arg2) + [abstract bit isItTrue] + [simple uint 8 value] + [typeSwitch arg1 + ['true' TrustfulTypeSwitch(uint 8 value) + [virtual bit isItTrue 'true'] + ] + ['false' UnTrustfulTypeSwitch(uint 8 value) + [virtual bit isItTrue 'false'] + ] + ] +] + //////////////////////////////////////////////////////////////// // Missing Tests ////////////////////////////////////////////////////////////////