MCPcopy Create free account
hub / github.com/F-Stack/f-stack / test_add_update_delete_free

Function test_add_update_delete_free

dpdk/app/test/test_hash.c:426–489  ·  view source on GitHub ↗

* Sequence of operations for a single key with 'disable free on del' set: * - delete: miss * - add * - lookup: hit * - add: update * - lookup: hit (updated data) * - delete: hit * - delete: miss * - lookup: miss * - free: hit * - lookup: miss */

Source from the content-addressed store, hash-verified

424 * - lookup: miss
425 */
426static int test_add_update_delete_free(void)
427{
428 struct rte_hash *handle;
429 int pos0, expectedPos0, delPos0, result;
430
431 ut_params.name = "test2";
432 ut_params.extra_flag = RTE_HASH_EXTRA_FLAGS_NO_FREE_ON_DEL;
433 handle = rte_hash_create(&ut_params);
434 RETURN_IF_ERROR(handle == NULL, "hash creation failed");
435 ut_params.extra_flag = 0;
436
437 pos0 = rte_hash_del_key(handle, &keys[0]);
438 print_key_info("Del", &keys[0], pos0);
439 RETURN_IF_ERROR(pos0 != -ENOENT,
440 "fail: found non-existent key (pos0=%d)", pos0);
441
442 pos0 = rte_hash_add_key(handle, &keys[0]);
443 print_key_info("Add", &keys[0], pos0);
444 RETURN_IF_ERROR(pos0 < 0, "failed to add key (pos0=%d)", pos0);
445 expectedPos0 = pos0;
446
447 pos0 = rte_hash_lookup(handle, &keys[0]);
448 print_key_info("Lkp", &keys[0], pos0);
449 RETURN_IF_ERROR(pos0 != expectedPos0,
450 "failed to find key (pos0=%d)", pos0);
451
452 pos0 = rte_hash_add_key(handle, &keys[0]);
453 print_key_info("Add", &keys[0], pos0);
454 RETURN_IF_ERROR(pos0 != expectedPos0,
455 "failed to re-add key (pos0=%d)", pos0);
456
457 pos0 = rte_hash_lookup(handle, &keys[0]);
458 print_key_info("Lkp", &keys[0], pos0);
459 RETURN_IF_ERROR(pos0 != expectedPos0,
460 "failed to find key (pos0=%d)", pos0);
461
462 delPos0 = rte_hash_del_key(handle, &keys[0]);
463 print_key_info("Del", &keys[0], delPos0);
464 RETURN_IF_ERROR(delPos0 != expectedPos0,
465 "failed to delete key (pos0=%d)", delPos0);
466
467 pos0 = rte_hash_del_key(handle, &keys[0]);
468 print_key_info("Del", &keys[0], pos0);
469 RETURN_IF_ERROR(pos0 != -ENOENT,
470 "fail: deleted already deleted key (pos0=%d)", pos0);
471
472 pos0 = rte_hash_lookup(handle, &keys[0]);
473 print_key_info("Lkp", &keys[0], pos0);
474 RETURN_IF_ERROR(pos0 != -ENOENT,
475 "fail: found key after deleting! (pos0=%d)", pos0);
476
477 result = rte_hash_free_key_with_position(handle, delPos0);
478 print_key_info("Free", &keys[0], delPos0);
479 RETURN_IF_ERROR(result != 0,
480 "failed to free key (pos1=%d)", delPos0);
481
482 pos0 = rte_hash_lookup(handle, &keys[0]);
483 print_key_info("Lkp", &keys[0], pos0);

Callers 1

test_hashFunction · 0.85

Calls 7

rte_hash_createFunction · 0.85
rte_hash_del_keyFunction · 0.85
rte_hash_add_keyFunction · 0.85
rte_hash_lookupFunction · 0.85
rte_hash_freeFunction · 0.85
print_key_infoFunction · 0.70

Tested by

no test coverage detected