Browse Source

Implement extra tests for maps serialization

Alexey Edelev 6 years ago
parent
commit
3c7ae10bd4
3 changed files with 392 additions and 11 deletions
  1. 58 3
      tests/CMakeLists.txt
  2. 216 4
      tests/proto/simpletest.proto
  3. 118 4
      tests/serializationtest.cpp

+ 58 - 3
tests/CMakeLists.txt

@@ -56,28 +56,83 @@ set(EXPECTED_GENERATED_HEADERS
     simpleboolmessage.h
     simplebytesmessage.h
     simpledoublemessage.h
+    simpleenumlistmessage.h
     simpleenummessage.h
     simpleexternalenummessage.h
     simpleexternalmessage.h
     simplefileenummessage.h
+    simplefixed32complexmessagemapmessage.h
+    simplefixed32sint32mapmessage.h
+    simplefixed32sint64mapmessage.h
+    simplefixed32stringmapmessage.h
+    simplefixed32suint32mapmessage.h
+    simplefixed64complexmessagemapmessage.h
+    simplefixed64sint32mapmessage.h
+    simplefixed64sint64mapmessage.h
+    simplefixed64stringmapmessage.h
+    simplefixed64suint32mapmessage.h
     simplefixedint32message.h
     simplefixedint64message.h
     simplefloatmessage.h
+    simpleint32complexmessagemapmessage.h
+    simpleint32sint32mapmessage.h
+    simpleint32sint64mapmessage.h
+    simpleint32stringmapmessage.h
+    simpleint32suint32mapmessage.h
+    simpleint64complexmessagemapmessage.h
     simpleint64message.h
+    simpleint64sint32mapmessage.h
+    simpleint64sint64mapmessage.h
+    simpleint64stringmapmessage.h
+    simpleint64suint32mapmessage.h
     simpleintmessage.h
+    simplesfixed32complexmessagemapmessage.h
+    simplesfixed32sint32mapmessage.h
+    simplesfixed32sint64mapmessage.h
+    simplesfixed32stringmapmessage.h
+    simplesfixed32suint32mapmessage.h
+    simplesfixed64complexmessagemapmessage.h
+    simplesfixed64sint32mapmessage.h
+    simplesfixed64sint64mapmessage.h
+    simplesfixed64stringmapmessage.h
+    simplesfixed64suint32mapmessage.h
     simplesfixedint32message.h
     simplesfixedint64message.h
+    simplesint32complexmessagemapmessage.h
+    simplesint32mapmessage.h
+    simplesint32sint32mapmessage.h
+    simplesint32sint64mapmessage.h
+    simplesint32stringmapmessage.h
+    simplesint32suint32mapmessage.h
+    simplesint64complexmessagemapmessage.h
     simplesint64message.h
+    simplesint64sint32mapmessage.h
+    simplesint64sint64mapmessage.h
+    simplesint64stringmapmessage.h
+    simplesint64suint32mapmessage.h
     simplesintmessage.h
+    simplestringcomplexmessagemapmessage.h
+    simplestringmapmessage.h
     simplestringmessage.h
+    simplestringsint32mapmessage.h
+    simplestringsint64mapmessage.h
+    simplestringstringmapmessage.h
+    simplestringsuint32mapmessage.h
+    simpleuint32complexmessagemapmessage.h
+    simpleuint32sint32mapmessage.h
+    simpleuint32sint64mapmessage.h
+    simpleuint32stringmapmessage.h
+    simpleuint32suint32mapmessage.h
+    simpleuint64complexmessagemapmessage.h
     simpleuint64message.h
+    simpleuint64sint32mapmessage.h
+    simpleuint64sint64mapmessage.h
+    simpleuint64stringmapmessage.h
+    simpleuint64suint32mapmessage.h
     simpleuintmessage.h
     stepchildenummessage.h
     testserviceclient.h
     testserviceserver.h
-    simpleenumlistmessage.h
-    simplesint32mapmessage.h
-    simplestringmapmessage.h
 )
 
 foreach(EXPECTED_GENERATED_HEADER ${EXPECTED_GENERATED_HEADERS})

+ 216 - 4
tests/proto/simpletest.proto

@@ -169,14 +169,226 @@ message RepeatedSFixedInt64Message {
     repeated sfixed64 testRepeatedInt = 1;
 }
 
-message SimpleSInt32MapMessage {
-    map<fixed32, SimpleStringMessage> mapField = 1;
+//MAPS
+message SimpleSInt32StringMapMessage {
+    map<sint32, string> mapField = 1;
 }
 
-message SimpleStringMapMessage {
-    map<string, SimpleStringMessage> mapField = 1;
+message SimpleSInt64StringMapMessage {
+    map<sint64, string> mapField = 2;
 }
 
+message SimpleInt32StringMapMessage {
+    map<int32, string> mapField = 3;
+}
+
+message SimpleInt64StringMapMessage {
+    map<int64, string> mapField = 4;
+}
+
+message SimpleUInt32StringMapMessage {
+    map<uint32, string> mapField = 5;
+}
+
+message SimpleUInt64StringMapMessage {
+    map<uint64, string> mapField = 6;
+}
+
+message SimpleFixed32StringMapMessage {
+    map<fixed32, string> mapField = 7;
+}
+
+message SimpleFixed64StringMapMessage {
+    map<fixed64, string> mapField = 8;
+}
+
+message SimpleSFixed32StringMapMessage {
+    map<sfixed32, string> mapField = 9;
+}
+
+message SimpleSFixed64StringMapMessage {
+    map<sfixed64, string> mapField = 10;
+}
+
+message SimpleStringStringMapMessage {
+    map<string, string> mapField = 13;
+}
+//
+message SimpleSInt32SInt32MapMessage {
+    map<sint32, sint32> mapField = 1;
+}
+
+message SimpleSInt64SInt32MapMessage {
+    map<sint64, sint32> mapField = 2;
+}
+
+message SimpleInt32SInt32MapMessage {
+    map<int32, sint32> mapField = 3;
+}
+
+message SimpleInt64SInt32MapMessage {
+    map<int64, sint32> mapField = 4;
+}
+
+message SimpleUInt32SInt32MapMessage {
+    map<uint32, sint32> mapField = 5;
+}
+
+message SimpleUInt64SInt32MapMessage {
+    map<uint64, sint32> mapField = 6;
+}
+
+message SimpleFixed32SInt32MapMessage {
+    map<fixed32, sint32> mapField = 7;
+}
+
+message SimpleFixed64SInt32MapMessage {
+    map<fixed64, sint32> mapField = 8;
+}
+
+message SimpleSFixed32SInt32MapMessage {
+    map<sfixed32, sint32> mapField = 9;
+}
+
+message SimpleSFixed64SInt32MapMessage {
+    map<sfixed64, sint32> mapField = 10;
+}
+
+message SimpleStringSInt32MapMessage {
+    map<string, sint32> mapField = 13;
+}
+//
+message SimpleSInt32SInt64MapMessage {
+    map<sint32, sint64> mapField = 1;
+}
+
+message SimpleSInt64SInt64MapMessage {
+    map<sint64, sint64> mapField = 2;
+}
+
+message SimpleInt32SInt64MapMessage {
+    map<int32, sint64> mapField = 3;
+}
+
+message SimpleInt64SInt64MapMessage {
+    map<int64, sint64> mapField = 4;
+}
+
+message SimpleUInt32SInt64MapMessage {
+    map<uint32, sint64> mapField = 5;
+}
+
+message SimpleUInt64SInt64MapMessage {
+    map<uint64, sint64> mapField = 6;
+}
+
+message SimpleFixed32SInt64MapMessage {
+    map<fixed32, sint64> mapField = 7;
+}
+
+message SimpleFixed64SInt64MapMessage {
+    map<fixed64, sint64> mapField = 8;
+}
+
+message SimpleSFixed32SInt64MapMessage {
+    map<sfixed32, sint64> mapField = 9;
+}
+
+message SimpleSFixed64SInt64MapMessage {
+    map<sfixed64, sint64> mapField = 10;
+}
+
+message SimpleStringSInt64MapMessage {
+    map<string, sint64> mapField = 13;
+}
+//
+message SimpleSInt32SUInt32MapMessage {
+    map<sint32, uint32> mapField = 1;
+}
+
+message SimpleSInt64SUInt32MapMessage {
+    map<sint64, uint32> mapField = 2;
+}
+
+message SimpleInt32SUInt32MapMessage {
+    map<int32, uint32> mapField = 3;
+}
+
+message SimpleInt64SUInt32MapMessage {
+    map<int64, uint32> mapField = 4;
+}
+
+message SimpleUInt32SUInt32MapMessage {
+    map<uint32, uint32> mapField = 5;
+}
+
+message SimpleUInt64SUInt32MapMessage {
+    map<uint64, uint32> mapField = 6;
+}
+
+message SimpleFixed32SUInt32MapMessage {
+    map<fixed32, uint32> mapField = 7;
+}
+
+message SimpleFixed64SUInt32MapMessage {
+    map<fixed64, uint32> mapField = 8;
+}
+
+message SimpleSFixed32SUInt32MapMessage {
+    map<sfixed32, uint32> mapField = 9;
+}
+
+message SimpleSFixed64SUInt32MapMessage {
+    map<sfixed64, uint32> mapField = 10;
+}
+
+message SimpleStringSUInt32MapMessage {
+    map<string, uint32> mapField = 13;
+}
+//
+message SimpleSInt32ComplexMessageMapMessage {
+    map<sint32, ComplexMessage> mapField = 1;
+}
+
+message SimpleSInt64ComplexMessageMapMessage {
+    map<sint64, ComplexMessage> mapField = 2;
+}
+
+message SimpleInt32ComplexMessageMapMessage {
+    map<int32, ComplexMessage> mapField = 3;
+}
+
+message SimpleInt64ComplexMessageMapMessage {
+    map<int64, ComplexMessage> mapField = 4;
+}
+
+message SimpleUInt32ComplexMessageMapMessage {
+    map<uint32, ComplexMessage> mapField = 5;
+}
+
+message SimpleUInt64ComplexMessageMapMessage {
+    map<uint64, ComplexMessage> mapField = 6;
+}
+
+message SimpleFixed32ComplexMessageMapMessage {
+    map<fixed32, ComplexMessage> mapField = 7;
+}
+
+message SimpleFixed64ComplexMessageMapMessage {
+    map<fixed64, ComplexMessage> mapField = 8;
+}
+
+message SimpleSFixed32ComplexMessageMapMessage {
+    map<sfixed32, ComplexMessage> mapField = 9;
+}
+
+message SimpleSFixed64ComplexMessageMapMessage {
+    map<sfixed64, ComplexMessage> mapField = 10;
+}
+
+message SimpleStringComplexMessageMapMessage {
+    map<string, ComplexMessage> mapField = 13;
+}
 enum TestEnum {
     TEST_ENUM_VALUE0 = 0;
     TEST_ENUM_VALUE1 = 1;

+ 118 - 4
tests/serializationtest.cpp

@@ -56,7 +56,21 @@
 #include "repeatedcomplexmessage.h"
 #include "simpleboolmessage.h"
 #include "simpleenummessage.h"
-#include "simplesint32mapmessage.h"
+
+#include "simplefixed32stringmapmessage.h"
+#include "simplesfixed32stringmapmessage.h"
+#include "simpleint32stringmapmessage.h"
+#include "simplesint32stringmapmessage.h"
+#include "simpleuint32stringmapmessage.h"
+
+#include "simplefixed64stringmapmessage.h"
+#include "simplesfixed64stringmapmessage.h"
+#include "simpleint64stringmapmessage.h"
+#include "simplesint64stringmapmessage.h"
+#include "simpleuint64stringmapmessage.h"
+
+#include "simplestringstringmapmessage.h"
+
 #include "qtprotobuf.h"
 
 using namespace qtprotobufnamespace::tests;
@@ -1636,14 +1650,114 @@ TEST_F(SerializationTest, SimpleEnumMessageSerializeTest)
     ASSERT_TRUE(result == QByteArray::fromHex("0802"));
 }
 
-TEST_F(SerializationTest, SimpleSInt32MapSerializeTest)
+TEST_F(SerializationTest, SimpleFixed32StringMapSerializeTest)
+{
+    SimpleFixed32StringMapMessage test;
+    test.setMapField({{10, {"ten"}}, {42, {"fourty two"}}, {15, {"fifteen"}}});
+    QByteArray result = test.serialize();
+
+    ASSERT_STREQ(result.toHex().toStdString().c_str(),
+                "3a0a0d0a000000120374656e3a0e0d0f00000012076669667465656e3a110d2a000000120a666f757274792074776f");
+}
+
+TEST_F(SerializationTest, SimpleSFixed32StringMapSerializeTest)
+{
+    SimpleSFixed32StringMapMessage test;
+    test.setMapField({{10, {"ten"}}, {-42, {"minus fourty two"}}, {15, {"fifteen"}}});
+    QByteArray result = test.serialize();
+
+    ASSERT_STREQ(result.toHex().toStdString().c_str(),
+                "4a170dd6ffffff12106d696e757320666f757274792074776f4a0a0d0a000000120374656e4a0e0d0f00000012076669667465656e");
+}
+
+
+TEST_F(SerializationTest, SimpleInt32StringMapSerializeTest)
 {
-    SimpleSInt32MapMessage test;
+    SimpleInt32StringMapMessage test;
+    test.setMapField({{-10, {"minus ten"}}, {42, {"fourty two"}}, {15, {"fifteen"}}});
+    QByteArray result = test.serialize();
+
+    ASSERT_STREQ(result.toHex().toStdString().c_str(),
+                "1a1608f6ffffffffffffffff0112096d696e75732074656e1a0b080f12076669667465656e1a0e082a120a666f757274792074776f");
+}
+
+TEST_F(SerializationTest, SimpleSInt32StringMapSerializeTest)
+{
+    SimpleSInt32StringMapMessage test;
+    test.setMapField({{10, {"ten"}}, {-42, {"minus fourty two"}}, {15, {"fifteen"}}});
+    QByteArray result = test.serialize();
+
+    ASSERT_STREQ(result.toHex().toStdString().c_str(),
+                "0a14085312106d696e757320666f757274792074776f0a070814120374656e0a0b081e12076669667465656e");
+}
+
+TEST_F(SerializationTest, SimpleUInt32StringMapSerializeTest)
+{
+    SimpleUInt32StringMapMessage test;
     test.setMapField({{10, {"ten"}}, {42, {"fourty two"}}, {15, {"fifteen"}}});
     QByteArray result = test.serialize();
 
     ASSERT_STREQ(result.toHex().toStdString().c_str(),
-                "0a0c0d0a0000001205320374656e0a100d0f000000120932076669667465656e0a130d2a000000120c320a666f757274792074776f");
+                "2a07080a120374656e2a0b080f12076669667465656e2a0e082a120a666f757274792074776f");
+}
+
+TEST_F(SerializationTest, SimpleFixed64StringMapSerializeTest)
+{
+    SimpleFixed64StringMapMessage test;
+    test.setMapField({{10, {"ten"}}, {42, {"fourty two"}}, {15, {"fifteen"}}});
+    QByteArray result = test.serialize();
+
+    ASSERT_STREQ(result.toHex().toStdString().c_str(),
+                "420e090a00000000000000120374656e4212090f0000000000000012076669667465656e4215092a00000000000000120a666f757274792074776f");
+}
+
+TEST_F(SerializationTest, SimpleSFixed64StringMapSerializeTest)
+{
+    SimpleSFixed64StringMapMessage test;
+    test.setMapField({{10, {"ten"}}, {-42, {"minus fourty two"}}, {15, {"fifteen"}}});
+    QByteArray result = test.serialize();
+
+    ASSERT_STREQ(result.toHex().toStdString().c_str(),
+                "521b09d6ffffffffffffff12106d696e757320666f757274792074776f520e090a00000000000000120374656e5212090f0000000000000012076669667465656e");
+}
+
+TEST_F(SerializationTest, SimpleInt64StringMapSerializeTest)
+{
+    SimpleInt64StringMapMessage test;
+    test.setMapField({{-10, {"minus ten"}}, {42, {"fourty two"}}, {15, {"fifteen"}}});
+    QByteArray result = test.serialize();
+
+    ASSERT_STREQ(result.toHex().toStdString().c_str(),
+                "221608f6ffffffffffffffff0112096d696e75732074656e220b080f12076669667465656e220e082a120a666f757274792074776f");
+}
+
+TEST_F(SerializationTest, SimpleSInt64StringMapSerializeTest)
+{
+    SimpleSInt64StringMapMessage test;
+    test.setMapField({{10, {"ten"}}, {-42, {"minus fourty two"}}, {15, {"fifteen"}}});
+    QByteArray result = test.serialize();
+    ASSERT_STREQ(result.toHex().toStdString().c_str(),
+                "1214085312106d696e757320666f757274792074776f12070814120374656e120b081e12076669667465656e");
+}
+
+TEST_F(SerializationTest, SimpleUInt64StringMapSerializeTest)
+{
+    SimpleUInt64StringMapMessage test;
+    test.setMapField({{10, {"ten"}}, {42, {"fourty two"}}, {15, {"fifteen"}}});
+    QByteArray result = test.serialize();
+
+    ASSERT_STREQ(result.toHex().toStdString().c_str(),
+                "3207080a120374656e320b080f12076669667465656e320e082a120a666f757274792074776f");
+}
+
+TEST_F(SerializationTest, SimpleStringStringMapSerializeTest)
+{
+    SimpleStringStringMapMessage test;
+    test.setMapField({{"ben", "ten"}, {"what is the answer?", "fourty two"}, {"sweet", "fifteen"}});
+    QByteArray result = test.serialize();
+
+    ASSERT_STREQ(result.toHex().toStdString().c_str(),
+                "6a0a0a0362656e120374656e6a100a05737765657412076669667465656e6a210a13776861742069732074686520616e737765723f120a666f757274792074776f");
 }
 
 //TEST_F(SerializationTest, DISABLE_BenchmarkTest)