static void test_find_zero_blocks_null(void) { uint64_t offset = 0; uint32_t len = 0; find_zero_blocks(NULL, &offset, &len); TEST_ASSERT_EQUAL_UINT64(0, offset); TEST_ASSERT_EQUAL_UINT32(0, len); }
static void test_find_zero_blocks_4097_zero_offset_1(void) { const uint8_t buf[BLOCK_SIZE + 1] = {0}; uint64_t offset = 1; uint32_t len = BLOCK_SIZE; find_zero_blocks(buf, &offset, &len); TEST_ASSERT_EQUAL_UINT64(BLOCK_SIZE, offset); TEST_ASSERT_EQUAL_UINT32(1, len); }
static void test_find_zero_blocks_4095(void) { const uint8_t buf[4095] = {0}; uint64_t offset = 0; uint32_t len = 4095; find_zero_blocks(buf, &offset, &len); TEST_ASSERT_EQUAL_UINT64(0, offset); TEST_ASSERT_EQUAL_UINT32(4095, len); }
static void test_find_zero_blocks_8K_zero_zero(void) { const uint8_t buf[BLOCK_SIZE * 2] = {0}; uint64_t offset = 0; uint32_t len = BLOCK_SIZE * 2; find_zero_blocks(buf, &offset, &len); TEST_ASSERT_EQUAL_UINT64(BLOCK_SIZE * 2, offset); TEST_ASSERT_EQUAL_UINT32(0, len); }
static void test_find_zero_blocks_4K_nonzero_at_middle(void) { uint8_t buf[BLOCK_SIZE] = {0}; buf[BLOCK_SIZE / 2] = 1; uint64_t offset = 0; uint32_t len = BLOCK_SIZE; find_zero_blocks(buf, &offset, &len); TEST_ASSERT_EQUAL_UINT64(0, offset); TEST_ASSERT_EQUAL_UINT32(BLOCK_SIZE, len); }
static void test_find_zero_blocks_20K_zero_zero_middle_zero_zero(void) { uint8_t buf[BLOCK_SIZE * 5] = {0}; buf[BLOCK_SIZE * 5 / 2] = 1; uint64_t offset = 0; uint32_t len = BLOCK_SIZE * 5; find_zero_blocks(buf, &offset, &len); TEST_ASSERT_EQUAL_UINT64(BLOCK_SIZE * 2, offset); TEST_ASSERT_EQUAL_UINT32(BLOCK_SIZE, len); }
static void test_find_zero_blocks_12K_head_zero_zero(void) { uint8_t buf[BLOCK_SIZE * 3] = {0}; buf[0] = 1; uint64_t offset = 0; uint32_t len = BLOCK_SIZE * 3; find_zero_blocks(buf, &offset, &len); TEST_ASSERT_EQUAL_UINT64(0, offset); TEST_ASSERT_EQUAL_UINT32(BLOCK_SIZE, len); }
static void test_find_zero_blocks_8K_zero_tail(void) { uint8_t buf[BLOCK_SIZE * 2] = {0}; buf[BLOCK_SIZE * 2 - 1] = 1; uint64_t offset = 0; uint32_t len = BLOCK_SIZE * 2; find_zero_blocks(buf, &offset, &len); TEST_ASSERT_EQUAL_UINT64(BLOCK_SIZE, offset); TEST_ASSERT_EQUAL_UINT32(BLOCK_SIZE, len); }
static void test_find_zero_blocks_4097_nonzero_at_4096(void) { uint8_t buf[BLOCK_SIZE + 1] = {0}; buf[BLOCK_SIZE] = 1; uint64_t offset = 0; uint32_t len = BLOCK_SIZE + 1; find_zero_blocks(buf, &offset, &len); TEST_ASSERT_EQUAL_UINT64(BLOCK_SIZE, offset); TEST_ASSERT_EQUAL_UINT32(1, len); }
void test_IfTable_get_ifPhysAddress(void) { /* TODO */ netsnmp_variable_list data = {0}; void *lctx = NULL; void *dctx1 = NULL; void *dctx2 = NULL; void *dctx3 = NULL; size_t ret_len; char *ret_val; const uint8_t value1[] = VALUE_ifPhysAddress_1; const uint8_t value2[] = VALUE_ifPhysAddress_2; data.type = ASN_INTEGER; ifTable_get_first_data_point(&lctx, &dctx1, &data, NULL); ifTable_get_next_data_point(&lctx, &dctx2, &data, NULL); ifTable_data_free(dctx2, NULL); ifTable_get_next_data_point(&lctx, &dctx3, &data, NULL); TEST_ASSERT_NULL(dctx3); ifTable_loop_free(lctx, NULL); ret_val = get_ifPhysAddress(dctx1, &ret_len); TEST_ASSERT_NOT_NULL(ret_val); TEST_ASSERT_EQUAL_UINT64(sizeof(value1), ret_len); TEST_ASSERT_EQUAL_UINT8_ARRAY(value1, (uint8_t *)ret_val, sizeof(value1)); ifTable_data_free(dctx1, NULL); ifTable_get_first_data_point(&lctx, &dctx1, &data, NULL); ifTable_data_free(dctx1, NULL); ifTable_get_next_data_point(&lctx, &dctx2, &data, NULL); ifTable_get_next_data_point(&lctx, &dctx3, &data, NULL); TEST_ASSERT_NULL(dctx3); ifTable_loop_free(lctx, NULL); ret_val = get_ifPhysAddress(dctx2, &ret_len); TEST_ASSERT_NOT_NULL(ret_val); TEST_ASSERT_EQUAL_UINT64(sizeof(value2), ret_len); TEST_ASSERT_EQUAL_UINT8_ARRAY(value2, (uint8_t *)ret_val, sizeof(value2)); ifTable_data_free(dctx2, NULL); }
TEST(checksum, calc_64bit) { uint64_t array[] = { 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xAAAAAAAAAAAAAAAA, 0xBBBBBBBBBBBBBBBB, 0xCCCCCCCCCCCCCCCC, 0xDDDDDDDDDDDDDDDD, 0xEEEEEEEEEEEEEEEE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000 }; size_t len = sizeof(array) / sizeof(array[0]); uint64_t expects = 0xFFFFFFFFFFFFFFF8; /* 0x7FFFFFFFFFFFFFFF8 */ TEST_ASSERT_EQUAL_UINT64( expects, checksum_calc_64bit(array, len) ); }
void test_IfTable_get_ifOperStatus(void) { netsnmp_variable_list data = {0}; void *lctx = NULL; void *dctx1 = NULL; void *dctx2 = NULL; void *dctx3 = NULL; size_t ret_len; int32_t *ret_val; data.type = ASN_INTEGER; ifTable_get_first_data_point(&lctx, &dctx1, &data, NULL); ifTable_get_next_data_point(&lctx, &dctx2, &data, NULL); ifTable_data_free(dctx2, NULL); ifTable_get_next_data_point(&lctx, &dctx3, &data, NULL); TEST_ASSERT_NULL(dctx3); ifTable_loop_free(lctx, NULL); ret_val = get_ifOperStatus(dctx1, &ret_len); TEST_ASSERT_NOT_NULL(ret_val); TEST_ASSERT_EQUAL_INT32(VALUE_ifOperStatus_1, *ret_val); TEST_ASSERT_EQUAL_UINT64(sizeof(*ret_val), ret_len); ifTable_data_free(dctx1, NULL); ifTable_get_first_data_point(&lctx, &dctx1, &data, NULL); ifTable_data_free(dctx1, NULL); ifTable_get_next_data_point(&lctx, &dctx2, &data, NULL); ifTable_get_next_data_point(&lctx, &dctx3, &data, NULL); TEST_ASSERT_NULL(dctx3); ifTable_loop_free(lctx, NULL); ret_val = get_ifOperStatus(dctx2, &ret_len); TEST_ASSERT_NOT_NULL(ret_val); TEST_ASSERT_EQUAL_INT32(VALUE_ifOperStatus_2, *ret_val); TEST_ASSERT_EQUAL_UINT64(sizeof(*ret_val), ret_len); ifTable_data_free(dctx2, NULL); }