summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/auto/qtcprocess/tst_qtcprocess.cpp8
-rw-r--r--tests/auto/utils/stringutils/tst_stringutils.cpp8
2 files changed, 14 insertions, 2 deletions
diff --git a/tests/auto/qtcprocess/tst_qtcprocess.cpp b/tests/auto/qtcprocess/tst_qtcprocess.cpp
index e789203fbc..b4df669441 100644
--- a/tests/auto/qtcprocess/tst_qtcprocess.cpp
+++ b/tests/auto/qtcprocess/tst_qtcprocess.cpp
@@ -34,8 +34,14 @@ using namespace Utils;
class MacroMapExpander : public AbstractMacroExpander {
public:
- virtual bool resolveMacro(const QString &name, QString *ret)
+ virtual bool resolveMacro(const QString &name, QString *ret, QSet<AbstractMacroExpander*> &seen)
{
+ // loop prevention
+ const int count = seen.count();
+ seen.insert(this);
+ if (seen.count() == count)
+ return false;
+
QHash<QString, QString>::const_iterator it = m_map.constFind(name);
if (it != m_map.constEnd()) {
*ret = it.value();
diff --git a/tests/auto/utils/stringutils/tst_stringutils.cpp b/tests/auto/utils/stringutils/tst_stringutils.cpp
index ae137b13e1..d9d47e1845 100644
--- a/tests/auto/utils/stringutils/tst_stringutils.cpp
+++ b/tests/auto/utils/stringutils/tst_stringutils.cpp
@@ -32,8 +32,14 @@
class TestMacroExpander : public Utils::AbstractMacroExpander
{
public:
- virtual bool resolveMacro(const QString &name, QString *ret)
+ virtual bool resolveMacro(const QString &name, QString *ret, QSet<AbstractMacroExpander*> &seen)
{
+ // loop prevention
+ const int count = seen.count();
+ seen.insert(this);
+ if (seen.count() == count)
+ return false;
+
if (name == QLatin1String("foo")) {
*ret = QLatin1String("a");
return true;