| 614 | } |
| 615 | |
| 616 | static int |
| 617 | test_member_loadfactor(void) |
| 618 | { |
| 619 | unsigned int j; |
| 620 | unsigned int added_keys, average_keys_added = 0; |
| 621 | int ret; |
| 622 | |
| 623 | setup_keys_and_data(); |
| 624 | |
| 625 | rte_member_free(setsum_ht); |
| 626 | rte_member_free(setsum_cache); |
| 627 | rte_member_free(setsum_vbf); |
| 628 | |
| 629 | params.key_len = KEY_SIZE; |
| 630 | params.name = "test_member_ht"; |
| 631 | params.is_cache = 0; |
| 632 | params.type = RTE_MEMBER_TYPE_HT; |
| 633 | setsum_ht = rte_member_create(¶ms); |
| 634 | |
| 635 | params.name = "test_member_cache"; |
| 636 | params.is_cache = 1; |
| 637 | setsum_cache = rte_member_create(¶ms); |
| 638 | |
| 639 | |
| 640 | if (setsum_ht == NULL || setsum_cache == NULL) { |
| 641 | printf("Creation of setsums fail\n"); |
| 642 | return -1; |
| 643 | } |
| 644 | /* Test HT non-cache mode */ |
| 645 | for (j = 0; j < ITERATIONS; j++) { |
| 646 | /* Add random entries until key cannot be added */ |
| 647 | ret = add_generated_keys(setsum_ht, &added_keys); |
| 648 | if (ret != -ENOSPC) { |
| 649 | printf("Unexpected error when adding keys\n"); |
| 650 | return -1; |
| 651 | } |
| 652 | average_keys_added += added_keys; |
| 653 | |
| 654 | /* Reset the table */ |
| 655 | rte_member_reset(setsum_ht); |
| 656 | |
| 657 | /* Print a dot to show progress on operations */ |
| 658 | printf("."); |
| 659 | fflush(stdout); |
| 660 | } |
| 661 | |
| 662 | average_keys_added /= ITERATIONS; |
| 663 | |
| 664 | printf("\nKeys inserted when no space(non-cache) = %.2f%% (%u/%u)\n", |
| 665 | ((double) average_keys_added / params.num_keys * 100), |
| 666 | average_keys_added, params.num_keys); |
| 667 | |
| 668 | /* Test cache mode */ |
| 669 | added_keys = average_keys_added = 0; |
| 670 | for (j = 0; j < ITERATIONS; j++) { |
| 671 | /* Add random entries until key cannot be added */ |
| 672 | ret = add_generated_keys_cache(setsum_cache, &added_keys); |
| 673 | if (ret != 1) { |
no test coverage detected