diff options
Diffstat (limited to 'tests/include/dynamic_extension.h')
| -rw-r--r-- | tests/include/dynamic_extension.h | 69 |
1 files changed, 38 insertions, 31 deletions
diff --git a/tests/include/dynamic_extension.h b/tests/include/dynamic_extension.h index 6e9b16c..90c6906 100644 --- a/tests/include/dynamic_extension.h +++ b/tests/include/dynamic_extension.h @@ -22,18 +22,24 @@ * should be included in the source file that includes this one, above the * include statement. */ -/* -#include "testing.h" -#include "framework/DynamicExtension.h" -#include "framework/scheduling/SerialScheduler.h" -#include "shard/ISAMTree.h" -#include "query/rangequery.h" -#include <check.h> -using namespace de; -typedef DynamicExtension<R, ISAMTree<R>, rq::Query<ISAMTree<R>, R>, LayoutPolicy::TEIRING, DeletePolicy::TAGGING, SerialScheduler> DE; -*/ + +// #include "testing.h" +// #include "framework/DynamicExtension.h" +// #include "framework/scheduling/SerialScheduler.h" +// #include "shard/ISAMTree.h" +// #include "query/rangequery.h" +// #include <check.h> +// #include <random> +// #include <set> + +// using namespace de; +// typedef Rec R; +// typedef ISAMTree<R> S; +// typedef rq::Query<S> Q; +// typedef DynamicExtension<S, Q, LayoutPolicy::TEIRING, DeletePolicy::TAGGING, SerialScheduler> DE; +#include "framework/util/Configuration.h" START_TEST(t_create) { auto test_de = new DE(100, 1000, 2); @@ -103,7 +109,16 @@ START_TEST(t_insert_with_mem_merges) test_de->await_next_epoch(); ck_assert_int_eq(test_de->get_record_count(), 300); - ck_assert_int_eq(test_de->get_height(), 1); + + /* + * BSM grows on every flush, so the height will be different than + * normal layout policies + */ + if (test_de->Layout == de::LayoutPolicy::BSM) { + ck_assert_int_eq(test_de->get_height(), 2); + } else { + ck_assert_int_eq(test_de->get_height(), 1); + } delete test_de; } @@ -138,11 +153,12 @@ START_TEST(t_range_query) uint64_t lower_key = keys[idx]; uint64_t upper_key = keys[idx + 250]; - rq::Parms<R> p; + Q::Parameters p; + p.lower_bound = lower_key; p.upper_bound = upper_key; - auto result = test_de->query(&p); + auto result = test_de->query(std::move(p)); auto r = result.get(); std::sort(r.begin(), r.end()); ck_assert_int_eq(r.size(), 251); @@ -176,8 +192,6 @@ START_TEST(t_tombstone_merging_01) records.insert({key, val}); } - size_t deletes = 0; - size_t cnt=0; for (auto rec : records) { R r = {rec.first, rec.second}; ck_assert_int_eq(test_de->insert(r), 1); @@ -189,7 +203,6 @@ START_TEST(t_tombstone_merging_01) for (size_t i=0; i<del_vec.size(); i++) { R dr = {del_vec[i].first, del_vec[i].second}; test_de->erase(dr); - deletes++; to_delete.erase(del_vec[i]); deleted.insert(del_vec[i]); } @@ -209,14 +222,14 @@ START_TEST(t_tombstone_merging_01) } END_TEST -DE *create_test_tree(size_t reccnt, size_t memlevel_cnt) { +[[maybe_unused]] static DE *create_test_tree(size_t reccnt, size_t memlevel_cnt) { auto rng = gsl_rng_alloc(gsl_rng_mt19937); auto test_de = new DE(1000, 10000, 2); - std::set<R> records; - std::set<R> to_delete; - std::set<R> deleted; + std::set<Rec> records; + std::set<Rec> to_delete; + std::set<Rec> deleted; while (records.size() < reccnt) { uint64_t key = rand(); @@ -227,17 +240,15 @@ DE *create_test_tree(size_t reccnt, size_t memlevel_cnt) { records.insert({key, val}); } - size_t deletes = 0; for (auto rec : records) { ck_assert_int_eq(test_de->insert(rec), 1); if (gsl_rng_uniform(rng) < 0.05 && !to_delete.empty()) { - std::vector<R> del_vec; + std::vector<Rec> del_vec; std::sample(to_delete.begin(), to_delete.end(), std::back_inserter(del_vec), 3, std::mt19937{std::random_device{}()}); for (size_t i=0; i<del_vec.size(); i++) { test_de->erase(del_vec[i]); - deletes++; to_delete.erase(del_vec[i]); deleted.insert(del_vec[i]); } @@ -260,9 +271,9 @@ START_TEST(t_static_structure) size_t reccnt = 100000; auto test_de = new DE(100, 1000, 2); - std::set<R> records; - std::set<R> to_delete; - std::set<R> deleted; + std::set<Rec> records; + std::set<Rec> to_delete; + std::set<Rec> deleted; while (records.size() < reccnt) { uint64_t key = rand(); @@ -274,15 +285,11 @@ START_TEST(t_static_structure) } size_t deletes = 0; - size_t t_reccnt = 0; - size_t k=0; for (auto rec : records) { - k++; ck_assert_int_eq(test_de->insert(rec), 1); - t_reccnt++; if (gsl_rng_uniform(rng) < 0.05 && !to_delete.empty()) { - std::vector<R> del_vec; + std::vector<Rec> del_vec; std::sample(to_delete.begin(), to_delete.end(), std::back_inserter(del_vec), 3, std::mt19937{std::random_device{}()}); for (size_t i=0; i<del_vec.size(); i++) { |