1#include <engine/shared/network.h>
2
3#include <gtest/gtest.h>
4
5static int UnpackUncompressedPacket(int Size, CNetPacketConstruct *pPacket)
6{
7 unsigned char aBuffer[NET_MAX_PACKETSIZE] = {};
8 aBuffer[0] = 0; // no flags, ack 0
9 aBuffer[1] = 0; // ack 0
10 aBuffer[2] = 1; // one chunk
11 bool Sixup = false;
12 return CNetBase::UnpackPacket(pBuffer: aBuffer, Size, pPacket, Sixup);
13}
14
15TEST(Network, UnpackMaximumUncompressedPacket)
16{
17 CNetPacketConstruct Packet;
18 EXPECT_EQ(UnpackUncompressedPacket(NET_PACKETHEADERSIZE + (int)sizeof(Packet.m_aChunkData), &Packet), 0);
19 EXPECT_EQ(Packet.m_DataSize, (int)sizeof(Packet.m_aChunkData));
20 EXPECT_EQ(UnpackUncompressedPacket(NET_MAX_PACKETSIZE, &Packet), 0);
21}
22
23TEST(Network, UnpackOversizedUncompressedPacket)
24{
25 CNetPacketConstruct Packet;
26 EXPECT_EQ(UnpackUncompressedPacket(NET_PACKETHEADERSIZE + (int)sizeof(Packet.m_aChunkData) + 1, &Packet), -1);
27}
28