File indexing completed on 2024-05-19 15:06:23
0001 /* 0002 SPDX-FileCopyrightText: 2015 Vishesh Handa <vhanda@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #ifndef BALOO_SINGLEDBTEST_H 0008 #define BALOO_SINGLEDBTEST_H 0009 0010 #include <QObject> 0011 #include <QTemporaryDir> 0012 #include <QTest> 0013 0014 #include <lmdb.h> 0015 #include <memory> 0016 0017 class SingleDBTest : public QObject 0018 { 0019 Q_OBJECT 0020 private Q_SLOTS: 0021 void init() 0022 { 0023 m_tempDir = std::make_unique<QTemporaryDir>(); 0024 0025 mdb_env_create(&m_env); 0026 mdb_env_set_maxdbs(m_env, 1); 0027 0028 // The directory needs to be created before opening the environment 0029 QByteArray path = QFile::encodeName(m_tempDir->path()); 0030 mdb_env_open(m_env, path.constData(), 0, 0664); 0031 mdb_txn_begin(m_env, nullptr, 0, &m_txn); 0032 } 0033 0034 void cleanup() 0035 { 0036 mdb_txn_abort(m_txn); 0037 m_txn = nullptr; 0038 mdb_env_close(m_env); 0039 m_env = nullptr; 0040 m_tempDir.reset(); 0041 } 0042 0043 protected: 0044 MDB_env* m_env = nullptr; 0045 MDB_txn* m_txn = nullptr; 0046 std::unique_ptr<QTemporaryDir> m_tempDir; 0047 }; 0048 0049 #endif // SINGLEDBTEST_H