X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_hash.c;h=2c87efe692dedc54f9e3ccf318a67c04ea63462a;hb=dd0eedb1cfcf0cb7423d859177c5bc6f931eaf8a;hp=7e41725ae901ca500c0096dc90235842d32bbf22;hpb=775a8cfc46969a4bb0e7206a2e7b2a630f2f0966;p=dpdk.git diff --git a/app/test/test_hash.c b/app/test/test_hash.c index 7e41725ae9..2c87efe692 100644 --- a/app/test/test_hash.c +++ b/app/test/test_hash.c @@ -420,6 +420,46 @@ static int test_add_update_delete(void) return 0; } +/* + * Sequence of operations for retrieving a key with its position + * + * - create table + * - add key + * - get the key with its position: hit + * - delete key + * - try to get the deleted key: miss + * + */ +static int test_hash_get_key_with_position(void) +{ + struct rte_hash *handle = NULL; + int pos, expectedPos, result; + void *key; + + ut_params.name = "hash_get_key_w_pos"; + handle = rte_hash_create(&ut_params); + RETURN_IF_ERROR(handle == NULL, "hash creation failed"); + + pos = rte_hash_add_key(handle, &keys[0]); + print_key_info("Add", &keys[0], pos); + RETURN_IF_ERROR(pos < 0, "failed to add key (pos0=%d)", pos); + expectedPos = pos; + + result = rte_hash_get_key_with_position(handle, pos, &key); + RETURN_IF_ERROR(result != 0, "error retrieving a key"); + + pos = rte_hash_del_key(handle, &keys[0]); + print_key_info("Del", &keys[0], pos); + RETURN_IF_ERROR(pos != expectedPos, + "failed to delete key (pos0=%d)", pos); + + result = rte_hash_get_key_with_position(handle, pos, &key); + RETURN_IF_ERROR(result != -ENOENT, "non valid key retrieved"); + + rte_hash_free(handle); + return 0; +} + /* * Sequence of operations for find existing hash table * @@ -743,7 +783,7 @@ fbk_hash_unit_test(void) */ struct rte_fbk_hash_params different_name = { .name = "different_name", /* different name */ - .entries = RTE_FBK_HASH_ENTRIES_MAX, + .entries = LOCAL_FBK_HASH_ENTRIES_MAX, .entries_per_bucket = 4, .socket_id = 0, }; @@ -1442,6 +1482,8 @@ test_hash(void) return -1; if (test_hash_add_delete_jhash_3word() < 0) return -1; + if (test_hash_get_key_with_position() < 0) + return -1; if (test_hash_find_existing() < 0) return -1; if (test_add_update_delete() < 0) @@ -1472,8 +1514,4 @@ test_hash(void) return 0; } -static struct test_command hash_cmd = { - .command = "hash_autotest", - .callback = test_hash, -}; -REGISTER_TEST_COMMAND(hash_cmd); +REGISTER_TEST_COMMAND(hash_autotest, test_hash);