summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtesttable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/testlib/qtesttable.cpp')
-rw-r--r--src/testlib/qtesttable.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/testlib/qtesttable.cpp b/src/testlib/qtesttable.cpp
index 934d1797c7..2276365505 100644
--- a/src/testlib/qtesttable.cpp
+++ b/src/testlib/qtesttable.cpp
@@ -5,6 +5,7 @@
#include <QtTest/qtestdata.h>
#include <QtTest/qtestassert.h>
+#include <QtCore/private/qduplicatetracker_p.h>
#include <QtCore/qmetaobject.h>
#include <string.h>
@@ -35,6 +36,9 @@ public:
using DataList = std::vector<QTestData *>;
DataList dataList;
+ using TagSet = QDuplicateTracker<std::string>;
+ TagSet tagSet;
+
void addColumn(int elemType, const char *elemName) { elementList.push_back(Element(elemName, elemType)); }
void addRow(QTestData *data) { dataList.push_back(data); }
@@ -49,6 +53,8 @@ void QTestTable::addColumn(int type, const char *name)
{
QTEST_ASSERT(type);
QTEST_ASSERT(name);
+ if (indexOf(name) != -1)
+ qWarning() << "Duplicate data column" << name << "- please rename.";
d->addColumn(type, name);
}
@@ -70,6 +76,10 @@ bool QTestTable::isEmpty() const
QTestData *QTestTable::newData(const char *tag)
{
+ QTEST_ASSERT(tag);
+ if (d->tagSet.hasSeen(tag))
+ qWarning("Duplicate data tag \"%s\" - please rename.", tag);
+
QTestData *dt = new QTestData(tag, this);
d->addRow(dt);
return dt;
@@ -110,6 +120,9 @@ public:
bool operator()(const QTestTablePrivate::Element &e) const
{ return !strcmp(e.name, m_needle); }
+ bool operator()(const QTestData *e) const
+ { return !strcmp(e->dataTag(), m_needle); }
+
private:
const char *m_needle;
};