/* We are going to test whether close can clean up after itself. */

#include "test.h"

static void
run_test (BOOL overlap_allowed) {
    int r;
    toku_range_tree *tree;
    toku_range range;
    int nums[8] = {0,1,2,3,4,5,6,7};
    char letters[2] = {'A','B'};



    /* Test overlap case */
    /*
        1   2   3   4   5   6   7
        |---A-----------|
    */
    r = toku_rt_create(
        &tree, 
        int_cmp, 
        char_cmp, 
        overlap_allowed, 
        toku_malloc, 
        toku_free, 
        toku_realloc
        );
    CKERR(r);

    range.ends.left = (toku_point*)&nums[1];
    range.ends.right = (toku_point*)&nums[5];
    range.data = (TXNID)letters[0];
    r = toku_rt_insert(tree, &range);   CKERR(r);

    r = toku_rt_close(tree);            CKERR(r);

    tree = NULL;

}

int main(int argc, const char *argv[]) {
    parse_args(argc, argv);

#ifndef TOKU_RT_NOOVERLAPS
    run_test(TRUE);
#endif
    run_test(FALSE);
    return 0;
}