diff options
author | David Robillard <d@drobilla.net> | 2016-07-11 18:09:50 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2016-07-11 18:09:50 +0000 |
commit | cc4c8641bdd2d60864e6a4236539a7013eb00ad7 (patch) | |
tree | b3c86167343c716e5c4f1d82f308826ac97fa3a2 | |
parent | 59a5d4b884db6cd9b5b98f8aaeb0b153bdc6405a (diff) | |
download | zix-cc4c8641bdd2d60864e6a4236539a7013eb00ad7.tar.gz zix-cc4c8641bdd2d60864e6a4236539a7013eb00ad7.tar.bz2 zix-cc4c8641bdd2d60864e6a4236539a7013eb00ad7.zip |
Improve test coverage
git-svn-id: http://svn.drobilla.net/zix/trunk@106 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
-rw-r--r-- | test/btree_test.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/test/btree_test.c b/test/btree_test.c index 1936f93..121d424 100644 --- a/test/btree_test.c +++ b/test/btree_test.c @@ -73,6 +73,10 @@ ith_elem(int test_num, size_t n_elems, int i) } } +static void destroy(void* ptr) +{ +} + typedef struct { int test_num; size_t n_elems; @@ -174,6 +178,10 @@ stress(int test_num, size_t n_elems) zix_btree_iter_free(ti); } + if (zix_btree_lower_bound(NULL, (void*)r, &ti) != ZIX_STATUS_BAD_ARG) { + return test_fail(t, "Lower bound on NULL tree succeeded\n"); + } + // Find the lower bound of all elements and ensure it's exact for (size_t i = 0; i < n_elems; ++i) { r = ith_elem(test_num, n_elems, i); @@ -314,12 +322,24 @@ stress(int test_num, size_t n_elems) return test_fail(t, "Tree size %zu != %zu\n", zix_btree_size(t), n_elems); } + // Delete some elements in a random order + for (size_t e = 0; e < zix_btree_size(t); e++) { + r = ith_elem(test_num, n_elems, rand() % n_elems); + uintptr_t removed; + ZixStatus rst = zix_btree_remove(t, (void*)r, (void**)&removed, &next); + if (rst != ZIX_STATUS_SUCCESS && rst != ZIX_STATUS_NOT_FOUND) { + return test_fail(t, "Error deleting %lu\n", (uintptr_t)r); + } + } + zix_btree_iter_free(next); + next = NULL; + zix_btree_free(t); // Test lower_bound with wildcard comparator TestContext ctx = { test_num, n_elems }; - if (!(t = zix_btree_new(wildcard_cmp, &ctx, NULL))) { + if (!(t = zix_btree_new(wildcard_cmp, &ctx, destroy))) { return test_fail(t, "Failed to allocate tree\n"); } @@ -352,7 +372,7 @@ stress(int test_num, size_t n_elems) return test_fail(t, "Wildcard lower bound %" PRIdPTR " != %" PRIdPTR "\n", iter_data, cut); } - + zix_btree_iter_free(ti); // Find lower bound of value past end |