From 0c1400c7f0cf2f545a6cd7347314c1158fbfa36f Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Fri, 5 Dec 2014 09:33:35 +0100 Subject: mv storagetest.cpp to the right location --- store/test/storagetest.cpp | 111 --------------------------------------------- 1 file changed, 111 deletions(-) delete mode 100644 store/test/storagetest.cpp (limited to 'store/test') diff --git a/store/test/storagetest.cpp b/store/test/storagetest.cpp deleted file mode 100644 index 1b105af..0000000 --- a/store/test/storagetest.cpp +++ /dev/null @@ -1,111 +0,0 @@ -#include - -#include - -#include -#include -#include - -#include "store/database.h" - -class StorageTest : public QObject -{ - Q_OBJECT -private: - //This should point to a directory on disk and not a ramdisk (since we're measuring performance) - QString testDataPath; - QString dbName; - const char *keyPrefix = "key"; - - void populate(int count) - { - Database db(testDataPath, dbName); - for (int i = 0; i < count; i++) { - //This should perhaps become an implementation detail of the db? - if (i % 10000 == 0) { - if (i > 0) { - db.commitTransaction(); - } - db.startTransaction(); - } - db.write(keyPrefix + std::to_string(i), keyPrefix + std::to_string(i)); - } - db.commitTransaction(); - } - - bool verify(Database &db, int i) - { - bool error = false; - const auto reference = keyPrefix + std::to_string(i); - db.read(keyPrefix + std::to_string(i), [&error, &reference](const std::string &value) { - if (value != reference) { - qDebug() << "Mismatch while reading"; - error = true; - } - }); - return !error; - } - -private Q_SLOTS: - void initTestCase() - { - testDataPath = "./testdb"; - dbName = "test"; - } - - void cleanupTestCase() - { - Database db(testDataPath, dbName); - db.removeFromDisk(); - } - - - void testRead() - { - const int count = 100; - - populate(count); - - //ensure we can read everything back correctly - { - Database db(testDataPath, dbName); - for (int i = 0; i < count; i++) { - QVERIFY(verify(db, i)); - } - } - - Database db(testDataPath, dbName); - db.removeFromDisk(); - } - - void testConcurrentRead() - { - const int count = 10000; - - populate(count); - - //Try to concurrently read - QList > futures; - const int concurrencyLevel = 4; - for (int num = 0; num < concurrencyLevel; num++) { - futures << QtConcurrent::run([this, count](){ - Database db(testDataPath, dbName); - for (int i = 0; i < count; i++) { - if (!verify(db, i)) { - qWarning() << "invalid value"; - break; - } - } - }); - } - for(auto future : futures) { - future.waitForFinished(); - } - - Database db(testDataPath, dbName); - db.removeFromDisk(); - } -}; - -QTEST_MAIN(StorageTest) -#include "storagetest.moc" -- cgit v1.2.3