mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 23:04:20 +01:00
Addresses #288
Additional tests for range trees. git-svn-id: file:///svn/tokudb@1743 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
parent
2b94f88627
commit
8042a1d132
2 changed files with 41 additions and 0 deletions
|
@ -53,6 +53,11 @@ int main(int argc, const char *argv[]) {
|
|||
toku_range* buf = (toku_range*)toku_malloc(2*sizeof(toku_range));
|
||||
unsigned bufsize = 2;
|
||||
unsigned found;
|
||||
|
||||
int stuff[3] = {0,1,2};
|
||||
range.left = &stuff[0];
|
||||
range.right = &stuff[1];
|
||||
range.data = NULL;
|
||||
|
||||
r = toku_rt_create(&tree, dummy_cmp, dummy_cmp, FALSE); CKERR(r);
|
||||
assert(tree != NULL);
|
||||
|
@ -63,12 +68,23 @@ int main(int argc, const char *argv[]) {
|
|||
r = toku_rt_find(tree, NULL, 2, &buf, &bufsize, &found);
|
||||
CKERR2(r, EINVAL);
|
||||
|
||||
range.data = &stuff[2];
|
||||
r = toku_rt_find(tree, &range, 2, &buf, &bufsize, &found);
|
||||
CKERR2(r, EINVAL);
|
||||
range.data = NULL;
|
||||
|
||||
r = toku_rt_find(tree, &range, 2, NULL, &bufsize, &found);
|
||||
CKERR2(r, EINVAL);
|
||||
|
||||
r = toku_rt_find(tree, &range, 2, &buf, NULL, &found);
|
||||
CKERR2(r, EINVAL);
|
||||
|
||||
unsigned oldbufsize = bufsize;
|
||||
bufsize = 0;
|
||||
r = toku_rt_find(tree, &range, 2, &buf, &bufsize, &found);
|
||||
CKERR2(r, EINVAL);
|
||||
bufsize = oldbufsize;
|
||||
|
||||
r = toku_rt_find(tree, &range, 2, &buf, &bufsize, NULL);
|
||||
CKERR2(r, EINVAL);
|
||||
|
||||
|
|
|
@ -28,6 +28,9 @@ int main(int argc, const char *argv[]) {
|
|||
range.data = &letters[0];
|
||||
r = toku_rt_insert(tree, &range); CKERR(r);
|
||||
|
||||
/* Try and fail to insert exact same thing. */
|
||||
r = toku_rt_insert(tree, &range); CKERR2(r,EDOM);
|
||||
|
||||
range.left = &nums[2];
|
||||
range.right = &nums[6];
|
||||
range.data = &letters[0];
|
||||
|
@ -48,6 +51,9 @@ int main(int argc, const char *argv[]) {
|
|||
range.data = &letters[0];
|
||||
r = toku_rt_delete(tree, &range); CKERR(r);
|
||||
|
||||
/* Try to delete again, make sure it fails. (Not there anymore) */
|
||||
r = toku_rt_delete(tree, &range); CKERR2(r,EDOM);
|
||||
|
||||
range.left = &nums[2];
|
||||
range.right = &nums[6];
|
||||
range.data = &letters[0];
|
||||
|
@ -94,6 +100,22 @@ int main(int argc, const char *argv[]) {
|
|||
range.data = &letters[0];
|
||||
r = toku_rt_insert(tree, &range); CKERR(r);
|
||||
|
||||
/* Try and fail to insert exact same thing. */
|
||||
r = toku_rt_insert(tree, &range); CKERR2(r,EDOM);
|
||||
|
||||
/* Try (and fail) to insert an overlapping range in a nooverlap tree. */
|
||||
range.left = &nums[0];
|
||||
range.right = &nums[4];
|
||||
range.data = &letters[0];
|
||||
r = toku_rt_insert(tree, &range); CKERR2(r,EDOM);
|
||||
|
||||
/* Try (and fail) to insert an overlapping range (different data) in a
|
||||
nooverlap tree. */
|
||||
range.left = &nums[0];
|
||||
range.right = &nums[4];
|
||||
range.data = &letters[1];
|
||||
r = toku_rt_insert(tree, &range); CKERR2(r,EDOM);
|
||||
|
||||
range.left = &nums[4];
|
||||
range.right = &nums[6];
|
||||
range.data = &letters[1];
|
||||
|
@ -104,6 +126,9 @@ int main(int argc, const char *argv[]) {
|
|||
range.data = &letters[1];
|
||||
r = toku_rt_delete(tree, &range); CKERR(r);
|
||||
|
||||
/* Try to delete again, make sure it fails. (Not there anymore) */
|
||||
r = toku_rt_delete(tree, &range); CKERR2(r,EDOM);
|
||||
|
||||
range.left = &nums[4];
|
||||
range.right = &nums[6];
|
||||
range.data = &letters[1];
|
||||
|
|
Loading…
Add table
Reference in a new issue