mirror of
https://github.com/OpenRCT2/OpenRCT2.git
synced 2024-09-09 19:17:30 +02:00
44 lines
901 B
C++
44 lines
901 B
C++
|
#include "openrct2/core/Endianness.h"
|
||
|
|
||
|
#include <gtest/gtest.h>
|
||
|
|
||
|
TEST(SwapBETest, ForUInt8_DoesNothing)
|
||
|
{
|
||
|
uint8_t before = 0x12;
|
||
|
uint8_t after = ByteSwapBE(before);
|
||
|
ASSERT_EQ(before, after);
|
||
|
}
|
||
|
|
||
|
TEST(SwapBETest, ForUInt16_SwapsBytes)
|
||
|
{
|
||
|
uint16_t before = 0x1234;
|
||
|
uint16_t after = ByteSwapBE(before);
|
||
|
ASSERT_EQ(0x3412u, after);
|
||
|
}
|
||
|
|
||
|
TEST(SwapBETest, ForUInt32_SwapsBytes)
|
||
|
{
|
||
|
uint32_t before = 0x12345678;
|
||
|
uint32_t after = ByteSwapBE(before);
|
||
|
ASSERT_EQ(0x78563412u, after);
|
||
|
}
|
||
|
|
||
|
TEST(SwapBETest, ForUInt64_SwapsBytes)
|
||
|
{
|
||
|
uint64_t before = 0x1234567887654321;
|
||
|
uint64_t after = ByteSwapBE(before);
|
||
|
ASSERT_EQ(0x2143658778563412u, after);
|
||
|
}
|
||
|
|
||
|
TEST(SwapBETest, ForCustomBlittableType_SwapsBytes)
|
||
|
{
|
||
|
struct MyStruct
|
||
|
{
|
||
|
uint16_t value;
|
||
|
};
|
||
|
|
||
|
MyStruct before = { 0x1234 };
|
||
|
MyStruct after = ByteSwapBE(before);
|
||
|
ASSERT_EQ(0x3412, after.value);
|
||
|
}
|