summaryrefslogtreecommitdiff
path: root/libs/libmdbx/src/test/try.cc
blob: 1deae71d3197fd4b8c0b48c7ce8b0e0fb5edacc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#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();
}