return tm_teardown();
}
- void set_overwrite_threshold() {
+ void enable_delta_based_overwrite() {
crimson::common::local_conf().set_val("seastore_data_delta_based_overwrite",
"16777216").get();
}
- void unset_overwrite_threshold() {
+ void disable_delta_based_overwrite() {
crimson::common::local_conf().set_val("seastore_data_delta_based_overwrite", "0").get();
}
TEST_P(object_data_handler_test_t, delta_over_multi_write)
{
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
test_multi_write();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, delta_over_write_hole)
{
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
test_write_hole();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, delta_over_overwrite_single)
{
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
test_overwrite_single();
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, delta_over_overwrite_double)
{
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
test_overwrite_double();
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, delta_over_overwrite_partial)
{
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
test_overwrite_partial();
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, delta_over_unaligned_write)
{
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
test_unaligned_write();
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, delta_over_unaligned_overwrite)
{
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
test_unaligned_overwrite();
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, delta_over_truncate)
{
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
test_truncate();
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, no_overwrite) {
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
write_same();
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, overwrite_right) {
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
write_right();
auto pins = get_mappings(0, 128<<10);
EXPECT_EQ(pins.size(), 1);
read(0, 128<<10);
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, overwrite_left) {
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
write_left();
auto pins = get_mappings(0, 128<<10);
EXPECT_EQ(pins.size(), 1);
read(0, 128<<10);
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, overwrite_right_left) {
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
write_right_left();
auto pins = get_mappings(0, 128<<10);
EXPECT_EQ(pins.size(), 1);
read(0, 128<<10);
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, multiple_overwrite) {
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
multiple_write();
auto pins = get_mappings(0, 128<<10);
EXPECT_EQ(pins.size(), 1);
read(0, 128<<10);
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
constexpr size_t BSIZE = 4<<10;
constexpr size_t BLOCKS = TOTAL / BSIZE;
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
size_t wsize = std::uniform_int_distribution<>(10, BSIZE - 1)(gen);
uint8_t div[3] = {1, 2, 4};
uint8_t block_num = div[std::uniform_int_distribution<>(0, 2)(gen)];
logger().info("random_writes: {} done replaying/checking", i);
}
read(0, 4<<20);
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}
TEST_P(object_data_handler_test_t, overwrite_then_read_within_transaction) {
run_async([this] {
- set_overwrite_threshold();
+ enable_delta_based_overwrite();
auto t = create_mutate_transaction();
auto base = 4096 * 4;
auto len = 4096 * 6;
4096));
EXPECT_EQ(committed.length(), pending.length());
EXPECT_NE(committed, pending);
- unset_overwrite_threshold();
+ disable_delta_based_overwrite();
});
}