diff -r b72c6db6890b -r 5dc02b23752f tests/auto/headers/tst_headers.cpp --- a/tests/auto/headers/tst_headers.cpp Wed Jun 23 19:07:03 2010 +0300 +++ b/tests/auto/headers/tst_headers.cpp Tue Jul 06 15:10:48 2010 +0300 @@ -64,7 +64,9 @@ const QStringList dirFilters, const QRegExp &exclude); static QStringList getHeaders(const QString &path); - static QStringList getSourceFiles(const QString &path); + static QStringList getQmlFiles(const QString &path); + static QStringList getCppFiles(const QString &path); + static QStringList getQDocFiles(const QString &path); void allSourceFilesData(); void allHeadersData(); @@ -106,11 +108,21 @@ return getFiles(path, QStringList("*.h"), QRegExp("^(?!ui_)")); } -QStringList tst_Headers::getSourceFiles(const QString &path) +QStringList tst_Headers::getCppFiles(const QString &path) { return getFiles(path, QStringList("*.cpp"), QRegExp("^(?!(moc_|qrc_))")); } +QStringList tst_Headers::getQmlFiles(const QString &path) +{ + return getFiles(path, QStringList("*.qml"), QRegExp(".")); +} + +QStringList tst_Headers::getQDocFiles(const QString &path) +{ + return getFiles(path, QStringList("*.qdoc"), QRegExp(".")); +} + void tst_Headers::initTestCase() { qtSrcDir = QString::fromLocal8Bit(qgetenv("QTSRCDIR").isEmpty() @@ -147,8 +159,11 @@ }; for (int i = 0; i < sizeof(subdirs) / sizeof(subdirs[0]); ++i) { - sourceFiles << getSourceFiles(qtSrcDir + subdirs[i]); + sourceFiles << getCppFiles(qtSrcDir + subdirs[i]); + if (subdirs[i] != QLatin1String("/tests")) + sourceFiles << getQmlFiles(qtSrcDir + subdirs[i]); sourceFiles << getHeaders(qtSrcDir + subdirs[i]); + sourceFiles << getQDocFiles(qtSrcDir + subdirs[i]); } foreach (QString sourceFile, sourceFiles) { @@ -192,22 +207,28 @@ QByteArray data = f.readAll(); data.replace("\r\n", "\n"); // Windows data.replace('\r', '\n'); // Mac OS9 - QStringList content = QString::fromLocal8Bit(data).split("\n"); + QStringList content = QString::fromLocal8Bit(data).split("\n", QString::SkipEmptyParts); + + if (content.count() <= 2) // likely a #include line and empty line only. Not a copyright issue. + return; if (content.first().contains("generated")) { content.takeFirst(); - if (content.first().isEmpty()) - content.takeFirst(); } if (sourceFile.endsWith("/tests/auto/linguist/lupdate/testdata/good/merge_ordering/foo.cpp") || sourceFile.endsWith("/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp")) { // These files are meant to start with empty lines. - while (content.first().isEmpty() || content.first().startsWith("//")) + while (content.first().startsWith("//")) content.takeFirst(); } + if (sourceFile.endsWith("/doc/src/classes/phonon-api.qdoc")) { + // This is an external file + return; + } + QVERIFY(licensePattern.exactMatch(content.value(8)) || licensePattern.exactMatch(content.value(5))); QString licenseType = licensePattern.cap(1); @@ -258,6 +279,7 @@ if (header.endsWith("_p.h") || header.endsWith("_pch.h") || header.contains("global/qconfig-") || header.endsWith("/qconfig.h") || header.contains("/src/tools/") || header.contains("/src/plugins/") + || header.contains("/src/imports/") || header.endsWith("/qiconset.h") || header.endsWith("/qfeatures.h") || header.endsWith("qt_windows.h")) return;