diff options
Diffstat (limited to 'src/testlib/qtesttable.cpp')
-rw-r--r-- | src/testlib/qtesttable.cpp | 13 |
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; }; |