From d2441157aa952787501528f84c761b31e98b72b2 Mon Sep 17 00:00:00 2001 From: EndrII Date: Fri, 19 Nov 2021 18:07:30 +0300 Subject: [PATCH] try fix single server test --- Heart/DataBaseSpace/databasenode.cpp | 8 ++++++-- Heart/DataBaseSpace/databasenode.h | 8 ++++++++ Heart/DataBaseSpace/singleclient.cpp | 7 +++++++ Heart/DataBaseSpace/singleclient.h | 6 ++++++ HeartTests/AbstractSpace/testutils.cpp | 6 ++++-- HeartTests/DataBaseSpace/singleservertest.cpp | 8 ++++---- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/Heart/DataBaseSpace/databasenode.cpp b/Heart/DataBaseSpace/databasenode.cpp index f192b96..2a1f505 100644 --- a/Heart/DataBaseSpace/databasenode.cpp +++ b/Heart/DataBaseSpace/databasenode.cpp @@ -107,7 +107,7 @@ bool DataBaseNode::run(const QString &addres, if (localNodeName.isEmpty()) return false; - _localNodeName = localNodeName; + setLocalNodeName(localNodeName); if (!isSqlInited() && !initSqlDb()) { return false; @@ -450,6 +450,10 @@ bool DataBaseNode::upgradeDataBase() { return true; } +const QString &DataBaseNode::localNodeName() const { + return _localNodeName; +} + void DataBaseNode::setLocalNodeName(const QString &newLocalNodeName) { _localNodeName = newLocalNodeName; } @@ -458,7 +462,7 @@ QVariantMap DataBaseNode::defaultDbParams() const { return { {"DBDriver", "QSQLITE"}, - {"DBFilePath", DEFAULT_DB_PATH + "/" + _localNodeName + "/" + _localNodeName + "_" + DEFAULT_DB_NAME}, + {"DBFilePath", DEFAULT_DB_PATH + "/" + localNodeName() + "/" + localNodeName() + "_" + DEFAULT_DB_NAME}, }; } diff --git a/Heart/DataBaseSpace/databasenode.h b/Heart/DataBaseSpace/databasenode.h index b372706..5cbae19 100644 --- a/Heart/DataBaseSpace/databasenode.h +++ b/Heart/DataBaseSpace/databasenode.h @@ -205,8 +205,16 @@ public: const std::function&)> &changeAction); + protected: + /** + * @brief localNodeName This method return local node name. + * + * @return local node name + */ + const QString &localNodeName() const; + /** * @brief setLocalNodeName This method sets new local name of database file. * @note This method must be invoked before the DataBaseNode::initsqlDb and the DataBaseNode::run methods. diff --git a/Heart/DataBaseSpace/singleclient.cpp b/Heart/DataBaseSpace/singleclient.cpp index e4b7fe1..14c6353 100644 --- a/Heart/DataBaseSpace/singleclient.cpp +++ b/Heart/DataBaseSpace/singleclient.cpp @@ -393,6 +393,13 @@ ErrorCodes::Code SingleClient::getLastError() const { return _lastError; } +ErrorCodes::Code SingleClient::takeLastError() { + auto result = _lastError; + setLastError(ErrorCodes::NoError); + + return result; +} + QString SingleClient::getLastErrorString() const { return ErrorCodes::DBErrorCodesHelper::toString(_lastError); } diff --git a/Heart/DataBaseSpace/singleclient.h b/Heart/DataBaseSpace/singleclient.h index c8895ec..6efbb3d 100644 --- a/Heart/DataBaseSpace/singleclient.h +++ b/Heart/DataBaseSpace/singleclient.h @@ -132,6 +132,12 @@ public: */ ErrorCodes::Code getLastError() const; + /** + * @brief takeLastError This method take last erro code. after call this object sets no error to last error. + * @return LastError code. + */ + ErrorCodes::Code takeLastError(); + /** * @brief getLastErrorString This method return the string implementation of a last code error. * @return string value of the last error. diff --git a/HeartTests/AbstractSpace/testutils.cpp b/HeartTests/AbstractSpace/testutils.cpp index 9946cbb..82c8c0c 100644 --- a/HeartTests/AbstractSpace/testutils.cpp +++ b/HeartTests/AbstractSpace/testutils.cpp @@ -46,11 +46,13 @@ TestUtils::~TestUtils() { bool TestUtils::wait(const std::function &forWait, int msec) const { auto curmsec = QDateTime::currentMSecsSinceEpoch() + msec; - while (curmsec > QDateTime::currentMSecsSinceEpoch() && !forWait()) { + bool waitFor = false; + while (curmsec > QDateTime::currentMSecsSinceEpoch() && !waitFor) { + waitFor = forWait(); QCoreApplication::processEvents(); } QCoreApplication::processEvents(); - return forWait(); + return waitFor; } bool TestUtils::connectFunc( diff --git a/HeartTests/DataBaseSpace/singleservertest.cpp b/HeartTests/DataBaseSpace/singleservertest.cpp index 255b768..07ebd4d 100644 --- a/HeartTests/DataBaseSpace/singleservertest.cpp +++ b/HeartTests/DataBaseSpace/singleservertest.cpp @@ -85,19 +85,19 @@ void SingleServerTest::loginTest() { }; auto checkLoginNonExitsUser = [client](){ - return client->getLastError() == static_cast(QH::ErrorCodes::UserNotExits); + return client->takeLastError() == static_cast(QH::ErrorCodes::UserNotExits); }; auto checksigupExitsUser = [client](){ - return client->getLastError() == static_cast(QH::ErrorCodes::UserExits); + return client->takeLastError() == static_cast(QH::ErrorCodes::UserExits); }; auto checkLoginInvalidPassword = [client](){ - return client->getLastError() == static_cast(QH::ErrorCodes::UserInvalidPasswoed); + return client->takeLastError() == static_cast(QH::ErrorCodes::UserInvalidPasswoed); }; auto checkRemoveNotLoginningClient = [client](){ - return client->getLastError() == static_cast(QH::ErrorCodes::UserNotLogged); + return client->takeLastError() == static_cast(QH::ErrorCodes::UserNotLogged); }; QVERIFY(client && server);