From 5c508b351a95f416e4a599f76902b888369de1b4 Mon Sep 17 00:00:00 2001 From: Renaud Guezennec Date: Sat, 28 Dec 2024 15:00:29 +0100 Subject: Several fix from fuzzer test. --- src/libparser/node/executionnode.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/libparser/node/executionnode.cpp') diff --git a/src/libparser/node/executionnode.cpp b/src/libparser/node/executionnode.cpp index 096c8fe..b231416 100644 --- a/src/libparser/node/executionnode.cpp +++ b/src/libparser/node/executionnode.cpp @@ -2,6 +2,16 @@ #include +namespace +{ +#ifdef QT_DEBUG +constexpr int WaitingTime{2 * 1000 * 60}; +#else +constexpr int WaitingTime{30 * 60 * 1000}; +#endif + +} // namespace + ExecutionNode::ExecutionNode() : m_previousNode(nullptr) , m_result(nullptr) @@ -43,12 +53,19 @@ ExecutionNode* ExecutionNode::getNextNode() void ExecutionNode::execute(ExecutionNode* previous) { + QElapsedTimer timer; + timer.start(); + auto errorCount= m_errors.count(); run(previous); - if(m_nextNode && errorCount == m_errors.count()) + auto timeLimit= timer.hasExpired(WaitingTime); + + if(m_nextNode && errorCount == m_errors.count() && !timeLimit) m_nextNode->execute(this); + else if(timeLimit) + qDebug() << "Error too long" << WaitingTime << timeLimit << timer.elapsed(); } QMap ExecutionNode::getExecutionErrorMap() -- cgit v1.2.3-70-g09d2