void test_u32_to_le(void) { do_test(); { uint32_t val = 0x0102; uint32_t le_val = u32_to_le(val); #ifdef FANGFS_LITTLE_ENDIAN verify(le_val == val); #elif FANGFS_BIG_ENDIAN verify(le_val != val); #endif } { uint8_t bytes[4] = { 0x02, 0x01, 0x00, 0x00 }; uint32_t val = u32_to_le(0x0102); verify(memcmp(bytes, &val, sizeof(val)) == 0); } }
static int t32_bit(int verbose) { uint8_t buf[9]; size_t i; int errors = 0; for (i = 0; i < NELE(tests_32_bit); i++) { uint32_t u32; int32_t i32; if (verbose) { fprintf(stderr, "%s %11"PRId32" %11"PRIu32"\n", to_hex(tests_32_bit[i].u8, 4), tests_32_bit[i].i32, tests_32_bit[i].u32); } u32 = le_to_u32(tests_32_bit[i].u8); if (u32 != tests_32_bit[i].u32) { fprintf(stderr, "Failed %s => %"PRIu32"; expected %"PRIu32"\n", to_hex(tests_32_bit[i].u8, 4), u32, tests_32_bit[i].u32); errors++; } i32 = le_to_i32(tests_32_bit[i].u8); if (i32 != tests_32_bit[i].i32) { fprintf(stderr, "Failed %s => %"PRId32"; expected %"PRId32"\n", to_hex(tests_32_bit[i].u8, 4), i32, tests_32_bit[i].i32); errors++; } u32 = le_to_u32(tests_32_bit[i].u8_unaligned + 1); if (u32 != tests_32_bit[i].u32) { fprintf(stderr, "Failed unaligned %s => %"PRIu32"; expected %"PRIu32"\n", to_hex(tests_32_bit[i].u8_unaligned + 1, 4), u32, tests_32_bit[i].u32); errors++; } i32 = le_to_i32(tests_32_bit[i].u8_unaligned + 1); if (i32 != tests_32_bit[i].i32) { fprintf(stderr, "Failed unaligned %s => %"PRId32"; expected %"PRId32"\n", to_hex(tests_32_bit[i].u8_unaligned + 1, 4), i32, tests_32_bit[i].i32); errors++; } u32_to_le(tests_32_bit[i].u32, buf); if (memcmp(buf, tests_32_bit[i].u8, 4) != 0) { fprintf(stderr, "Failed %"PRIu32" => %s; expected %s\n", tests_32_bit[i].u32, to_hex(buf, 4), to_hex(tests_32_bit[i].u8, 4)); errors++; } i32_to_le(tests_32_bit[i].i32, buf); if (memcmp(buf, tests_32_bit[i].u8, 4) != 0) { fprintf(stderr, "Failed %"PRId32" => %s; expected %s\n", tests_32_bit[i].i32, to_hex(buf, 4), to_hex(tests_32_bit[i].u8, 4)); errors++; } u32_to_le(tests_32_bit[i].u32, buf + 1); if (memcmp(buf + 1, tests_32_bit[i].u8, 4) != 0) { fprintf(stderr, "Failed unaligned %"PRIu32" => %s; expected %s\n", tests_32_bit[i].u32, to_hex(buf + 1, 4), to_hex(tests_32_bit[i].u8, 4)); errors++; } i32_to_le(tests_32_bit[i].i32, buf + 1); if (memcmp(buf + 1, tests_32_bit[i].u8, 4) != 0) { fprintf(stderr, "Failed unaligned %"PRId32" => %s; expected %s\n", tests_32_bit[i].i32, to_hex(buf + 1, 4), to_hex(tests_32_bit[i].u8, 4)); errors++; } } return errors; }