aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2021-05-20 23:57:50 +0300
committerHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2021-05-21 00:02:06 +0300
commite2b55cd201031d53b6496688e8b7e628e0c25faf (patch)
treeb084f8a298fc7cc03f1d96ca42f47032bd74fb33
parent710c8ba82953c5fdb7c3c8c9ad6ecf0fd88dface (diff)
parent7eea659fc908e5edfc90c185a6958ed07ecf5cd4 (diff)
Merge bitcoin-core/gui#335: test: Use QSignalSpy instead of QEventLoop
7eea659fc908e5edfc90c185a6958ed07ecf5cd4 qt, test: use qsignalspy instead of qeventloop (Jarol Rodriguez) Pull request description: This PR refactors our GUI `apptests` to use [QSignalSpy](https://doc.qt.io/qt-5/qsignalspy.html) instead of [QEventLoop](https://doc.qt.io/qt-5/qeventloop.html). `QSignalSpy` is more appropriate for our GUI test's as it is purpose-built for testing emission of signals and sets up its own `QEventLoop` when the `wait` function is called. ACKs for top commit: hebasto: ACK 7eea659fc908e5edfc90c185a6958ed07ecf5cd4, tested on Linux Mint 20.1 (Qt 5.12.8). promag: Code review ACK 7eea659fc908e5edfc90c185a6958ed07ecf5cd4. Tree-SHA512: 3adddbcc5efd726302b606980c9923025c44bb8ee16cb8a183e633e423179c0822db66de9ccba20dc5124fff34af4151a379c9cd18130625c60789ce809ee6fd
-rw-r--r--src/qt/test/apptests.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/qt/test/apptests.cpp b/src/qt/test/apptests.cpp
index 8dffd2f59f..36b9024541 100644
--- a/src/qt/test/apptests.cpp
+++ b/src/qt/test/apptests.cpp
@@ -20,9 +20,9 @@
#endif
#include <QAction>
-#include <QEventLoop>
#include <QLineEdit>
#include <QScopedPointer>
+#include <QSignalSpy>
#include <QTest>
#include <QTextEdit>
#include <QtGlobal>
@@ -33,13 +33,14 @@ namespace {
//! Call getblockchaininfo RPC and check first field of JSON output.
void TestRpcCommand(RPCConsole* console)
{
- QEventLoop loop;
QTextEdit* messagesWidget = console->findChild<QTextEdit*>("messagesWidget");
- QObject::connect(messagesWidget, &QTextEdit::textChanged, &loop, &QEventLoop::quit);
QLineEdit* lineEdit = console->findChild<QLineEdit*>("lineEdit");
+ QSignalSpy mw_spy(messagesWidget, &QTextEdit::textChanged);
+ QVERIFY(mw_spy.isValid());
QTest::keyClicks(lineEdit, "getblockchaininfo");
QTest::keyClick(lineEdit, Qt::Key_Return);
- loop.exec();
+ QVERIFY(mw_spy.wait(1000));
+ QCOMPARE(mw_spy.count(), 2);
QString output = messagesWidget->toPlainText();
UniValue value;
value.read(output.right(output.size() - output.lastIndexOf(QChar::ObjectReplacementCharacter) - 1).toStdString());