test-db.cpp 977 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. // SPDX-FileCopyrightText: 2019-2025 Ivan Baidakou
  3. #include "test-db.h"
  4. #include "test-utils.h"
  5. namespace syncspirit::test {
  6. env_t::~env_t() {
  7. if (env) {
  8. mdbx_env_close(env);
  9. }
  10. // std::cout << path.c_str() << "\n";
  11. bfs::remove_all(path);
  12. }
  13. env_t mk_env() {
  14. auto path = unique_path();
  15. MDBX_env *env;
  16. auto r = mdbx_env_create(&env);
  17. assert(r == MDBX_SUCCESS);
  18. (void)r;
  19. MDBX_env_flags_t flags =
  20. MDBX_EXCLUSIVE | MDBX_SAFE_NOSYNC | MDBX_WRITEMAP | MDBX_NOSTICKYTHREADS | MDBX_LIFORECLAIM;
  21. r = mdbx_env_open(env, path.string().c_str(), flags, 0664);
  22. assert(r == MDBX_SUCCESS);
  23. // std::cout << path.c_str() << "\n";
  24. return env_t{env, std::move(path)};
  25. }
  26. db::transaction_t mk_txn(env_t &env, db::transaction_type_t type) {
  27. auto r = db::make_transaction(type, env.env);
  28. assert((bool)r);
  29. return std::move(r.value());
  30. }
  31. } // namespace syncspirit::test