forked from qt-creator/qt-creator
TaskTree tests: Add tests triggering runtime asserts
This addresses the 15th point in the master task below. Task-number: QTCREATORBUG-28741 Change-Id: I9d449a6ce1538071f300b68b2929bcd437d1bb0f Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -959,30 +959,30 @@ void GroupItem::addChildren(const QList<GroupItem> &children)
|
|||||||
case Type::GroupData:
|
case Type::GroupData:
|
||||||
if (child.m_groupData.m_groupHandler.m_setupHandler) {
|
if (child.m_groupData.m_groupHandler.m_setupHandler) {
|
||||||
QTC_ASSERT(!m_groupData.m_groupHandler.m_setupHandler,
|
QTC_ASSERT(!m_groupData.m_groupHandler.m_setupHandler,
|
||||||
qWarning("Group Setup Handler redefinition, overriding..."));
|
qWarning("Group setup handler redefinition, overriding..."));
|
||||||
m_groupData.m_groupHandler.m_setupHandler
|
m_groupData.m_groupHandler.m_setupHandler
|
||||||
= child.m_groupData.m_groupHandler.m_setupHandler;
|
= child.m_groupData.m_groupHandler.m_setupHandler;
|
||||||
}
|
}
|
||||||
if (child.m_groupData.m_groupHandler.m_doneHandler) {
|
if (child.m_groupData.m_groupHandler.m_doneHandler) {
|
||||||
QTC_ASSERT(!m_groupData.m_groupHandler.m_doneHandler,
|
QTC_ASSERT(!m_groupData.m_groupHandler.m_doneHandler,
|
||||||
qWarning("Group Done Handler redefinition, overriding..."));
|
qWarning("Group done handler redefinition, overriding..."));
|
||||||
m_groupData.m_groupHandler.m_doneHandler
|
m_groupData.m_groupHandler.m_doneHandler
|
||||||
= child.m_groupData.m_groupHandler.m_doneHandler;
|
= child.m_groupData.m_groupHandler.m_doneHandler;
|
||||||
}
|
}
|
||||||
if (child.m_groupData.m_parallelLimit) {
|
if (child.m_groupData.m_parallelLimit) {
|
||||||
QTC_ASSERT(!m_groupData.m_parallelLimit,
|
QTC_ASSERT(!m_groupData.m_parallelLimit,
|
||||||
qWarning("Group Execution Mode redefinition, overriding..."));
|
qWarning("Group execution mode redefinition, overriding..."));
|
||||||
m_groupData.m_parallelLimit = child.m_groupData.m_parallelLimit;
|
m_groupData.m_parallelLimit = child.m_groupData.m_parallelLimit;
|
||||||
}
|
}
|
||||||
if (child.m_groupData.m_workflowPolicy) {
|
if (child.m_groupData.m_workflowPolicy) {
|
||||||
QTC_ASSERT(!m_groupData.m_workflowPolicy,
|
QTC_ASSERT(!m_groupData.m_workflowPolicy,
|
||||||
qWarning("Group Workflow Policy redefinition, overriding..."));
|
qWarning("Group workflow policy redefinition, overriding..."));
|
||||||
m_groupData.m_workflowPolicy = child.m_groupData.m_workflowPolicy;
|
m_groupData.m_workflowPolicy = child.m_groupData.m_workflowPolicy;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Type::TaskHandler:
|
case Type::TaskHandler:
|
||||||
QTC_ASSERT(child.m_taskHandler.m_createHandler,
|
QTC_ASSERT(child.m_taskHandler.m_createHandler,
|
||||||
qWarning("Task Create Handler can't be null, skipping..."); return);
|
qWarning("Task create handler can't be null, skipping..."); return);
|
||||||
m_children.append(child);
|
m_children.append(child);
|
||||||
break;
|
break;
|
||||||
case Type::Storage:
|
case Type::Storage:
|
||||||
|
@@ -94,6 +94,7 @@ class tst_Tasking : public QObject
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void validConstructs(); // compile test
|
void validConstructs(); // compile test
|
||||||
|
void runtimeCheck(); // checks done on runtime
|
||||||
void testTree_data();
|
void testTree_data();
|
||||||
void testTree();
|
void testTree();
|
||||||
void testInThread_data();
|
void testInThread_data();
|
||||||
@@ -254,6 +255,74 @@ void tst_Tasking::validConstructs()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_Tasking::runtimeCheck()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("^SOFT ASSERT: "));
|
||||||
|
QTest::ignoreMessage(QtWarningMsg,
|
||||||
|
"Can't add the same storage into one Group twice, skipping...");
|
||||||
|
const TreeStorage<int> storage;
|
||||||
|
|
||||||
|
Group {
|
||||||
|
Storage(storage),
|
||||||
|
Storage(storage),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("^SOFT ASSERT: "));
|
||||||
|
QTest::ignoreMessage(QtWarningMsg,
|
||||||
|
"Can't add the same storage into one Group twice, skipping...");
|
||||||
|
const TreeStorage<int> storage1;
|
||||||
|
const auto storage2 = storage1;
|
||||||
|
|
||||||
|
Group {
|
||||||
|
Storage(storage1),
|
||||||
|
Storage(storage2),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("^SOFT ASSERT: "));
|
||||||
|
QTest::ignoreMessage(QtWarningMsg,
|
||||||
|
"Group setup handler redefinition, overriding...");
|
||||||
|
Group {
|
||||||
|
onGroupSetup([] {}),
|
||||||
|
onGroupSetup([] {}),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("^SOFT ASSERT: "));
|
||||||
|
QTest::ignoreMessage(QtWarningMsg,
|
||||||
|
"Group done handler redefinition, overriding...");
|
||||||
|
Group {
|
||||||
|
onGroupDone([] {}),
|
||||||
|
onGroupDone([] {}),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("^SOFT ASSERT: "));
|
||||||
|
QTest::ignoreMessage(QtWarningMsg,
|
||||||
|
"Group execution mode redefinition, overriding...");
|
||||||
|
Group {
|
||||||
|
sequential,
|
||||||
|
sequential,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("^SOFT ASSERT: "));
|
||||||
|
QTest::ignoreMessage(QtWarningMsg,
|
||||||
|
"Group workflow policy redefinition, overriding...");
|
||||||
|
Group {
|
||||||
|
stopOnError,
|
||||||
|
stopOnError,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class TickAndDone : public QObject
|
class TickAndDone : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
Reference in New Issue
Block a user