tests/auto/maketestselftest/tst_maketestselftest.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 30 5dc02b23752f
equal deleted inserted replaced
18:2f34d5167611 19:fcece45ef507
    48 class tst_MakeTestSelfTest: public QObject
    48 class tst_MakeTestSelfTest: public QObject
    49 {
    49 {
    50     Q_OBJECT
    50     Q_OBJECT
    51 
    51 
    52 private slots:
    52 private slots:
    53     void auto_dot_pro();
    53     void tests_pro_files();
    54     void auto_dot_pro_data();
    54     void tests_pro_files_data();
    55 };
    55 };
    56 
    56 
    57 /* Verify that all tests are listed somewhere in auto.pro */
    57 /* Verify that all tests are listed somewhere in one of the autotest .pro files */
    58 void tst_MakeTestSelfTest::auto_dot_pro()
    58 void tst_MakeTestSelfTest::tests_pro_files()
    59 {
    59 {
    60     static QStringList lines;
    60     static QStringList lines;
    61 
    61 
    62     if (lines.isEmpty()) {
    62     if (lines.isEmpty()) {
    63         QString filename = QString::fromLatin1(SRCDIR "/../auto.pro");
    63         QDir dir(SRCDIR "/..");
    64         QFile file(filename);
    64         QStringList proFiles = dir.entryList(QStringList() << "*.pro");
    65         if (!file.open(QIODevice::ReadOnly)) {
    65         foreach (QString const& proFile, proFiles) {
    66             QFAIL(qPrintable(QString("open %1: %2").arg(filename).arg(file.errorString())));
    66             QString filename = QString("%1/../%2").arg(SRCDIR).arg(proFile);
    67         }
    67             QFile file(filename);
    68         while (!file.atEnd()) {
    68             if (!file.open(QIODevice::ReadOnly)) {
    69             lines << file.readLine().trimmed();
    69                 QFAIL(qPrintable(QString("open %1: %2").arg(filename).arg(file.errorString())));
       
    70             }
       
    71             while (!file.atEnd()) {
       
    72                 lines << file.readLine().trimmed();
       
    73             }
    70         }
    74         }
    71     }
    75     }
    72 
    76 
    73     QFETCH(QString, subdir);
    77     QFETCH(QString, subdir);
    74     QRegExp re(QString("( |=|^|#)%1( |\\\\|$)").arg(QRegExp::escape(subdir)));
    78     QRegExp re(QString("( |=|^|#)%1( |\\\\|$)").arg(QRegExp::escape(subdir)));
    77             return;
    81             return;
    78         }
    82         }
    79     }
    83     }
    80 
    84 
    81     QFAIL(qPrintable(QString(
    85     QFAIL(qPrintable(QString(
    82         "Subdir `%1' is missing from tests/auto/auto.pro\n"
    86         "Subdir `%1' is missing from tests/auto/*.pro\n"
    83         "This means the test won't be compiled or run on any platform.\n"
    87         "This means the test won't be compiled or run on any platform.\n"
    84         "If this is intentional, please put the test name in a comment in auto.pro.").arg(subdir))
    88         "If this is intentional, please put the test name in a comment in one of the .pro files.").arg(subdir))
    85     );
    89     );
       
    90 
    86 }
    91 }
    87 
    92 
    88 void tst_MakeTestSelfTest::auto_dot_pro_data()
    93 void tst_MakeTestSelfTest::tests_pro_files_data()
    89 {
    94 {
    90     QTest::addColumn<QString>("subdir");
    95     QTest::addColumn<QString>("subdir");
    91     QDir dir(SRCDIR "/..");
    96     QDir dir(SRCDIR "/..");
    92     QStringList subdirs = dir.entryList(QDir::AllDirs|QDir::NoDotAndDotDot);
    97     QStringList subdirs = dir.entryList(QDir::AllDirs|QDir::NoDotAndDotDot);
    93 
    98