// #include // #include // #include // namespace tp = sp::protocol; // template // static int TestPacket() { // Packet_T packet; // td::DataBuffer buffer = tp::PacketSerializer::Serialize(packet); // auto abstractPacket = tp::PacketSerializer::Deserialize(buffer); // td_test_assert(abstractPacket); // Packet_T* packet2 = dynamic_cast(abstractPacket.get()); // td_test_assert(packet2); // td_test_assert(packet.GetType() == packet2->GetType()); // return std::memcmp(&packet.m_Data, &packet2->m_Data, sizeof(Packet_Data_T)); // } // #define DeclarePacket(Packet, ...) TestPacket(); // static int TestAllPackets() { // DeclareAllPacket() // return TD_TEST_SUCCESSFUL; // } // int main() { // return TestAllPackets(); // }