summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorDmitrii Akshintsev <dmitrii.akshintsev@qt.io>2024-04-16 17:13:19 +0200
committerDmitrii Akshintsev <dmitrii.akshintsev@qt.io>2024-04-17 11:00:26 +0000
commit2c966b97be56557007f198ee906844f78ef2944a (patch)
treeeea165af46ae9c483738a9129bc61f8e16cb394b /tests/auto
parent9c8577c12643bf222dc37a5ba2dc1d08dc168f8e (diff)
QScxmlStateMachine add runtime warning
As suggested by Ulf, in addition to correcting the documentation runtime warning will be helpful. This commit adds the warning and a test for that Change-Id: I6dbd727e493431d7d71efbc5b527df8d67d50dcd Fixes: QTBUG-109371 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/statemachine/tst_statemachine.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/auto/statemachine/tst_statemachine.cpp b/tests/auto/statemachine/tst_statemachine.cpp
index 85d06c8..1aa74f7 100644
--- a/tests/auto/statemachine/tst_statemachine.cpp
+++ b/tests/auto/statemachine/tst_statemachine.cpp
@@ -31,6 +31,7 @@ private Q_SLOTS:
void doneDotStateEvent();
void running();
+ void restart();
void invokeStateMachine();
@@ -392,6 +393,24 @@ void tst_StateMachine::running()
QCOMPARE(stateMachine->isRunning(), false);
}
+void tst_StateMachine::restart()
+{
+ QScopedPointer<QScxmlStateMachine> stateMachine(
+ QScxmlStateMachine::fromFile(QString(":/tst_statemachine/stateDotDoneEvent.scxml")));
+ QVERIFY(!stateMachine.isNull());
+
+ QSignalSpy finishedSpy(stateMachine.data(), SIGNAL(finished()));
+
+ stateMachine->start();
+ finishedSpy.wait(5000);
+ QCOMPARE(finishedSpy.size(), 1);
+ QCOMPARE(stateMachine->activeStateNames(true).size(), 1);
+ QVERIFY(stateMachine->activeStateNames(true).contains(QLatin1String("success")));
+
+ QTest::ignoreMessage(QtWarningMsg, QRegularExpression("(.*)Can't start finished machine"));
+ stateMachine->start();
+}
+
void tst_StateMachine::invokeStateMachine()
{
QScopedPointer<QScxmlStateMachine> stateMachine(