| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #include <ccan/endian/endian.h>
- #include <stdlib.h>
- #include <stddef.h>
- #include <ccan/tap/tap.h>
- int main(int argc, char *argv[])
- {
- union {
- uint64_t u64;
- unsigned char u64_bytes[8];
- } u64;
- union {
- uint32_t u32;
- unsigned char u32_bytes[4];
- } u32;
- union {
- uint16_t u16;
- unsigned char u16_bytes[2];
- } u16;
- plan_tests(48);
- /* Straight swap tests. */
- u64.u64_bytes[0] = 0x00;
- u64.u64_bytes[1] = 0x11;
- u64.u64_bytes[2] = 0x22;
- u64.u64_bytes[3] = 0x33;
- u64.u64_bytes[4] = 0x44;
- u64.u64_bytes[5] = 0x55;
- u64.u64_bytes[6] = 0x66;
- u64.u64_bytes[7] = 0x77;
- u64.u64 = bswap_64(u64.u64);
- ok1(u64.u64_bytes[7] == 0x00);
- ok1(u64.u64_bytes[6] == 0x11);
- ok1(u64.u64_bytes[5] == 0x22);
- ok1(u64.u64_bytes[4] == 0x33);
- ok1(u64.u64_bytes[3] == 0x44);
- ok1(u64.u64_bytes[2] == 0x55);
- ok1(u64.u64_bytes[1] == 0x66);
- ok1(u64.u64_bytes[0] == 0x77);
- u32.u32_bytes[0] = 0x00;
- u32.u32_bytes[1] = 0x11;
- u32.u32_bytes[2] = 0x22;
- u32.u32_bytes[3] = 0x33;
- u32.u32 = bswap_32(u32.u32);
- ok1(u32.u32_bytes[3] == 0x00);
- ok1(u32.u32_bytes[2] == 0x11);
- ok1(u32.u32_bytes[1] == 0x22);
- ok1(u32.u32_bytes[0] == 0x33);
- u16.u16_bytes[0] = 0x00;
- u16.u16_bytes[1] = 0x11;
- u16.u16 = bswap_16(u16.u16);
- ok1(u16.u16_bytes[1] == 0x00);
- ok1(u16.u16_bytes[0] == 0x11);
- /* Endian tests. */
- u64.u64 = cpu_to_le64(0x0011223344556677ULL);
- ok1(u64.u64_bytes[0] == 0x77);
- ok1(u64.u64_bytes[1] == 0x66);
- ok1(u64.u64_bytes[2] == 0x55);
- ok1(u64.u64_bytes[3] == 0x44);
- ok1(u64.u64_bytes[4] == 0x33);
- ok1(u64.u64_bytes[5] == 0x22);
- ok1(u64.u64_bytes[6] == 0x11);
- ok1(u64.u64_bytes[7] == 0x00);
- ok1(le64_to_cpu(u64.u64) == 0x0011223344556677ULL);
- u64.u64 = cpu_to_be64(0x0011223344556677ULL);
- ok1(u64.u64_bytes[7] == 0x77);
- ok1(u64.u64_bytes[6] == 0x66);
- ok1(u64.u64_bytes[5] == 0x55);
- ok1(u64.u64_bytes[4] == 0x44);
- ok1(u64.u64_bytes[3] == 0x33);
- ok1(u64.u64_bytes[2] == 0x22);
- ok1(u64.u64_bytes[1] == 0x11);
- ok1(u64.u64_bytes[0] == 0x00);
- ok1(be64_to_cpu(u64.u64) == 0x0011223344556677ULL);
- u32.u32 = cpu_to_le32(0x00112233);
- ok1(u32.u32_bytes[0] == 0x33);
- ok1(u32.u32_bytes[1] == 0x22);
- ok1(u32.u32_bytes[2] == 0x11);
- ok1(u32.u32_bytes[3] == 0x00);
- ok1(le32_to_cpu(u32.u32) == 0x00112233);
- u32.u32 = cpu_to_be32(0x00112233);
- ok1(u32.u32_bytes[3] == 0x33);
- ok1(u32.u32_bytes[2] == 0x22);
- ok1(u32.u32_bytes[1] == 0x11);
- ok1(u32.u32_bytes[0] == 0x00);
- ok1(be32_to_cpu(u32.u32) == 0x00112233);
- u16.u16 = cpu_to_le16(0x0011);
- ok1(u16.u16_bytes[0] == 0x11);
- ok1(u16.u16_bytes[1] == 0x00);
- ok1(le16_to_cpu(u16.u16) == 0x0011);
- u16.u16 = cpu_to_be16(0x0011);
- ok1(u16.u16_bytes[1] == 0x11);
- ok1(u16.u16_bytes[0] == 0x00);
- ok1(be16_to_cpu(u16.u16) == 0x0011);
- exit(exit_status());
- }
|