Skip to content

Commit fefb1f0

Browse files
committed
[C++] Add test for handling keywords.
1 parent 17d700d commit fefb1f0

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

sbe-tool/src/test/cpp/CodeGenTest.cpp

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "gtest/gtest.h"
2020
#include "code_generation_test/MessageHeader.h"
2121
#include "code_generation_test/Car.h"
22+
#include "code_generation_test/GlobalKeywords.h"
2223

2324
using namespace code::generation::test;
2425

@@ -1144,4 +1145,31 @@ TEST_F(CodeGenTest, shouldBeAbleToResolveStringLiterals)
11441145
car.sbeRewind();
11451146
EXPECT_EQ(car.getVehicleCodeAsStringView(), "ABCDE");
11461147
}
1147-
#endif
1148+
#endif
1149+
1150+
TEST_F(CodeGenTest, shouldComputeEncodedLengthCorrectlyForVarDataFields)
1151+
{
1152+
char buffer[BUFFER_LEN] = {};
1153+
1154+
std::uint64_t baseOffset = MessageHeader::encodedLength();
1155+
GlobalKeywords keywords;
1156+
keywords.wrapForEncode(buffer, baseOffset, sizeof(buffer));
1157+
keywords.type(7);
1158+
keywords.assertX(16);
1159+
1160+
GlobalKeywords::Data &data = keywords.dataCount(1);
1161+
1162+
data.next()
1163+
.thisX(3);
1164+
1165+
GlobalKeywords::Data::Super &super = data.superCount(2);
1166+
1167+
super.next()
1168+
.mph(100);
1169+
1170+
super.next()
1171+
.mph(200)
1172+
.putImport(std::string("this super long string value right here"));
1173+
1174+
EXPECT_EQ(337, keywords.encodedLength());
1175+
}

0 commit comments

Comments
 (0)