From ee58b266f3a118155dbe42dd8bcde78e0c10d13b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Dywicki?= Date: Tue, 24 Sep 2024 18:45:18 +0200 Subject: [PATCH] Add more tests for mspec parser and code generator. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ɓukasz Dywicki --- .../main/resources/protocols/test/test.mspec | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) 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 ////////////////////////////////////////////////////////////////