test-db.cpp 803 B

123456789101112131415161718192021222324252627282930313233
  1. #include "test-db.h"
  2. namespace syncspirit::test {
  3. env_t::~env_t () {
  4. if (env) {
  5. mdbx_env_close(env);
  6. }
  7. // std::cout << path.c_str() << "\n";
  8. bfs::remove_all(path);
  9. }
  10. env_t mk_env() {
  11. auto path = bfs::unique_path();
  12. MDBX_env *env;
  13. auto r = mdbx_env_create(&env);
  14. assert(r == MDBX_SUCCESS);
  15. MDBX_env_flags_t flags =
  16. MDBX_EXCLUSIVE | MDBX_SAFE_NOSYNC | MDBX_WRITEMAP | MDBX_COALESCE | MDBX_LIFORECLAIM;
  17. r = mdbx_env_open(env, path.c_str(), flags, 0664);
  18. assert(r == MDBX_SUCCESS);
  19. // std::cout << path.c_str() << "\n";
  20. return env_t{env, std::move(path)};
  21. }
  22. db::transaction_t mk_txn(env_t &env, db::transaction_type_t type) {
  23. auto r = db::make_transaction(type, env.env);
  24. assert((bool)r);
  25. return std::move(r.value());
  26. }
  27. }