improve tests
This commit is contained in:
@@ -5,27 +5,32 @@
|
||||
|
||||
namespace tp = td::protocol;
|
||||
|
||||
static int TestAllPackets() {
|
||||
for (std::size_t i = 0; i < static_cast<std::size_t>(tp::PacketType::PACKET_COUNT); i++) {
|
||||
const auto& packet = tp::PacketFactory::CreateReadOnlyPacket(tp::PacketType(i));
|
||||
template <typename Packet_T, typename Packet_Data_T = typename Packet_T::PacketDataType>
|
||||
static int TestPacket() {
|
||||
Packet_T packet;
|
||||
|
||||
td::DataBuffer buffer = tp::PacketSerializer::Serialize(*packet.get());
|
||||
td::DataBuffer buffer = tp::PacketSerializer::Serialize(packet);
|
||||
|
||||
tp::PacketPtr packet2 = tp::PacketSerializer::Deserialize(buffer);
|
||||
auto abstractPacket = tp::PacketSerializer::Deserialize(buffer);
|
||||
|
||||
td_test_assert(packet2 != nullptr);
|
||||
td_test_assert(abstractPacket);
|
||||
|
||||
td_test_assert(packet2->GetType() == packet->GetType());
|
||||
}
|
||||
return 0;
|
||||
Packet_T* packet2 = dynamic_cast<Packet_T*>(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));
|
||||
}
|
||||
|
||||
static void Test() {
|
||||
tp::packets::ChatMessage packet({"caca"});
|
||||
td::DataBuffer buffer = tp::PacketSerializer::Serialize(packet);
|
||||
#define DeclarePacket(Packet, ...) TestPacket<tp::packets::Packet>();
|
||||
|
||||
static int TestAllPackets() {
|
||||
DeclareAllPacket()
|
||||
|
||||
return TD_TEST_SUCCESSFUL;
|
||||
}
|
||||
|
||||
int main() {
|
||||
Test();
|
||||
return TestAllPackets();
|
||||
}
|
||||
Reference in New Issue
Block a user