mirror of
https://github.com/isar/libmdbx.git
synced 2025-12-20 18:32:21 +08:00
mdbx-test: add registry for test cases.
Change-Id: Ie9f069dbe6846af170628945db9897ec690fc3da
This commit is contained in:
48
test/hill.cc
48
test/hill.cc
@@ -14,6 +14,34 @@
|
||||
|
||||
#include "test.h"
|
||||
|
||||
/* LY: тест "холмиком":
|
||||
* - сначала наполняем таблицу циклическими CRUD-манипуляциями,
|
||||
* которые в каждом цикле делают несколько операций, включая удаление,
|
||||
* но в результате добавляют записи.
|
||||
* - затем очищаем таблицу также CRUD-манипуляциями, но уже с другой
|
||||
* пропорцией удалений.
|
||||
*
|
||||
* При этом очень многое зависит от порядка перебора ключей:
|
||||
* - (псевдо)случайное распределение требуется лишь для полноты картины,
|
||||
* но в целом не покрывает важных кейсов.
|
||||
* - кроме (псевдо)случайного перебора требуется последовательное
|
||||
* итерирование ключей интервалами различной ширины, с тем чтобы
|
||||
* проверить различные варианты как разделения, так и слияния страниц
|
||||
* внутри движка.
|
||||
* - при не-уникальных ключах (MDBX_DUPSORT с подвариантами), для каждого
|
||||
* повтора внутри движка формируется вложенное btree-дерево,
|
||||
* соответственно требуется соблюдение аналогичных принципов
|
||||
* итерирования для значений.
|
||||
*/
|
||||
|
||||
class testcase_hill : public testcase {
|
||||
public:
|
||||
testcase_hill(const actor_config &config, const mdbx_pid_t pid)
|
||||
: testcase(config, pid) {}
|
||||
bool run() override;
|
||||
};
|
||||
REGISTER_TESTCASE(hill);
|
||||
|
||||
bool testcase_hill::run() {
|
||||
int err = db_open__begin__table_create_open_clean(dbi);
|
||||
if (unlikely(err != MDBX_SUCCESS)) {
|
||||
@@ -23,26 +51,6 @@ bool testcase_hill::run() {
|
||||
speculum.clear();
|
||||
speculum_committed.clear();
|
||||
|
||||
/* LY: тест "холмиком":
|
||||
* - сначала наполняем таблицу циклическими CRUD-манипуляциями,
|
||||
* которые в каждом цикле делают несколько операций, включая удаление,
|
||||
* но в результате добавляют записи.
|
||||
* - затем очищаем таблицу также CRUD-манипуляциями, но уже с другой
|
||||
* пропорцией удалений.
|
||||
*
|
||||
* При этом очень многое зависит от порядка перебора ключей:
|
||||
* - (псевдо)случайное распределение требуется лишь для полноты картины,
|
||||
* но в целом не покрывает важных кейсов.
|
||||
* - кроме (псевдо)случайного перебора требуется последовательное
|
||||
* итерирование ключей интервалами различной ширины, с тем чтобы
|
||||
* проверить различные варианты как разделения, так и слияния страниц
|
||||
* внутри движка.
|
||||
* - при не-уникальных ключах (MDBX_DUPSORT с подвариантами), для каждого
|
||||
* повтора внутри движка формируется вложенное btree-дерево,
|
||||
* соответственно требуется соблюдение аналогичных принципов
|
||||
* итерирования для значений.
|
||||
*/
|
||||
|
||||
/* TODO: работа в несколько потоков */
|
||||
keyvalue_maker.setup(config.params, config.actor_id, 0 /* thread_number */);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user