mirror of
https://github.com/isar/libmdbx.git
synced 2025-12-18 17:52:22 +08:00
Add test case for txn try
This commit is contained in:
38
test/try.cc
Normal file
38
test/try.cc
Normal file
@@ -0,0 +1,38 @@
|
||||
#include "test.h"
|
||||
|
||||
bool testcase_try::setup() {
|
||||
log_trace(">> setup");
|
||||
if (!inherited::setup())
|
||||
return false;
|
||||
|
||||
log_trace("<< setup");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool testcase_try::run() {
|
||||
db_open();
|
||||
assert(!txn_guard);
|
||||
|
||||
MDBX_txn *txn = nullptr;
|
||||
MDBX_txn *txn2 = nullptr;
|
||||
int rc =
|
||||
mdbx_txn_begin(db_guard.get(), nullptr, 0, &txn);
|
||||
if (unlikely(rc != MDBX_SUCCESS))
|
||||
failure_perror("mdbx_txn_begin(MDBX_TRYTXN)", rc);
|
||||
else {
|
||||
rc = mdbx_txn_begin(db_guard.get(), nullptr, MDBX_TRYTXN, &txn2);
|
||||
if (unlikely(rc != MDBX_BUSY))
|
||||
failure_perror("mdbx_txn_begin(MDBX_TRYTXN)", rc);
|
||||
}
|
||||
|
||||
txn_guard.reset(txn);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool testcase_try::teardown() {
|
||||
log_trace(">> teardown");
|
||||
cursor_guard.release();
|
||||
txn_guard.release();
|
||||
db_guard.release();
|
||||
return inherited::teardown();
|
||||
}
|
||||
Reference in New Issue
Block a user