- uint64_t data = 0xF34DFCFF00000000;
- uint64_t result = getBitField(data, 16, 16, false);
- uint64_t expectedValue = 0xFCFF;
- fail_unless(result == expectedValue,
- "Field retrieved in 0x%X was 0x%X instead of %d", data,
- result, expectedValue);
-}
-END_TEST
-
-START_TEST (test_one_byte)
-{
- uint64_t data = 0xFA00000000000000;
- uint64_t result = getBitField(data, 0, 4, false);
- fail_unless(result == 0xF,
- "First 4 bits in 0x%X was 0x%X instead of 0xF", data, result);
- result = getBitField(data, 4, 4, false);
- fail_unless(result == 0xA,
- "First 4 bits in 0x%X was 0x%X instead of 0xA", data, result);
- result = getBitField(data, 0, 8, false);
- fail_unless(result == 0xFA,
- "All bits in 0x%X were 0x%X instead of 0x%X", data, result, data);
-}
-END_TEST
-
-START_TEST (test_multi_byte)
-{
- uint64_t data = 0x12FA000000000000;
- uint64_t result = getBitField(data, 0, 4, false);
- fail_unless(result == 0x1,
- "First 4 bits in 0x%X was 0x%X instead of 0xF", (data >> 60) & 0xF,
- result);
- result = getBitField(data, 4, 4, false);
- fail_unless(result == 0x2,
- "Second 4 bits in 0x%X was %d instead of 0xA", (data >> 56) & 0xF,
- result);
- result = getBitField(data, 8, 4, false);
- fail_unless(result == 0xF,
- "First 4 bits in 0x%X was %d instead of 0x1", (data >> 52) & 0xF,
- result);
- result = getBitField(data, 12, 4, false);
- fail_unless(result == 0xA,
- "Second 4 bits in 0x%X was %d instead of 0x2", (data >> 48) % 0xF,
- result);
-}
-END_TEST
-
-START_TEST (test_get_multi_byte)
-{
- uint64_t data = 0x12FA000000000000;
- uint64_t result = getBitField(data, 0, 9, false);
- ck_assert_int_eq(result, 0x25);
-}
-END_TEST
-
-START_TEST (test_get_off_byte_boundary)
-{
- uint64_t data = 0x000012FA00000000;
- uint64_t result = getBitField(data, 12, 8, false);
- ck_assert_int_eq(result, 0x01);
-} END_TEST
-
-START_TEST (test_set_field)
-{
- uint64_t data = 0;
- setBitField(&data, 1, 0, 1);
- uint64_t result = getBitField(data, 0, 1, false);
- ck_assert_int_eq(result, 0x1);
- data = 0;
- setBitField(&data, 1, 1, 1);
- result = getBitField(data, 1, 1, false);