summaryrefslogtreecommitdiffstats
path: root/tests/dbwriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/dbwriter.cpp')
-rw-r--r--tests/dbwriter.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/dbwriter.cpp b/tests/dbwriter.cpp
new file mode 100644
index 0000000..902a607
--- /dev/null
+++ b/tests/dbwriter.cpp
@@ -0,0 +1,45 @@
1#include <QByteArrayList>
2#include <QDebug>
3#include <storage.h>
4
5int main(int argc, char *argv[])
6{
7
8 QByteArrayList arguments;
9 for (int i = 0; i < argc; i++) {
10 arguments << argv[i];
11 }
12 auto testDataPath = arguments.value(1);
13 auto dbName = arguments.value(2);
14 auto count = arguments.value(3).toInt();
15
16 if (Sink::Storage::DataStore(testDataPath, dbName, Sink::Storage::DataStore::ReadOnly).exists()) {
17 Sink::Storage::DataStore(testDataPath, dbName, Sink::Storage::DataStore::ReadWrite).removeFromDisk();
18 }
19
20 qWarning() << "Creating db: " << testDataPath << dbName << count;
21 Sink::Storage::DataStore store(testDataPath, dbName, Sink::Storage::DataStore::ReadWrite);
22 auto transaction = store.createTransaction(Sink::Storage::DataStore::ReadWrite);
23 for (int i = 0; i < count; i++) {
24 if (!transaction) {
25 qWarning() << "No valid transaction";
26 return -1;
27 }
28 transaction.openDatabase("a", nullptr, false).write(QByteArray::number(i), "a");
29 transaction.openDatabase("b", nullptr, false).write(QByteArray::number(i), "b");
30 transaction.openDatabase("c", nullptr, false).write(QByteArray::number(i), "c");
31 transaction.openDatabase("p", nullptr, false).write(QByteArray::number(i), "c");
32 transaction.openDatabase("q", nullptr, false).write(QByteArray::number(i), "c");
33 if (i > (count/2)) {
34 for (int d = 0; d < 40; d++) {
35 transaction.openDatabase("db" + QByteArray::number(d), nullptr, false).write(QByteArray::number(i), "a");
36 }
37 }
38 if ((i % 1000) == 0) {
39 transaction.commit();
40 transaction = store.createTransaction(Sink::Storage::DataStore::ReadWrite);
41 }
42 }
43 qWarning() << "Creating db done.";
44 return 0;
45}