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

Function TestStructList

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

Source from the content-addressed store, hash-verified

110}
111
112void TestStructList(const char* msg, uint32_t msg_size)
113{
114 // Load
115 dmStructDDF::Struct* message;
116 dmDDF::Result e = dmDDF::LoadMessage((void*) msg, msg_size, &dmStructDDF_Struct_DESCRIPTOR, (void**)&message);
117 ASSERT_EQ(dmDDF::RESULT_OK, e);
118
119 dmStructDDF::Struct::FieldsEntry* values = FindEntry(message, "values");
120 dmStructDDF::ListValue* list = values->m_Value->m_Kind.m_List;
121
122 ASSERT_EQ(3, list->m_Values.m_Count);
123 ASSERT_NEAR(1.0, list->m_Values[0].m_Kind.m_Number, 0.001);
124 ASSERT_STREQ("two", list->m_Values[1].m_Kind.m_String);
125 ASSERT_FALSE(list->m_Values[2].m_Kind.m_Bool);
126
127 // Save
128 std::string save_str;
129 e = DDFSaveToString(message, &dmStructDDF_Struct_DESCRIPTOR, save_str);
130 ASSERT_EQ(dmDDF::RESULT_OK, e);
131
132 dmStructDDF::Struct* saved_message;
133 e = dmDDF::LoadMessage((void*) save_str.c_str(), save_str.size(), &dmStructDDF_Struct_DESCRIPTOR, (void**)&saved_message);
134 ASSERT_EQ(dmDDF::RESULT_OK, e);
135
136 dmStructDDF::Struct::FieldsEntry* values2 = FindEntry(saved_message, "values");
137 dmStructDDF::ListValue* list2 = values2->m_Value->m_Kind.m_List;
138
139 ASSERT_EQ(3, list2->m_Values.m_Count);
140 ASSERT_NEAR(1.0, list2->m_Values[0].m_Kind.m_Number, 0.001);
141 ASSERT_STREQ("two", list2->m_Values[1].m_Kind.m_String);
142 ASSERT_FALSE(list2->m_Values[2].m_Kind.m_Bool);
143
144 dmDDF::FreeMessage(saved_message);
145 dmDDF::FreeMessage(message);
146}
147
148void TestStructJSON(const char* msg, uint32_t msg_size)
149{

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