#include
#include |
#include |
namespace tp = td::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();
} |