diff --git a/test/Network/Packet.test.cpp b/test/Network/Packet.test.cpp index 2dcc5dc56..b2c3288aa 100644 --- a/test/Network/Packet.test.cpp +++ b/test/Network/Packet.test.cpp @@ -5,6 +5,9 @@ #include #include #include +#include + +#include #define CHECK_PACKET_STREAM_OPERATORS(expected) \ do \ @@ -67,6 +70,54 @@ TEST_CASE("[Network] sf::Packet") CHECK(static_cast(packet)); } + SECTION("Network ordering") + { + sf::Packet packet; + + SECTION("16 bit int") + { + packet << std::uint16_t{12'345}; + const auto* dataPtr = static_cast(packet.getData()); + const std::vector bytes(dataPtr, dataPtr + packet.getDataSize()); + const std::vector expectedBytes{std::byte{0x30}, std::byte{0x39}}; + CHECK(bytes == expectedBytes); + } + + SECTION("32 bit int") + { + packet << std::uint32_t{1'234'567'890}; + const auto* dataPtr = static_cast(packet.getData()); + const std::vector bytes(dataPtr, dataPtr + packet.getDataSize()); + const std::vector expectedBytes{std::byte{0x49}, std::byte{0x96}, std::byte{0x02}, std::byte{0xD2}}; + CHECK(bytes == expectedBytes); + } + + SECTION("float") + { + packet << 123.456f; + const auto* dataPtr = static_cast(packet.getData()); + const std::vector bytes(dataPtr, dataPtr + packet.getDataSize()); + const std::vector expectedBytes{std::byte{0x79}, std::byte{0xe9}, std::byte{0xf6}, std::byte{0x42}}; + CHECK(bytes == expectedBytes); + } + + SECTION("double") + { + packet << 789.123; + const auto* dataPtr = static_cast(packet.getData()); + const std::vector bytes(dataPtr, dataPtr + packet.getDataSize()); + const std::vector expectedBytes{std::byte{0x44}, + std::byte{0x8b}, + std::byte{0x6c}, + std::byte{0xe7}, + std::byte{0xfb}, + std::byte{0xa8}, + std::byte{0x88}, + std::byte{0x40}}; + CHECK(bytes == expectedBytes); + } + } + SECTION("Stream operators") { SECTION("std::int8_t")