MCPcopy Create free account
hub / github.com/defold/defold / TestStructNested

Function TestStructNested

engine/ddf/src/test/test_ddf_struct.cpp:76–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

74}
75
76void TestStructNested(const char* msg, uint32_t msg_size)
77{
78 // Load
79 dmStructDDF::Struct* message;
80 dmDDF::Result e = dmDDF::LoadMessage((void*) msg, msg_size, &dmStructDDF_Struct_DESCRIPTOR, (void**)&message);
81 ASSERT_EQ(dmDDF::RESULT_OK, e);
82
83 dmStructDDF::Struct::FieldsEntry* user = FindEntry(message, "user");
84
85 dmStructDDF::Struct::FieldsEntry* field_id = FindEntry(&user->m_Value->m_Kind.m_Struct, "id");
86 ASSERT_NEAR(123.0, field_id->m_Value->m_Kind.m_Number, 0.001);
87
88 dmStructDDF::Struct::FieldsEntry* field_name = FindEntry(&user->m_Value->m_Kind.m_Struct, "name");
89 ASSERT_STREQ("Mr.X", field_name->m_Value->m_Kind.m_String);
90
91 // Save
92 std::string save_str;
93 e = DDFSaveToString(message, &dmStructDDF_Struct_DESCRIPTOR, save_str);
94 ASSERT_EQ(dmDDF::RESULT_OK, e);
95
96 dmStructDDF::Struct* saved_message;
97 e = dmDDF::LoadMessage((void*) save_str.c_str(), save_str.size(), &dmStructDDF_Struct_DESCRIPTOR, (void**)&saved_message);
98 ASSERT_EQ(dmDDF::RESULT_OK, e);
99
100 dmStructDDF::Struct::FieldsEntry* user2 = FindEntry(saved_message, "user");
101
102 dmStructDDF::Struct::FieldsEntry* field_id_2 = FindEntry(&user2->m_Value->m_Kind.m_Struct, "id");
103 ASSERT_NEAR(123.0, field_id_2->m_Value->m_Kind.m_Number, 0.001);
104
105 dmStructDDF::Struct::FieldsEntry* field_name_2 = FindEntry(&user2->m_Value->m_Kind.m_Struct, "name");
106 ASSERT_STREQ("Mr.X", field_name_2->m_Value->m_Kind.m_String);
107
108 dmDDF::FreeMessage(message);
109 dmDDF::FreeMessage(saved_message);
110}
111
112void TestStructList(const char* msg, uint32_t msg_size)
113{

Callers 1

TESTFunction · 0.85

Calls 5

DDFSaveToStringFunction · 0.85
FreeMessageFunction · 0.85
FindEntryFunction · 0.70
LoadMessageFunction · 0.50
sizeMethod · 0.45

Tested by

no test coverage detected