summaryrefslogtreecommitdiff
path: root/storage/tokudb/ft-index/ft/tests/test3884.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/tokudb/ft-index/ft/tests/test3884.cc')
-rw-r--r--storage/tokudb/ft-index/ft/tests/test3884.cc67
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) {