#include "test.h" RESULT test_swap () { guint32 a = 0xabcdef01, res32; guint64 b = (((guint64)a) << 32) | a, res64; guint64 b_expect = (((guint64)0x1efcdab) << 32) | 0x01efcdab; guint16 c = 0xabcd, res16; res32 = GUINT32_SWAP_LE_BE (a); if (res32 != 0x01efcdab) return FAILED ("GUINT32_SWAP_LE_BE returned 0x%x", res32); res32 = GUINT32_SWAP_LE_BE (1); if (res32 != 0x1000000) return FAILED ("GUINT32_SWAP_LE_BE returned 0x%x", res32); res64 = GUINT64_SWAP_LE_BE(b); if (res64 != b_expect) return FAILED ("GUINT64_SWAP_LE_BE returned 0x%llx (had=0x%llx)", res64, b); res16 = GUINT16_SWAP_LE_BE(c); if (res16 != 0xcdab) return FAILED ("GUINT16_SWAP_LE_BE returned 0x%x", (guint32) res16); return OK; } /* * test initialization */ static Test endian_tests [] = { {"swap", test_swap}, {NULL, NULL} }; DEFINE_TEST_GROUP_INIT(endian_tests_init, endian_tests)