From 593550b8eea8998c3b6b9e9eb3e04eec82854ae2 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 14 Jan 2018 21:42:04 +0300 Subject: libmdbx added as set of files --- plugins/Dbx_mdbx/src/libmdbx/test/jitter.cc | 69 +++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 plugins/Dbx_mdbx/src/libmdbx/test/jitter.cc (limited to 'plugins/Dbx_mdbx/src/libmdbx/test/jitter.cc') diff --git a/plugins/Dbx_mdbx/src/libmdbx/test/jitter.cc b/plugins/Dbx_mdbx/src/libmdbx/test/jitter.cc new file mode 100644 index 0000000000..92d272e1e5 --- /dev/null +++ b/plugins/Dbx_mdbx/src/libmdbx/test/jitter.cc @@ -0,0 +1,69 @@ +/* + * Copyright 2017 Leonid Yuriev + * and other libmdbx authors: please see AUTHORS file. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in the file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . + */ + +#include "test.h" + +bool testcase_jitter::setup() { + log_trace(">> setup"); + if (!inherited::setup()) + return false; + + log_trace("<< setup"); + return true; +} + +bool testcase_jitter::run() { + while (should_continue()) { + jitter_delay(); + db_open(); + + if (flipcoin()) { + jitter_delay(); + txn_begin(true); + fetch_canary(); + jitter_delay(); + txn_end(flipcoin()); + } + + jitter_delay(); + txn_begin(mode_readonly()); + jitter_delay(); + if (!mode_readonly()) { + fetch_canary(); + update_canary(1); + /* TODO: + * - db_setsize() + * ... + */ + } + txn_end(flipcoin()); + + if (flipcoin()) { + jitter_delay(); + txn_begin(true); + jitter_delay(); + txn_end(flipcoin()); + } + + jitter_delay(); + db_close(); + report(1); + } + return true; +} + +bool testcase_jitter::teardown() { + log_trace(">> teardown"); + return inherited::teardown(); +} -- cgit v1.2.3