summaryrefslogtreecommitdiffstats
path: root/tests/include/dynamic_extension.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/include/dynamic_extension.h')
-rw-r--r--tests/include/dynamic_extension.h69
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++) {