diff options
Diffstat (limited to 'storage/tokudb/ft-index/ft/tests/test3884.cc')
-rw-r--r-- | storage/tokudb/ft-index/ft/tests/test3884.cc | 67 |
1 files changed, 36 insertions, 31 deletions
diff --git a/storage/tokudb/ft-index/ft/tests/test3884.cc b/storage/tokudb/ft-index/ft/tests/test3884.cc index 817e0d82212..7fc3059800d 100644 --- a/storage/tokudb/ft-index/ft/tests/test3884.cc +++ b/storage/tokudb/ft-index/ft/tests/test3884.cc @@ -119,13 +119,18 @@ le_add_to_bn(bn_data* bn, uint32_t idx, const char *key, int keysize, const cha { LEAFENTRY r = NULL; uint32_t size_needed = LE_CLEAN_MEMSIZE(valsize); + void *maybe_free = nullptr; bn->get_space_for_insert( idx, key, keysize, size_needed, - &r + &r, + &maybe_free ); + if (maybe_free) { + toku_free(maybe_free); + } resource_assert(r); r->type = LE_CLEAN; r->u.clean.vallen = valsize; @@ -212,20 +217,20 @@ test_split_on_boundary(void) unlink(fname); CACHETABLE ct; - FT_HANDLE brt; + FT_HANDLE ft; toku_cachetable_create(&ct, 0, ZERO_LSN, NULL_LOGGER); - r = toku_open_ft_handle(fname, 1, &brt, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); + r = toku_open_ft_handle(fname, 1, &ft, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); FTNODE nodea, nodeb; DBT splitk; // if we haven't done it right, we should hit the assert in the top of move_leafentries - ftleaf_split(brt->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); + ftleaf_split(ft->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); verify_basement_node_msns(nodea, dummy_msn_3884); verify_basement_node_msns(nodeb, dummy_msn_3884); - toku_unpin_ftnode(brt->ft, nodeb); - r = toku_close_ft_handle_nolsn(brt, NULL); assert(r == 0); + toku_unpin_ftnode(ft->ft, nodeb); + r = toku_close_ft_handle_nolsn(ft, NULL); assert(r == 0); toku_cachetable_close(&ct); if (splitk.data) { @@ -282,17 +287,17 @@ test_split_with_everything_on_the_left(void) unlink(fname); CACHETABLE ct; - FT_HANDLE brt; + FT_HANDLE ft; toku_cachetable_create(&ct, 0, ZERO_LSN, NULL_LOGGER); - r = toku_open_ft_handle(fname, 1, &brt, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); + r = toku_open_ft_handle(fname, 1, &ft, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); FTNODE nodea, nodeb; DBT splitk; // if we haven't done it right, we should hit the assert in the top of move_leafentries - ftleaf_split(brt->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); + ftleaf_split(ft->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); - toku_unpin_ftnode(brt->ft, nodeb); - r = toku_close_ft_handle_nolsn(brt, NULL); assert(r == 0); + toku_unpin_ftnode(ft->ft, nodeb); + r = toku_close_ft_handle_nolsn(ft, NULL); assert(r == 0); toku_cachetable_close(&ct); if (splitk.data) { @@ -354,17 +359,17 @@ test_split_on_boundary_of_last_node(void) unlink(fname); CACHETABLE ct; - FT_HANDLE brt; + FT_HANDLE ft; toku_cachetable_create(&ct, 0, ZERO_LSN, NULL_LOGGER); - r = toku_open_ft_handle(fname, 1, &brt, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); + r = toku_open_ft_handle(fname, 1, &ft, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); FTNODE nodea, nodeb; DBT splitk; // if we haven't done it right, we should hit the assert in the top of move_leafentries - ftleaf_split(brt->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); + ftleaf_split(ft->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); - toku_unpin_ftnode(brt->ft, nodeb); - r = toku_close_ft_handle_nolsn(brt, NULL); assert(r == 0); + toku_unpin_ftnode(ft->ft, nodeb); + r = toku_close_ft_handle_nolsn(ft, NULL); assert(r == 0); toku_cachetable_close(&ct); if (splitk.data) { @@ -418,17 +423,17 @@ test_split_at_begin(void) unlink(fname); CACHETABLE ct; - FT_HANDLE brt; + FT_HANDLE ft; toku_cachetable_create(&ct, 0, ZERO_LSN, NULL_LOGGER); - r = toku_open_ft_handle(fname, 1, &brt, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); + r = toku_open_ft_handle(fname, 1, &ft, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); FTNODE nodea, nodeb; DBT splitk; // if we haven't done it right, we should hit the assert in the top of move_leafentries - ftleaf_split(brt->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); + ftleaf_split(ft->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); - toku_unpin_ftnode(brt->ft, nodeb); - r = toku_close_ft_handle_nolsn(brt, NULL); assert(r == 0); + toku_unpin_ftnode(ft->ft, nodeb); + r = toku_close_ft_handle_nolsn(ft, NULL); assert(r == 0); toku_cachetable_close(&ct); if (splitk.data) { @@ -478,17 +483,17 @@ test_split_at_end(void) unlink(fname); CACHETABLE ct; - FT_HANDLE brt; + FT_HANDLE ft; toku_cachetable_create(&ct, 0, ZERO_LSN, NULL_LOGGER); - r = toku_open_ft_handle(fname, 1, &brt, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); + r = toku_open_ft_handle(fname, 1, &ft, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); FTNODE nodea, nodeb; DBT splitk; // if we haven't done it right, we should hit the assert in the top of move_leafentries - ftleaf_split(brt->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); + ftleaf_split(ft->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); - toku_unpin_ftnode(brt->ft, nodeb); - r = toku_close_ft_handle_nolsn(brt, NULL); assert(r == 0); + toku_unpin_ftnode(ft->ft, nodeb); + r = toku_close_ft_handle_nolsn(ft, NULL); assert(r == 0); toku_cachetable_close(&ct); if (splitk.data) { @@ -532,20 +537,20 @@ test_split_odd_nodes(void) unlink(fname); CACHETABLE ct; - FT_HANDLE brt; + FT_HANDLE ft; toku_cachetable_create(&ct, 0, ZERO_LSN, NULL_LOGGER); - r = toku_open_ft_handle(fname, 1, &brt, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); + r = toku_open_ft_handle(fname, 1, &ft, nodesize, bnsize, TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn, toku_builtin_compare_fun); assert(r==0); FTNODE nodea, nodeb; DBT splitk; // if we haven't done it right, we should hit the assert in the top of move_leafentries - ftleaf_split(brt->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); + ftleaf_split(ft->ft, &sn, &nodea, &nodeb, &splitk, true, SPLIT_EVENLY, 0, NULL); verify_basement_node_msns(nodea, dummy_msn_3884); verify_basement_node_msns(nodeb, dummy_msn_3884); - toku_unpin_ftnode(brt->ft, nodeb); - r = toku_close_ft_handle_nolsn(brt, NULL); assert(r == 0); + toku_unpin_ftnode(ft->ft, nodeb); + r = toku_close_ft_handle_nolsn(ft, NULL); assert(r == 0); toku_cachetable_close(&ct); if (splitk.data) { |