Skip to content

Commit 756acf6

Browse files
Added coder v2 test corresponding to pull request #67
1 parent f38b350 commit 756acf6

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

tests/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ FASTTYPEGEN_TARGET(simple_types5 simple5.xml)
1717
FASTTYPEGEN_TARGET(simple_types6 simple6.xml)
1818
FASTTYPEGEN_TARGET(simple_types7 simple7.xml)
1919
FASTTYPEGEN_TARGET(simple_types8 simple8.xml)
20+
FASTTYPEGEN_TARGET(simple_types9 simple9.xml)
21+
2022

2123
FASTTYPEGEN_TARGET(test_types1 test1.xml test2.xml)
2224
FASTTYPEGEN_TARGET(test_types3 test3.xml)
@@ -48,6 +50,7 @@ add_executable (mfast_test
4850
${FASTTYPEGEN_simple_types6_OUTPUTS}
4951
${FASTTYPEGEN_simple_types7_OUTPUTS}
5052
${FASTTYPEGEN_simple_types8_OUTPUTS}
53+
${FASTTYPEGEN_simple_types9_OUTPUTS}
5154
fast_type_gen_test.cpp
5255
dictionary_builder_test.cpp
5356
json_test.cpp

tests/simple9.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version=\" 1.0 \"?>
2+
<templates xmlns="http://www.fixprotocol.org/ns/template-definition"
3+
templateNs="http://www.fixprotocol.org/ns/templates/sample" ns="http://www.fixprotocol.org/ns/fix">
4+
<template name="Test" id="1">
5+
<uInt32 name="field1" id="11"><copy/></uInt32>
6+
<sequence name="sequence1" presence="optional">
7+
<uInt32 name="field2" id="12" presence="optional"></uInt32>
8+
<uInt32 name="field3" id="13" presence="optional"></uInt32>
9+
</sequence>
10+
</template>
11+
</templates>

tests/simple_coder_test.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "simple6.h"
3434
#include "simple7.h"
3535
#include "simple8.h"
36+
#include "simple9.h"
3637

3738
#include "byte_stream.h"
3839
#include "debug_allocator.h"
@@ -274,3 +275,22 @@ TEST_CASE("test fast coder v2 for a template with zero segment size", "[segment_
274275
REQUIRE(test_case.decoding("\x80\x81\x82", msg_ref));
275276
}
276277

278+
TEST_CASE("test fast coder v2 for a simple template with absent optional fields in a sequence", "[absent_optional_fields_coder_test]")
279+
{
280+
fast_coding_test_case<simple9::templates_description> test_case;
281+
282+
debug_allocator alloc;
283+
simple9::Test msg(&alloc);
284+
simple9::Test_mref msg_ref = msg.mref();
285+
286+
msg_ref.set_field1().as(1);
287+
288+
auto sequence1 = msg_ref.set_sequence1();
289+
sequence1.resize(2);
290+
sequence1[0].set_field3().as(3);
291+
sequence1[1].set_field2().as(1);
292+
293+
REQUIRE(test_case.encoding(msg_ref,"\xA0\x81\x83\x80\x84\x82\x80"));
294+
REQUIRE(test_case.decoding("\xA0\x81\x83\x80\x84\x82\x80", msg_ref));
295+
}
296+

0 commit comments

Comments
 (0)