summaryrefslogtreecommitdiffstats
path: root/tests/auto/selftests
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2009-03-23 09:18:55 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2009-03-23 09:18:55 (GMT)
commite5fcad302d86d316390c6b0f62759a067313e8a9 (patch)
treec2afbf6f1066b6ce261f14341cf6d310e5595bc1 /tests/auto/selftests
downloadQt-e5fcad302d86d316390c6b0f62759a067313e8a9.zip
Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.gz
Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.bz2
Long live Qt 4.5!
Diffstat (limited to 'tests/auto/selftests')
-rw-r--r--tests/auto/selftests/.gitignore26
-rw-r--r--tests/auto/selftests/README5
-rw-r--r--tests/auto/selftests/alive/.gitignore1
-rw-r--r--tests/auto/selftests/alive/alive.pro7
-rw-r--r--tests/auto/selftests/alive/qtestalive.cpp159
-rw-r--r--tests/auto/selftests/alive/tst_alive.cpp174
-rw-r--r--tests/auto/selftests/assert/assert.pro10
-rw-r--r--tests/auto/selftests/assert/tst_assert.cpp71
-rw-r--r--tests/auto/selftests/benchlibcallgrind/benchlibcallgrind.pro8
-rw-r--r--tests/auto/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp97
-rw-r--r--tests/auto/selftests/benchlibeventcounter/benchlibeventcounter.pro8
-rw-r--r--tests/auto/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp111
-rw-r--r--tests/auto/selftests/benchliboptions/benchliboptions.pro8
-rw-r--r--tests/auto/selftests/benchliboptions/tst_benchliboptions.cpp130
-rw-r--r--tests/auto/selftests/benchlibtickcounter/benchlibtickcounter.pro8
-rw-r--r--tests/auto/selftests/benchlibtickcounter/tst_benchlibtickcounter.cpp80
-rw-r--r--tests/auto/selftests/benchlibwalltime/benchlibwalltime.pro8
-rw-r--r--tests/auto/selftests/benchlibwalltime/tst_benchlibwalltime.cpp71
-rw-r--r--tests/auto/selftests/cmptest/cmptest.pro8
-rw-r--r--tests/auto/selftests/cmptest/tst_cmptest.cpp81
-rw-r--r--tests/auto/selftests/commandlinedata/commandlinedata.pro8
-rw-r--r--tests/auto/selftests/commandlinedata/tst_commandlinedata.cpp81
-rw-r--r--tests/auto/selftests/crashes/crashes.pro9
-rw-r--r--tests/auto/selftests/crashes/tst_crashes.cpp70
-rw-r--r--tests/auto/selftests/datatable/datatable.pro8
-rw-r--r--tests/auto/selftests/datatable/tst_datatable.cpp189
-rw-r--r--tests/auto/selftests/datetime/datetime.pro8
-rw-r--r--tests/auto/selftests/datetime/tst_datetime.cpp90
-rw-r--r--tests/auto/selftests/differentexec/differentexec.pro8
-rw-r--r--tests/auto/selftests/differentexec/tst_differentexec.cpp92
-rw-r--r--tests/auto/selftests/exception/exception.pro8
-rw-r--r--tests/auto/selftests/exception/tst_exception.cpp69
-rw-r--r--tests/auto/selftests/expected_alive.txt33
-rw-r--r--tests/auto/selftests/expected_assert.txt9
-rw-r--r--tests/auto/selftests/expected_benchlibcallgrind.txt9
-rw-r--r--tests/auto/selftests/expected_benchlibeventcounter.txt21
-rw-r--r--tests/auto/selftests/expected_benchliboptions.txt27
-rw-r--r--tests/auto/selftests/expected_benchlibtickcounter.txt9
-rw-r--r--tests/auto/selftests/expected_benchlibwalltime.txt12
-rw-r--r--tests/auto/selftests/expected_cmptest.txt8
-rw-r--r--tests/auto/selftests/expected_commandlinedata.txt24
-rw-r--r--tests/auto/selftests/expected_crashes_1.txt3
-rw-r--r--tests/auto/selftests/expected_crashes_2.txt7
-rw-r--r--tests/auto/selftests/expected_datatable.txt35
-rw-r--r--tests/auto/selftests/expected_datetime.txt18
-rw-r--r--tests/auto/selftests/expected_differentexec.txt21
-rw-r--r--tests/auto/selftests/expected_exception.txt7
-rw-r--r--tests/auto/selftests/expected_expectfail.txt20
-rw-r--r--tests/auto/selftests/expected_failinit.txt7
-rw-r--r--tests/auto/selftests/expected_failinitdata.txt6
-rw-r--r--tests/auto/selftests/expected_fatal.txt6
-rw-r--r--tests/auto/selftests/expected_fetchbogus.txt8
-rw-r--r--tests/auto/selftests/expected_globaldata.txt45
-rw-r--r--tests/auto/selftests/expected_maxwarnings.txt2009
-rw-r--r--tests/auto/selftests/expected_multiexec.txt35
-rw-r--r--tests/auto/selftests/expected_qexecstringlist.txt46
-rw-r--r--tests/auto/selftests/expected_singleskip.txt8
-rw-r--r--tests/auto/selftests/expected_skip.txt14
-rw-r--r--tests/auto/selftests/expected_skipglobal.txt6
-rw-r--r--tests/auto/selftests/expected_skipinit.txt7
-rw-r--r--tests/auto/selftests/expected_skipinitdata.txt6
-rw-r--r--tests/auto/selftests/expected_sleep.txt7
-rw-r--r--tests/auto/selftests/expected_strcmp.txt33
-rw-r--r--tests/auto/selftests/expected_subtest.txt81
-rw-r--r--tests/auto/selftests/expected_waitwithoutgui.txt2
-rw-r--r--tests/auto/selftests/expected_warnings.txt24
-rw-r--r--tests/auto/selftests/expectfail/expectfail.pro8
-rw-r--r--tests/auto/selftests/expectfail/tst_expectfail.cpp85
-rw-r--r--tests/auto/selftests/failinit/failinit.pro8
-rw-r--r--tests/auto/selftests/failinit/tst_failinit.cpp68
-rw-r--r--tests/auto/selftests/failinitdata/failinitdata.pro8
-rw-r--r--tests/auto/selftests/failinitdata/tst_failinitdata.cpp77
-rw-r--r--tests/auto/selftests/fetchbogus/fetchbogus.pro8
-rw-r--r--tests/auto/selftests/fetchbogus/tst_fetchbogus.cpp68
-rw-r--r--tests/auto/selftests/globaldata/globaldata.pro8
-rw-r--r--tests/auto/selftests/globaldata/tst_globaldata.cpp153
-rw-r--r--tests/auto/selftests/maxwarnings/maxwarnings.cpp60
-rw-r--r--tests/auto/selftests/maxwarnings/maxwarnings.pro8
-rw-r--r--tests/auto/selftests/multiexec/multiexec.pro8
-rw-r--r--tests/auto/selftests/multiexec/tst_multiexec.cpp60
-rw-r--r--tests/auto/selftests/qexecstringlist/qexecstringlist.pro8
-rw-r--r--tests/auto/selftests/qexecstringlist/tst_qexecstringlist.cpp96
-rw-r--r--tests/auto/selftests/selftests.pro14
-rw-r--r--tests/auto/selftests/selftests.qrc38
-rw-r--r--tests/auto/selftests/singleskip/singleskip.pro8
-rw-r--r--tests/auto/selftests/singleskip/tst_singleskip.cpp61
-rw-r--r--tests/auto/selftests/skip/skip.pro8
-rw-r--r--tests/auto/selftests/skip/tst_skip.cpp103
-rw-r--r--tests/auto/selftests/skipglobal/skipglobal.pro8
-rw-r--r--tests/auto/selftests/skipglobal/tst_skipglobal.cpp113
-rw-r--r--tests/auto/selftests/skipinit/skipinit.pro8
-rw-r--r--tests/auto/selftests/skipinit/tst_skipinit.cpp68
-rw-r--r--tests/auto/selftests/skipinitdata/skipinitdata.pro8
-rw-r--r--tests/auto/selftests/skipinitdata/tst_skipinitdata.cpp73
-rw-r--r--tests/auto/selftests/sleep/sleep.pro8
-rw-r--r--tests/auto/selftests/sleep/tst_sleep.cpp71
-rw-r--r--tests/auto/selftests/strcmp/strcmp.pro8
-rw-r--r--tests/auto/selftests/strcmp/tst_strcmp.cpp138
-rw-r--r--tests/auto/selftests/subtest/subtest.pro8
-rw-r--r--tests/auto/selftests/subtest/tst_subtest.cpp219
-rw-r--r--tests/auto/selftests/test/test.pro17
-rw-r--r--tests/auto/selftests/tst_selftests.cpp437
-rwxr-xr-xtests/auto/selftests/updateBaselines.sh34
-rw-r--r--tests/auto/selftests/waitwithoutgui/tst_waitwithoutgui.cpp62
-rw-r--r--tests/auto/selftests/waitwithoutgui/waitwithoutgui.pro8
-rw-r--r--tests/auto/selftests/warnings/tst_warnings.cpp96
-rw-r--r--tests/auto/selftests/warnings/warnings.pro8
107 files changed, 6679 insertions, 0 deletions
diff --git a/tests/auto/selftests/.gitignore b/tests/auto/selftests/.gitignore
new file mode 100644
index 0000000..56ba17a
--- /dev/null
+++ b/tests/auto/selftests/.gitignore
@@ -0,0 +1,26 @@
+tst_selftests
+assert/tst_assert
+cmptest/tst_cmptest
+crashes/tst_crashes
+datatable/tst_datatable
+datetime/tst_datetime
+differentexec/tst_differentexec
+exception/tst_exception
+expectfail/tst_expectfail
+failinit/tst_failinit
+failinitdata/tst_failinitdata
+fetchbogus/tst_fetchbogus
+globaldata/tst_globaldata
+maxwarnings/tst_maxwarnings
+multiexec/tst_multiexec
+qexecstringlist/tst_qexecstringlist
+singleskip/tst_singleskip
+skip/tst_skip
+skipglobal/tst_skipglobal
+skipinit/tst_skipinit
+skipinitdata/tst_skipinitdata
+sleep/tst_sleep
+strcmp/tst_strcmp
+subtest/tst_subtest
+waitwithoutgui/tst_waitwithoutgui
+warnings/tst_warnings
diff --git a/tests/auto/selftests/README b/tests/auto/selftests/README
new file mode 100644
index 0000000..6b5976a
--- /dev/null
+++ b/tests/auto/selftests/README
@@ -0,0 +1,5 @@
+
+These are the tests for QTestLib itself.
+
+Adding a new test for QTestlib is a complicated process. See change 282716
+for an example of what changes that has to be done.
diff --git a/tests/auto/selftests/alive/.gitignore b/tests/auto/selftests/alive/.gitignore
new file mode 100644
index 0000000..561285c
--- /dev/null
+++ b/tests/auto/selftests/alive/.gitignore
@@ -0,0 +1 @@
+tst_alive
diff --git a/tests/auto/selftests/alive/alive.pro b/tests/auto/selftests/alive/alive.pro
new file mode 100644
index 0000000..4a6b788
--- /dev/null
+++ b/tests/auto/selftests/alive/alive.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+SOURCES += tst_alive.cpp
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/alive/qtestalive.cpp b/tests/auto/selftests/alive/qtestalive.cpp
new file mode 100644
index 0000000..e2167be
--- /dev/null
+++ b/tests/auto/selftests/alive/qtestalive.cpp
@@ -0,0 +1,159 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <qcoreapplication.h>
+#include <qcoreevent.h>
+#include <qthread.h>
+
+class QTestAliveEvent: public QEvent
+{
+public:
+
+ enum { AliveEventType = QEvent::User + 422 };
+
+ inline QTestAliveEvent(int aSequenceId)
+ : QEvent(QEvent::Type(AliveEventType)), seqId(aSequenceId)
+ {}
+ inline int sequenceId() const { return seqId; }
+
+private:
+ int seqId;
+};
+
+class QTestAlivePinger: public QObject
+{
+public:
+ QTestAlivePinger(QObject *receiver, QObject *parent = 0);
+ bool event(QEvent *e);
+
+protected:
+ void timerEvent(QTimerEvent *event);
+
+private:
+ QObject *rec;
+ int timerId;
+ int currentSequenceId;
+ int lastSequenceId;
+};
+
+QTestAlivePinger::QTestAlivePinger(QObject *receiver, QObject *parent)
+ : QObject(parent), rec(receiver), currentSequenceId(0), lastSequenceId(0)
+{
+ Q_ASSERT(rec);
+ timerId = startTimer(850);
+}
+
+bool QTestAlivePinger::event(QEvent *event)
+{
+ // pong received
+ if (int(event->type()) == QTestAliveEvent::AliveEventType) {
+ QTestAliveEvent *e = static_cast<QTestAliveEvent *>(event);
+ //qDebug("PONG %d received", e->sequenceId());
+ // if the events are not delivered in order, we don't care.
+ if (e->sequenceId() > lastSequenceId)
+ lastSequenceId = e->sequenceId();
+ return true;
+ }
+ return QObject::event(event);
+}
+
+void QTestAlivePinger::timerEvent(QTimerEvent *event)
+{
+ if (event->timerId() != timerId)
+ return;
+
+ if (lastSequenceId < currentSequenceId - 2) {
+ qWarning("TEST LAGS %d PINGS behind!", currentSequenceId - lastSequenceId);
+ }
+ ++currentSequenceId;
+ //qDebug("PING %d", currentSequenceId);
+ QCoreApplication::postEvent(rec, new QTestAliveEvent(currentSequenceId));
+}
+
+class QTestAlive: public QThread
+{
+public:
+ QTestAlive(QObject *parent = 0);
+ ~QTestAlive();
+ void run();
+
+ bool event(QEvent *e);
+
+private:
+ QTestAlivePinger *pinger;
+};
+
+QTestAlive::QTestAlive(QObject *parent)
+ : QThread(parent), pinger(0)
+{
+}
+
+QTestAlive::~QTestAlive()
+{
+ quit();
+ while (isRunning());
+}
+
+bool QTestAlive::event(QEvent *e)
+{
+ if (int(e->type()) == QTestAliveEvent::AliveEventType && pinger) {
+ // ping received, send back the pong
+ //qDebug("PONG %d", static_cast<QTestAliveEvent *>(e)->sequenceId());
+ QCoreApplication::postEvent(pinger,
+ new QTestAliveEvent(static_cast<QTestAliveEvent *>(e)->sequenceId()));
+ return true;
+ }
+ return QThread::event(e);
+}
+
+void QTestAlive::run()
+{
+ Q_ASSERT_X(QCoreApplication::instance(), "QTestAlive::run()",
+ "Cannot start QTestAlive without a QCoreApplication instance.");
+
+ QTestAlivePinger p(this);
+ pinger = &p;
+ exec();
+ pinger = 0;
+}
+
+
diff --git a/tests/auto/selftests/alive/tst_alive.cpp b/tests/auto/selftests/alive/tst_alive.cpp
new file mode 100644
index 0000000..47bfb28
--- /dev/null
+++ b/tests/auto/selftests/alive/tst_alive.cpp
@@ -0,0 +1,174 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+#include <QWidget>
+
+#include "qtestalive.cpp"
+
+class tst_Alive: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void alive();
+ void addMouseDClick() const;
+ void compareQStringLists() const;
+ void compareQStringLists_data() const;
+};
+
+void tst_Alive::alive()
+{
+ QTestAlive a;
+ a.start();
+
+ sleep(5);
+ QCoreApplication::processEvents();
+ qDebug("CUT");
+ sleep(5);
+}
+
+void tst_Alive::addMouseDClick() const
+{
+ class DClickListener : public QWidget
+ {
+ public:
+ DClickListener() : isTested(false)
+ {
+ }
+
+ bool isTested;
+ protected:
+ virtual void mouseDoubleClickEvent(QMouseEvent * event)
+ {
+ isTested = true;
+ QCOMPARE(event->type(), QEvent::MouseButtonDblClick);
+ }
+ };
+
+ DClickListener listener;
+
+ QTestEventList list;
+ list.addMouseDClick(Qt::LeftButton);
+
+ list.simulate(&listener);
+ /* Check that we have been called at all. */
+ QVERIFY(listener.isTested);
+}
+
+void tst_Alive::compareQStringLists() const
+{
+ QFETCH(QStringList, opA);
+ QFETCH(QStringList, opB);
+
+ QCOMPARE(opA, opB);
+}
+
+void tst_Alive::compareQStringLists_data() const
+{
+ QTest::addColumn<QStringList>("opA");
+ QTest::addColumn<QStringList>("opB");
+
+ {
+ QStringList opA;
+ opA.append(QLatin1String("string1"));
+ opA.append(QLatin1String("string2"));
+
+ QStringList opB(opA);
+ opA.append(QLatin1String("string3"));
+ opB.append(QLatin1String("DIFFERS"));
+
+ QTest::newRow("") << opA << opB;
+ }
+
+ {
+ QStringList opA;
+ opA.append(QLatin1String("string1"));
+ opA.append(QLatin1String("string2"));
+
+ QStringList opB(opA);
+ opA.append(QLatin1String("string3"));
+ opA.append(QLatin1String("string4"));
+
+ opB.append(QLatin1String("DIFFERS"));
+ opB.append(QLatin1String("string4"));
+
+ QTest::newRow("") << opA << opB;
+ }
+
+ {
+ QStringList opA;
+ opA.append(QLatin1String("string1"));
+ opA.append(QLatin1String("string2"));
+
+ QStringList opB;
+ opB.append(QLatin1String("string1"));
+
+ QTest::newRow("") << opA << opB;
+ }
+
+ {
+ QStringList opA;
+ opA.append(QLatin1String("openInNewWindow"));
+ opA.append(QLatin1String("openInNewTab"));
+ opA.append(QLatin1String("separator"));
+ opA.append(QLatin1String("bookmark_add"));
+ opA.append(QLatin1String("savelinkas"));
+ opA.append(QLatin1String("copylinklocation"));
+ opA.append(QLatin1String("separator"));
+ opA.append(QLatin1String("openWith_submenu"));
+ opA.append(QLatin1String("preview1"));
+ opA.append(QLatin1String("actions_submenu"));
+ opA.append(QLatin1String("separator"));
+ opA.append(QLatin1String("viewDocumentSource"));
+
+ QStringList opB;
+ opB.append(QLatin1String("viewDocumentSource"));
+
+ QTest::newRow("") << opA << opB;
+
+ QTest::newRow("") << opB << opA;
+ }
+}
+
+QTEST_MAIN(tst_Alive)
+#include "tst_alive.moc"
diff --git a/tests/auto/selftests/assert/assert.pro b/tests/auto/selftests/assert/assert.pro
new file mode 100644
index 0000000..87513d4
--- /dev/null
+++ b/tests/auto/selftests/assert/assert.pro
@@ -0,0 +1,10 @@
+load(qttest_p4)
+
+SOURCES += tst_assert.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+!win32:CONFIG += debug
+
+
diff --git a/tests/auto/selftests/assert/tst_assert.cpp b/tests/auto/selftests/assert/tst_assert.cpp
new file mode 100644
index 0000000..f3dc965
--- /dev/null
+++ b/tests/auto/selftests/assert/tst_assert.cpp
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_Assert: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void testNumber1() const;
+ void testNumber2() const;
+ void testNumber3() const;
+};
+
+void tst_Assert::testNumber1() const
+{
+}
+
+void tst_Assert::testNumber2() const
+{
+ Q_ASSERT(false);
+}
+
+void tst_Assert::testNumber3() const
+{
+}
+
+QTEST_MAIN(tst_Assert)
+
+#include "tst_assert.moc"
diff --git a/tests/auto/selftests/benchlibcallgrind/benchlibcallgrind.pro b/tests/auto/selftests/benchlibcallgrind/benchlibcallgrind.pro
new file mode 100644
index 0000000..34a43d0
--- /dev/null
+++ b/tests/auto/selftests/benchlibcallgrind/benchlibcallgrind.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_benchlibcallgrind.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp b/tests/auto/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp
new file mode 100644
index 0000000..1c01e8d
--- /dev/null
+++ b/tests/auto/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+/* This test must be explicitly enabled since there are no compile tests for valgrind.h */
+#ifdef QT_BUG236484
+#include <valgrind/valgrind.h>
+#endif
+
+class tst_BenchlibCallgrind: public QObject
+{
+ Q_OBJECT
+
+private slots:
+#ifdef QT_BUG236484
+ void failInChildProcess();
+#endif
+
+ void twoHundredMillionInstructions();
+};
+
+#ifdef QT_BUG236484
+void tst_BenchlibCallgrind::failInChildProcess()
+{
+ static double f = 1.0;
+ QBENCHMARK {
+ for (int i = 0; i < 1000000; ++i) {
+ f *= 1.1;
+ if (RUNNING_ON_VALGRIND) QFAIL("Running under valgrind!");
+ }
+ }
+}
+#endif
+
+void tst_BenchlibCallgrind::twoHundredMillionInstructions()
+{
+#if !defined(__GNUC__) || !defined(__i386)
+ QSKIP("This test is only defined for gcc and x86.", SkipAll);
+#else
+ QBENCHMARK {
+ __asm__ __volatile__(
+ "mov $100000000,%%eax \n"
+ "LOOPTOP: \n"
+ "dec %%eax \n"
+ "jnz LOOPTOP \n"
+ : /* no output */
+ : /* no input */
+ : /* clobber */ "eax"
+ );
+ }
+#endif
+}
+
+QTEST_MAIN(tst_BenchlibCallgrind)
+
+#include "tst_benchlibcallgrind.moc"
diff --git a/tests/auto/selftests/benchlibeventcounter/benchlibeventcounter.pro b/tests/auto/selftests/benchlibeventcounter/benchlibeventcounter.pro
new file mode 100644
index 0000000..41e090e
--- /dev/null
+++ b/tests/auto/selftests/benchlibeventcounter/benchlibeventcounter.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_benchlibeventcounter.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp b/tests/auto/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp
new file mode 100644
index 0000000..e9d3f6e
--- /dev/null
+++ b/tests/auto/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+/* Custom event dispatcher to ensure we don't receive any spontaneous events */
+class TestEventDispatcher : public QAbstractEventDispatcher
+{
+ Q_OBJECT
+
+public:
+ TestEventDispatcher(QObject* parent =0)
+ : QAbstractEventDispatcher(parent)
+ {}
+ void flush() {}
+ bool hasPendingEvents() { return false; }
+ void interrupt() {}
+ bool processEvents(QEventLoop::ProcessEventsFlags) { return false; }
+ void registerSocketNotifier(QSocketNotifier*) {}
+ int registerTimer(int,QObject*) { return -1; }
+ void registerTimer(int,int,QObject*) {}
+ QList<TimerInfo> registeredTimers(QObject*) const { return QList<TimerInfo>(); }
+ void unregisterSocketNotifier(QSocketNotifier*) {}
+ bool unregisterTimer(int) { return false; }
+ bool unregisterTimers(QObject*) { return false; }
+ void wakeUp() {}
+};
+
+class tst_BenchlibEventCounter: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void events();
+ void events_data();
+};
+
+void tst_BenchlibEventCounter::events()
+{
+ QFETCH(int, eventCount);
+
+ QAbstractEventDispatcher* ed = QAbstractEventDispatcher::instance();
+ QBENCHMARK {
+ for (int i = 0; i < eventCount; ++i) {
+ ed->filterEvent(0);
+ }
+ }
+}
+
+void tst_BenchlibEventCounter::events_data()
+{
+ QTest::addColumn<int>("eventCount");
+
+ QTest::newRow("0") << 0;
+ QTest::newRow("1") << 1;
+ QTest::newRow("10") << 10;
+ QTest::newRow("100") << 100;
+ QTest::newRow("500") << 500;
+ QTest::newRow("5000") << 5000;
+ QTest::newRow("100000") << 100000;
+}
+
+int main(int argc, char** argv)
+{
+ TestEventDispatcher dispatcher;
+ QCoreApplication app(argc, argv);
+ tst_BenchlibEventCounter test;
+ return QTest::qExec(&test, argc, argv);
+}
+
+#include "tst_benchlibeventcounter.moc"
diff --git a/tests/auto/selftests/benchliboptions/benchliboptions.pro b/tests/auto/selftests/benchliboptions/benchliboptions.pro
new file mode 100644
index 0000000..2f02eef
--- /dev/null
+++ b/tests/auto/selftests/benchliboptions/benchliboptions.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_benchliboptions.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/benchliboptions/tst_benchliboptions.cpp b/tests/auto/selftests/benchliboptions/tst_benchliboptions.cpp
new file mode 100644
index 0000000..e006c38
--- /dev/null
+++ b/tests/auto/selftests/benchliboptions/tst_benchliboptions.cpp
@@ -0,0 +1,130 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+/* Custom event dispatcher to ensure we don't receive any spontaneous events */
+class TestEventDispatcher : public QAbstractEventDispatcher
+{
+ Q_OBJECT
+
+public:
+ TestEventDispatcher(QObject* parent =0)
+ : QAbstractEventDispatcher(parent)
+ {}
+ void flush() {}
+ bool hasPendingEvents() { return false; }
+ void interrupt() {}
+ bool processEvents(QEventLoop::ProcessEventsFlags) { return false; }
+ void registerSocketNotifier(QSocketNotifier*) {}
+ int registerTimer(int,QObject*) { return -1; }
+ void registerTimer(int,int,QObject*) {}
+ QList<TimerInfo> registeredTimers(QObject*) const { return QList<TimerInfo>(); }
+ void unregisterSocketNotifier(QSocketNotifier*) {}
+ bool unregisterTimer(int) { return false; }
+ bool unregisterTimers(QObject*) { return false; }
+ void wakeUp() {}
+};
+
+class tst_BenchlibOptions: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void threeEvents();
+};
+
+class tst_BenchlibFifteenIterations : public tst_BenchlibOptions
+{ Q_OBJECT };
+class tst_BenchlibOneHundredMinimum : public tst_BenchlibOptions
+{ Q_OBJECT };
+
+void tst_BenchlibOptions::threeEvents()
+{
+ QAbstractEventDispatcher* ed = QAbstractEventDispatcher::instance();
+ QBENCHMARK {
+ ed->filterEvent(0);
+ ed->filterEvent(0);
+ ed->filterEvent(0);
+ }
+}
+
+int main(int argc, char** argv)
+{
+ int ret = 0;
+
+ TestEventDispatcher dispatcher;
+ QCoreApplication app(argc, argv);
+
+ /* Run with no special arguments. */
+ {
+ tst_BenchlibOptions test;
+ ret += QTest::qExec(&test, argc, argv);
+ }
+
+ /* Run with an exact number of iterations. */
+ {
+ QVector<char const*> args;
+ for (int i = 0; i < argc; ++i) args << argv[i];
+ args << "-iterations";
+ args << "15";
+ tst_BenchlibFifteenIterations test;
+ ret += QTest::qExec(&test, args.count(), const_cast<char**>(args.data()));
+ }
+
+ /*
+ Run until getting a value of at least 100.
+ */
+ {
+ QVector<char const*> args;
+ for (int i = 0; i < argc; ++i) args << argv[i];
+ args << "-minimumvalue";
+ args << "100";
+ tst_BenchlibOneHundredMinimum test;
+ ret += QTest::qExec(&test, args.count(), const_cast<char**>(args.data()));
+ }
+
+ return ret;
+}
+
+#include "tst_benchliboptions.moc"
diff --git a/tests/auto/selftests/benchlibtickcounter/benchlibtickcounter.pro b/tests/auto/selftests/benchlibtickcounter/benchlibtickcounter.pro
new file mode 100644
index 0000000..3d8cbfa
--- /dev/null
+++ b/tests/auto/selftests/benchlibtickcounter/benchlibtickcounter.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_benchlibtickcounter.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/benchlibtickcounter/tst_benchlibtickcounter.cpp b/tests/auto/selftests/benchlibtickcounter/tst_benchlibtickcounter.cpp
new file mode 100644
index 0000000..6b88cb6
--- /dev/null
+++ b/tests/auto/selftests/benchlibtickcounter/tst_benchlibtickcounter.cpp
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+#include <private/cycle_p.h>
+
+class tst_BenchlibTickCounter: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void threeBillionTicks();
+};
+
+void tst_BenchlibTickCounter::threeBillionTicks()
+{
+#ifndef HAVE_TICK_COUNTER
+ QSKIP("Tick counter not available on this platform", SkipAll);
+#else
+ QBENCHMARK {
+ CycleCounterTicks start = getticks();
+ double el = 0.;
+ double max = el;
+ while (el < 3000000000.) {
+ /* Verify that elapsed time never decreases */
+ QVERIFY2(el >= max, qPrintable(
+ QString("Tick counter is not monotonic\nElapsed moved from %1 to %2")
+ .arg(max).arg(el)
+ ));
+ max = el;
+ el = elapsed(getticks(), start);
+ }
+ }
+#endif
+}
+
+QTEST_MAIN(tst_BenchlibTickCounter)
+
+#include "tst_benchlibtickcounter.moc"
diff --git a/tests/auto/selftests/benchlibwalltime/benchlibwalltime.pro b/tests/auto/selftests/benchlibwalltime/benchlibwalltime.pro
new file mode 100644
index 0000000..364e80b
--- /dev/null
+++ b/tests/auto/selftests/benchlibwalltime/benchlibwalltime.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_benchlibwalltime.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/benchlibwalltime/tst_benchlibwalltime.cpp b/tests/auto/selftests/benchlibwalltime/tst_benchlibwalltime.cpp
new file mode 100644
index 0000000..6ab9637
--- /dev/null
+++ b/tests/auto/selftests/benchlibwalltime/tst_benchlibwalltime.cpp
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_BenchlibWalltime: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void waitForOneThousand();
+ void waitForFourThousand();
+};
+
+void tst_BenchlibWalltime::waitForOneThousand()
+{
+ QBENCHMARK {
+ QTest::qWait(1000);
+ }
+}
+
+void tst_BenchlibWalltime::waitForFourThousand()
+{
+ QBENCHMARK {
+ QTest::qWait(4000);
+ }
+}
+
+QTEST_MAIN(tst_BenchlibWalltime)
+
+#include "tst_benchlibwalltime.moc"
diff --git a/tests/auto/selftests/cmptest/cmptest.pro b/tests/auto/selftests/cmptest/cmptest.pro
new file mode 100644
index 0000000..c19a77a
--- /dev/null
+++ b/tests/auto/selftests/cmptest/cmptest.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_cmptest.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/cmptest/tst_cmptest.cpp b/tests/auto/selftests/cmptest/tst_cmptest.cpp
new file mode 100644
index 0000000..db4d2c0
--- /dev/null
+++ b/tests/auto/selftests/cmptest/tst_cmptest.cpp
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_Cmptest: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void compare_boolfuncs();
+ void compare_pointerfuncs();
+};
+
+static bool boolfunc() { return true; }
+static bool boolfunc2() { return true; }
+
+void tst_Cmptest::compare_boolfuncs()
+{
+ QCOMPARE(boolfunc(), boolfunc());
+ QCOMPARE(boolfunc(), boolfunc2());
+ QCOMPARE(!boolfunc(), !boolfunc2());
+ QCOMPARE(boolfunc(), true);
+ QCOMPARE(!boolfunc(), false);
+}
+
+static int i = 0;
+
+static int *intptr() { return &i; }
+
+void tst_Cmptest::compare_pointerfuncs()
+{
+ QCOMPARE(intptr(), intptr());
+ QCOMPARE(&i, &i);
+ QCOMPARE(intptr(), &i);
+ QCOMPARE(&i, intptr());
+}
+
+QTEST_MAIN(tst_Cmptest)
+
+#include "tst_cmptest.moc"
diff --git a/tests/auto/selftests/commandlinedata/commandlinedata.pro b/tests/auto/selftests/commandlinedata/commandlinedata.pro
new file mode 100644
index 0000000..c900fc8
--- /dev/null
+++ b/tests/auto/selftests/commandlinedata/commandlinedata.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_commandlinedata.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/commandlinedata/tst_commandlinedata.cpp b/tests/auto/selftests/commandlinedata/tst_commandlinedata.cpp
new file mode 100644
index 0000000..e1a8f90
--- /dev/null
+++ b/tests/auto/selftests/commandlinedata/tst_commandlinedata.cpp
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+/*!
+ \internal
+ \since 4.4
+ \brief Tests that reporting of tables are done in a certain way.
+ */
+class tst_DataTable: public QObject
+{
+ Q_OBJECT
+
+private slots:
+
+ void fiveTablePasses() const;
+ void fiveTablePasses_data() const;
+};
+
+void tst_DataTable::fiveTablePasses() const
+{
+ QFETCH(bool, test);
+
+ QVERIFY(test);
+}
+
+void tst_DataTable::fiveTablePasses_data() const
+{
+ QTest::addColumn<bool>("test");
+
+ QTest::newRow("fiveTablePasses_data1") << true;
+ QTest::newRow("fiveTablePasses_data2") << true;
+ QTest::newRow("fiveTablePasses_data3") << true;
+ QTest::newRow("fiveTablePasses_data4") << true;
+ QTest::newRow("fiveTablePasses_data5") << true;
+}
+
+QTEST_MAIN(tst_DataTable)
+
+#include "tst_commandlinedata.moc"
diff --git a/tests/auto/selftests/crashes/crashes.pro b/tests/auto/selftests/crashes/crashes.pro
new file mode 100644
index 0000000..57eb4c7
--- /dev/null
+++ b/tests/auto/selftests/crashes/crashes.pro
@@ -0,0 +1,9 @@
+load(qttest_p4)
+
+SOURCES += tst_crashes.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/crashes/tst_crashes.cpp b/tests/auto/selftests/crashes/tst_crashes.cpp
new file mode 100644
index 0000000..e08e0e8
--- /dev/null
+++ b/tests/auto/selftests/crashes/tst_crashes.cpp
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+#ifdef Q_OS_WIN
+#include <windows.h>
+#endif
+
+class tst_Crashes: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void crash();
+};
+
+void tst_Crashes::crash()
+{
+#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
+ //we avoid the error dialogbox to appear on windows
+ SetErrorMode( SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
+#endif
+ int *i = 0;
+ *i = 1;
+}
+
+QTEST_MAIN(tst_Crashes)
+
+#include "tst_crashes.moc"
diff --git a/tests/auto/selftests/datatable/datatable.pro b/tests/auto/selftests/datatable/datatable.pro
new file mode 100644
index 0000000..69aed7a
--- /dev/null
+++ b/tests/auto/selftests/datatable/datatable.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_datatable.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/datatable/tst_datatable.cpp b/tests/auto/selftests/datatable/tst_datatable.cpp
new file mode 100644
index 0000000..33ab829
--- /dev/null
+++ b/tests/auto/selftests/datatable/tst_datatable.cpp
@@ -0,0 +1,189 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+/*!
+ \internal
+ \since 4.4
+ \brief Tests that reporting of tables are done in a certain way.
+ */
+class tst_DataTable: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void singleTestFunction1() const;
+ void singleTestFunction2() const;
+
+ void fiveTablePasses() const;
+ void fiveTablePasses_data() const;
+ void fiveTableFailures() const;
+ void fiveTableFailures_data() const;
+
+ void startsWithFailure() const;
+ void startsWithFailure_data() const;
+
+ void endsWithFailure() const;
+ void endsWithFailure_data() const;
+
+ void failureInMiddle() const;
+ void failureInMiddle_data() const;
+
+ void fiveIsolatedFailures() const;
+ void fiveIsolatedFailures_data() const;
+};
+
+void tst_DataTable::singleTestFunction1() const
+{
+ /* Do nothing, just pass. */
+}
+
+void tst_DataTable::singleTestFunction2() const
+{
+ /* Do nothing, just pass. */
+}
+
+void tst_DataTable::fiveTableFailures() const
+{
+ QFETCH(bool, test);
+
+ QVERIFY(test);
+}
+
+void tst_DataTable::fiveTableFailures_data() const
+{
+ QTest::addColumn<bool>("test");
+
+ /* Unconditionally fail. */
+ QTest::newRow("fiveTableFailures_data 1") << false;
+ QTest::newRow("fiveTableFailures_data 2") << false;
+ QTest::newRow("fiveTableFailures_data 3") << false;
+ QTest::newRow("fiveTableFailures_data 4") << false;
+ QTest::newRow("fiveTableFailures_data 5") << false;
+}
+
+void tst_DataTable::startsWithFailure() const
+{
+ fiveTableFailures();
+}
+
+void tst_DataTable::fiveTablePasses() const
+{
+ fiveTableFailures();
+}
+
+void tst_DataTable::fiveTablePasses_data() const
+{
+ QTest::addColumn<bool>("test");
+
+ QTest::newRow("fiveTablePasses_data 1") << true;
+ QTest::newRow("fiveTablePasses_data 2") << true;
+ QTest::newRow("fiveTablePasses_data 3") << true;
+ QTest::newRow("fiveTablePasses_data 4") << true;
+ QTest::newRow("fiveTablePasses_data 5") << true;
+}
+
+void tst_DataTable::startsWithFailure_data() const
+{
+ QTest::addColumn<bool>("test");
+
+ QTest::newRow("startsWithFailure_data 1") << false;
+ QTest::newRow("startsWithFailure_data 2") << true;
+ QTest::newRow("startsWithFailure_data 3") << true;
+ QTest::newRow("startsWithFailure_data 4") << true;
+ QTest::newRow("startsWithFailure_data 5") << true;
+}
+
+void tst_DataTable::endsWithFailure() const
+{
+ fiveTableFailures();
+}
+
+void tst_DataTable::endsWithFailure_data() const
+{
+ QTest::addColumn<bool>("test");
+
+ QTest::newRow("endsWithFailure 1") << true;
+ QTest::newRow("endsWithFailure 2") << true;
+ QTest::newRow("endsWithFailure 3") << true;
+ QTest::newRow("endsWithFailure 4") << true;
+ QTest::newRow("endsWithFailure 5") << false;
+}
+
+void tst_DataTable::failureInMiddle() const
+{
+ fiveTableFailures();
+}
+
+void tst_DataTable::failureInMiddle_data() const
+{
+ QTest::addColumn<bool>("test");
+
+ QTest::newRow("failureInMiddle_data 1") << true;
+ QTest::newRow("failureInMiddle_data 2") << true;
+ QTest::newRow("failureInMiddle_data 3") << false;
+ QTest::newRow("failureInMiddle_data 4") << true;
+ QTest::newRow("failureInMiddle_data 5") << true;
+}
+
+void tst_DataTable::fiveIsolatedFailures() const
+{
+ QFETCH(bool, test);
+ QVERIFY(!test);
+}
+
+void tst_DataTable::fiveIsolatedFailures_data() const
+{
+ QTest::addColumn<bool>("test");
+
+ QTest::newRow("fiveIsolatedFailures_data 1") << true;
+ QTest::newRow("fiveIsolatedFailures_data 2") << true;
+ QTest::newRow("fiveIsolatedFailures_data 3") << true;
+ QTest::newRow("fiveIsolatedFailures_data 4") << true;
+ QTest::newRow("fiveIsolatedFailures_data 5") << true;
+}
+
+QTEST_MAIN(tst_DataTable)
+
+#include "tst_datatable.moc"
diff --git a/tests/auto/selftests/datetime/datetime.pro b/tests/auto/selftests/datetime/datetime.pro
new file mode 100644
index 0000000..489e5cb
--- /dev/null
+++ b/tests/auto/selftests/datetime/datetime.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_datetime.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/datetime/tst_datetime.cpp b/tests/auto/selftests/datetime/tst_datetime.cpp
new file mode 100644
index 0000000..0358e5b
--- /dev/null
+++ b/tests/auto/selftests/datetime/tst_datetime.cpp
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+#include <QDateTime>
+
+/*!
+ \internal
+ */
+class tst_DateTime: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void dateTime() const;
+ void qurl() const;
+ void qurl_data() const;
+};
+
+void tst_DateTime::dateTime() const
+{
+ const QDateTime utc(QDate(2000, 5, 3), QTime(4, 3, 4), Qt::UTC);
+ const QDateTime local(QDate(2000, 5, 3), QTime(4, 3, 4), Qt::LocalTime);
+
+ QCOMPARE(local, utc);
+}
+
+void tst_DateTime::qurl() const
+{
+ QFETCH(QUrl, operandA);
+ QFETCH(QUrl, operandB);
+
+ QCOMPARE(operandA, operandB);
+}
+
+void tst_DateTime::qurl_data() const
+{
+ QTest::addColumn<QUrl>("operandA");
+ QTest::addColumn<QUrl>("operandB");
+
+ QTest::newRow("") << QUrl() << QUrl();
+ QTest::newRow("") << QUrl(QLatin1String("http://example.com")) << QUrl();
+ QTest::newRow("") << QUrl() << QUrl(QLatin1String("http://example.com"));
+ QTest::newRow("") << QUrl(QLatin1String("http://example.com")) << QUrl(QLatin1String("http://example.com"));
+}
+
+QTEST_MAIN(tst_DateTime)
+
+#include "tst_datetime.moc"
diff --git a/tests/auto/selftests/differentexec/differentexec.pro b/tests/auto/selftests/differentexec/differentexec.pro
new file mode 100644
index 0000000..e789649
--- /dev/null
+++ b/tests/auto/selftests/differentexec/differentexec.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_differentexec.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/differentexec/tst_differentexec.cpp b/tests/auto/selftests/differentexec/tst_differentexec.cpp
new file mode 100644
index 0000000..c50046a
--- /dev/null
+++ b/tests/auto/selftests/differentexec/tst_differentexec.cpp
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+
+class tst_TestA : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void slotName() const
+ {
+ QVERIFY(true);
+ }
+
+ void aDifferentSlot() const
+ {
+ QVERIFY(false);
+ }
+};
+
+class tst_TestB : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void slotName() const
+ {
+ QVERIFY(true);
+ }
+
+ void aSecondDifferentSlot() const
+ {
+ QVERIFY(false);
+ }
+};
+
+int main()
+{
+ char *argv[] = {"appName", "slotName"};
+ int argc = 2;
+
+ tst_TestA testA;
+ QTest::qExec(&testA, argc, argv);
+ QTest::qExec(&testA, argc, argv);
+
+ tst_TestB testB;
+ QTest::qExec(&testB, argc, argv);
+
+ return 0;
+}
+
+#include "tst_differentexec.moc"
diff --git a/tests/auto/selftests/exception/exception.pro b/tests/auto/selftests/exception/exception.pro
new file mode 100644
index 0000000..14d8c7f
--- /dev/null
+++ b/tests/auto/selftests/exception/exception.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_exception.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/exception/tst_exception.cpp b/tests/auto/selftests/exception/tst_exception.cpp
new file mode 100644
index 0000000..7639935
--- /dev/null
+++ b/tests/auto/selftests/exception/tst_exception.cpp
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+
+class tst_Exception: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void throwException() const;
+};
+
+/*!
+ \internal
+
+ We simply throw an exception to check that we get sane output/reporting.
+ */
+void tst_Exception::throwException() const
+{
+ /* When exceptions are disabled, some compilers, at least linux-g++, treat
+ * exception clauses as hard errors. */
+#ifndef QT_NO_EXCEPTIONS
+ throw 3;
+#endif
+}
+
+QTEST_MAIN(tst_Exception)
+
+#include "tst_exception.moc"
diff --git a/tests/auto/selftests/expected_alive.txt b/tests/auto/selftests/expected_alive.txt
new file mode 100644
index 0000000..e1768ec
--- /dev/null
+++ b/tests/auto/selftests/expected_alive.txt
@@ -0,0 +1,33 @@
+********* Start testing of tst_Alive *********
+Config: Using QTest library 4.5.0, Qt 4.5.0
+PASS : tst_Alive::initTestCase()
+QWARN : tst_Alive::alive() TEST LAGS 3 PINGS behind!
+QWARN : tst_Alive::alive() TEST LAGS 4 PINGS behind!
+QDEBUG : tst_Alive::alive() CUT
+QWARN : tst_Alive::alive() TEST LAGS 3 PINGS behind!
+QWARN : tst_Alive::alive() TEST LAGS 4 PINGS behind!
+PASS : tst_Alive::alive()
+PASS : tst_Alive::addMouseDClick()
+FAIL! : tst_Alive::compareQStringLists() Compared QStringLists differ at index 2.
+ Actual (opA) : 'string3'
+ Expected (opB) : 'DIFFERS'
+ Loc: [/home/fenglich/dev/qt-45/tests/auto/selftests/alive/tst_alive.cpp(68)]
+FAIL! : tst_Alive::compareQStringLists() Compared QStringLists differ at index 2.
+ Actual (opA) : 'string3'
+ Expected (opB) : 'DIFFERS'
+ Loc: [/home/fenglich/dev/qt-45/tests/auto/selftests/alive/tst_alive.cpp(68)]
+FAIL! : tst_Alive::compareQStringLists() Compared QStringLists have different sizes.
+ Actual (opA) size : '2'
+ Expected (opB) size: '1'
+ Loc: [/home/fenglich/dev/qt-45/tests/auto/selftests/alive/tst_alive.cpp(68)]
+FAIL! : tst_Alive::compareQStringLists() Compared QStringLists have different sizes.
+ Actual (opA) size : '12'
+ Expected (opB) size: '1'
+ Loc: [/home/fenglich/dev/qt-45/tests/auto/selftests/alive/tst_alive.cpp(68)]
+FAIL! : tst_Alive::compareQStringLists() Compared QStringLists have different sizes.
+ Actual (opA) size : '1'
+ Expected (opB) size: '12'
+ Loc: [/home/fenglich/dev/qt-45/tests/auto/selftests/alive/tst_alive.cpp(68)]
+PASS : tst_Alive::cleanupTestCase()
+Totals: 4 passed, 5 failed, 0 skipped
+********* Finished testing of tst_Alive *********
diff --git a/tests/auto/selftests/expected_assert.txt b/tests/auto/selftests/expected_assert.txt
new file mode 100644
index 0000000..0203f2b
--- /dev/null
+++ b/tests/auto/selftests/expected_assert.txt
@@ -0,0 +1,9 @@
+********* Start testing of tst_Assert *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_Assert::initTestCase()
+PASS : tst_Assert::testNumber1()
+QFATAL : tst_Assert::testNumber2() ASSERT: "false" in file /home/fenglich/dev/qt-4.3/tests/auto/selftests/assert/tst_assert.cpp, line 29
+FAIL! : tst_Assert::testNumber2() Received a fatal error.
+ Loc: [Unknown file(0)]
+Totals: 2 passed, 1 failed, 0 skipped
+********* Finished testing of tst_Assert *********
diff --git a/tests/auto/selftests/expected_benchlibcallgrind.txt b/tests/auto/selftests/expected_benchlibcallgrind.txt
new file mode 100644
index 0000000..caf2424
--- /dev/null
+++ b/tests/auto/selftests/expected_benchlibcallgrind.txt
@@ -0,0 +1,9 @@
+********* Start testing of tst_BenchlibCallgrind *********
+Config: Using QTest library 4.5.0, Qt 4.5.0
+PASS : tst_BenchlibCallgrind::initTestCase()
+RESULT : tst_BenchlibCallgrind::twoHundredMillionInstructions():
+ 200,000,000 instr. loads per iteration (total: 200000000, iterations: 1)
+PASS : tst_BenchlibCallgrind::twoHundredMillionInstructions()
+PASS : tst_BenchlibCallgrind::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_BenchlibCallgrind *********
diff --git a/tests/auto/selftests/expected_benchlibeventcounter.txt b/tests/auto/selftests/expected_benchlibeventcounter.txt
new file mode 100644
index 0000000..906a4de
--- /dev/null
+++ b/tests/auto/selftests/expected_benchlibeventcounter.txt
@@ -0,0 +1,21 @@
+********* Start testing of tst_BenchlibEventCounter *********
+Config: Using QTest library 4.5.0, Qt 4.5.0
+PASS : tst_BenchlibEventCounter::initTestCase()
+RESULT : tst_BenchlibEventCounter::events():"0":
+ 0 events per iteration (total: 0, iterations: 1)
+RESULT : tst_BenchlibEventCounter::events():"1":
+ 1 events per iteration (total: 1, iterations: 1)
+RESULT : tst_BenchlibEventCounter::events():"10":
+ 10 events per iteration (total: 10, iterations: 1)
+RESULT : tst_BenchlibEventCounter::events():"100":
+ 100 events per iteration (total: 100, iterations: 1)
+RESULT : tst_BenchlibEventCounter::events():"500":
+ 500 events per iteration (total: 500, iterations: 1)
+RESULT : tst_BenchlibEventCounter::events():"5000":
+ 5,000 events per iteration (total: 5000, iterations: 1)
+RESULT : tst_BenchlibEventCounter::events():"100000":
+ 100,000 events per iteration (total: 100000, iterations: 1)
+PASS : tst_BenchlibEventCounter::events()
+PASS : tst_BenchlibEventCounter::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_BenchlibEventCounter *********
diff --git a/tests/auto/selftests/expected_benchliboptions.txt b/tests/auto/selftests/expected_benchliboptions.txt
new file mode 100644
index 0000000..7afc922
--- /dev/null
+++ b/tests/auto/selftests/expected_benchliboptions.txt
@@ -0,0 +1,27 @@
+********* Start testing of tst_BenchlibOptions *********
+Config: Using QTest library 4.5.0, Qt 4.5.0
+PASS : tst_BenchlibOptions::initTestCase()
+RESULT : tst_BenchlibOptions::threeEvents():
+ 3 events per iteration (total: 3, iterations: 1)
+PASS : tst_BenchlibOptions::threeEvents()
+PASS : tst_BenchlibOptions::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_BenchlibOptions *********
+********* Start testing of tst_BenchlibFifteenIterations *********
+Config: Using QTest library 4.5.0, Qt 4.5.0
+PASS : tst_BenchlibFifteenIterations::initTestCase()
+RESULT : tst_BenchlibFifteenIterations::threeEvents():
+ 3.0 events per iteration (total: 45, iterations: 15)
+PASS : tst_BenchlibFifteenIterations::threeEvents()
+PASS : tst_BenchlibFifteenIterations::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_BenchlibFifteenIterations *********
+********* Start testing of tst_BenchlibOneHundredMinimum *********
+Config: Using QTest library 4.5.0, Qt 4.5.0
+PASS : tst_BenchlibOneHundredMinimum::initTestCase()
+RESULT : tst_BenchlibOneHundredMinimum::threeEvents():
+ 3.00 events per iteration (total: 192, iterations: 64)
+PASS : tst_BenchlibOneHundredMinimum::threeEvents()
+PASS : tst_BenchlibOneHundredMinimum::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_BenchlibOneHundredMinimum *********
diff --git a/tests/auto/selftests/expected_benchlibtickcounter.txt b/tests/auto/selftests/expected_benchlibtickcounter.txt
new file mode 100644
index 0000000..4cdeeee
--- /dev/null
+++ b/tests/auto/selftests/expected_benchlibtickcounter.txt
@@ -0,0 +1,9 @@
+********* Start testing of tst_BenchlibTickCounter *********
+Config: Using QTest library 4.5.0, Qt 4.5.0
+PASS : tst_BenchlibTickCounter::initTestCase()
+RESULT : tst_BenchlibTickCounter::threeBillionTicks():
+ 3,000,000,000 ticks per iteration (total: 3000000000, iterations: 1)
+PASS : tst_BenchlibTickCounter::threeBillionTicks()
+PASS : tst_BenchlibTickCounter::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_BenchlibTickCounter *********
diff --git a/tests/auto/selftests/expected_benchlibwalltime.txt b/tests/auto/selftests/expected_benchlibwalltime.txt
new file mode 100644
index 0000000..03f2465
--- /dev/null
+++ b/tests/auto/selftests/expected_benchlibwalltime.txt
@@ -0,0 +1,12 @@
+********* Start testing of tst_BenchlibWalltime *********
+Config: Using QTest library 4.5.0, Qt 4.5.0
+PASS : tst_BenchlibWalltime::initTestCase()
+RESULT : tst_BenchlibWalltime::waitForOneThousand():
+ 1,000 msec per iteration (total: 1000, iterations: 1)
+PASS : tst_BenchlibWalltime::waitForOneThousand()
+RESULT : tst_BenchlibWalltime::waitForFourThousand():
+ 4,000 msec per iteration (total: 4000, iterations: 1)
+PASS : tst_BenchlibWalltime::waitForFourThousand()
+PASS : tst_BenchlibWalltime::cleanupTestCase()
+Totals: 4 passed, 0 failed, 0 skipped
+********* Finished testing of tst_BenchlibWalltime *********
diff --git a/tests/auto/selftests/expected_cmptest.txt b/tests/auto/selftests/expected_cmptest.txt
new file mode 100644
index 0000000..dc89d9d
--- /dev/null
+++ b/tests/auto/selftests/expected_cmptest.txt
@@ -0,0 +1,8 @@
+********* Start testing of tst_Cmptest *********
+Config: Using QTest library 4.1.0, Qt 4.1.0
+PASS : tst_Cmptest::initTestCase()
+PASS : tst_Cmptest::compare_boolfuncs()
+PASS : tst_Cmptest::compare_pointerfuncs()
+PASS : tst_Cmptest::cleanupTestCase()
+Totals: 4 passed, 0 failed, 0 skipped
+********* Finished testing of tst_Cmptest *********
diff --git a/tests/auto/selftests/expected_commandlinedata.txt b/tests/auto/selftests/expected_commandlinedata.txt
new file mode 100644
index 0000000..b79f491
--- /dev/null
+++ b/tests/auto/selftests/expected_commandlinedata.txt
@@ -0,0 +1,24 @@
+********* Start testing of tst_DataTable *********
+Config: Using QTest library 4.5.0, Qt 4.5.0
+INFO : tst_DataTable::initTestCase() entering
+PASS : tst_DataTable::initTestCase()
+INFO : tst_DataTable::fiveTablePasses() entering
+INFO : tst_DataTable::fiveTablePasses(fiveTablePasses_data1) QVERIFY(test)
+ Loc: [tst_commandlinedata.cpp(30)]
+INFO : tst_DataTable::fiveTablePasses(fiveTablePasses_data2) QVERIFY(test)
+ Loc: [tst_commandlinedata.cpp(30)]
+INFO : tst_DataTable::fiveTablePasses(fiveTablePasses_data3) QVERIFY(test)
+ Loc: [tst_commandlinedata.cpp(30)]
+INFO : tst_DataTable::fiveTablePasses(fiveTablePasses_data4) QVERIFY(test)
+ Loc: [tst_commandlinedata.cpp(30)]
+INFO : tst_DataTable::fiveTablePasses(fiveTablePasses_data5) QVERIFY(test)
+ Loc: [tst_commandlinedata.cpp(30)]
+PASS : tst_DataTable::fiveTablePasses()
+INFO : tst_DataTable::fiveTablePasses() entering
+INFO : tst_DataTable::fiveTablePasses(fiveTablePasses_data1) QVERIFY(test)
+ Loc: [tst_commandlinedata.cpp(30)]
+PASS : tst_DataTable::fiveTablePasses()
+INFO : tst_DataTable::cleanupTestCase() entering
+PASS : tst_DataTable::cleanupTestCase()
+Totals: 4 passed, 0 failed, 0 skipped
+********* Finished testing of tst_DataTable *********
diff --git a/tests/auto/selftests/expected_crashes_1.txt b/tests/auto/selftests/expected_crashes_1.txt
new file mode 100644
index 0000000..887a117
--- /dev/null
+++ b/tests/auto/selftests/expected_crashes_1.txt
@@ -0,0 +1,3 @@
+********* Start testing of tst_Crashes *********
+Config: Using QTest library 4.1.0, Qt 4.1.1
+PASS : tst_Crashes::initTestCase()
diff --git a/tests/auto/selftests/expected_crashes_2.txt b/tests/auto/selftests/expected_crashes_2.txt
new file mode 100644
index 0000000..e5eb5aa
--- /dev/null
+++ b/tests/auto/selftests/expected_crashes_2.txt
@@ -0,0 +1,7 @@
+********* Start testing of tst_Crashes *********
+Config: Using QTest library 4.1.0, Qt 4.1.1
+PASS : tst_Crashes::initTestCase()
+FAIL! : tst_Crashes::crash() Caught unhandled exception
+.\qtestcase.cpp(984) : failure location
+Totals: 1 passed, 1 failed, 0 skipped
+********* Finished testing of tst_Crashes *********
diff --git a/tests/auto/selftests/expected_datatable.txt b/tests/auto/selftests/expected_datatable.txt
new file mode 100644
index 0000000..6fac9da
--- /dev/null
+++ b/tests/auto/selftests/expected_datatable.txt
@@ -0,0 +1,35 @@
+********* Start testing of tst_DataTable *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+PASS : tst_DataTable::initTestCase()
+PASS : tst_DataTable::singleTestFunction1()
+PASS : tst_DataTable::singleTestFunction2()
+PASS : tst_DataTable::fiveTablePasses()
+FAIL! : tst_DataTable::fiveTableFailures(fiveTableFailures_data 1) 'test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(58)]
+FAIL! : tst_DataTable::fiveTableFailures(fiveTableFailures_data 2) 'test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(58)]
+FAIL! : tst_DataTable::fiveTableFailures(fiveTableFailures_data 3) 'test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(58)]
+FAIL! : tst_DataTable::fiveTableFailures(fiveTableFailures_data 4) 'test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(58)]
+FAIL! : tst_DataTable::fiveTableFailures(fiveTableFailures_data 5) 'test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(58)]
+FAIL! : tst_DataTable::startsWithFailure(startsWithFailure_data 1) 'test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(58)]
+FAIL! : tst_DataTable::endsWithFailure(endsWithFailure 5) 'test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(58)]
+FAIL! : tst_DataTable::failureInMiddle(failureInMiddle_data 3) 'test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(58)]
+FAIL! : tst_DataTable::fiveIsolatedFailures(fiveIsolatedFailures_data 1) '!test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(140)]
+FAIL! : tst_DataTable::fiveIsolatedFailures(fiveIsolatedFailures_data 2) '!test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(140)]
+FAIL! : tst_DataTable::fiveIsolatedFailures(fiveIsolatedFailures_data 3) '!test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(140)]
+FAIL! : tst_DataTable::fiveIsolatedFailures(fiveIsolatedFailures_data 4) '!test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(140)]
+FAIL! : tst_DataTable::fiveIsolatedFailures(fiveIsolatedFailures_data 5) '!test' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datatable/tst_datatable.cpp(140)]
+PASS : tst_DataTable::cleanupTestCase()
+Totals: 5 passed, 13 failed, 0 skipped
+********* Finished testing of tst_DataTable *********
diff --git a/tests/auto/selftests/expected_datetime.txt b/tests/auto/selftests/expected_datetime.txt
new file mode 100644
index 0000000..d745aa0
--- /dev/null
+++ b/tests/auto/selftests/expected_datetime.txt
@@ -0,0 +1,18 @@
+********* Start testing of tst_DateTime *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+PASS : tst_DateTime::initTestCase()
+FAIL! : tst_DateTime::dateTime() Compared values are not the same
+ Actual (local): 2000/05/03 04:03:04.000[local time]
+ Expected (utc): 2000/05/03 04:03:04.000[UTC]
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datetime/tst_datetime.cpp(33)]
+FAIL! : tst_DateTime::qurl() Compared values are not the same
+ Actual (operandA): http://example.com
+ Expected (operandB):
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datetime/tst_datetime.cpp(41)]
+FAIL! : tst_DateTime::qurl() Compared values are not the same
+ Actual (operandA):
+ Expected (operandB): http://example.com
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/datetime/tst_datetime.cpp(41)]
+PASS : tst_DateTime::cleanupTestCase()
+Totals: 2 passed, 3 failed, 0 skipped
+********* Finished testing of tst_DateTime *********
diff --git a/tests/auto/selftests/expected_differentexec.txt b/tests/auto/selftests/expected_differentexec.txt
new file mode 100644
index 0000000..9536b69
--- /dev/null
+++ b/tests/auto/selftests/expected_differentexec.txt
@@ -0,0 +1,21 @@
+********* Start testing of tst_TestA *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_TestA::initTestCase()
+PASS : tst_TestA::slotName()
+PASS : tst_TestA::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_TestA *********
+********* Start testing of tst_TestA *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_TestA::initTestCase()
+PASS : tst_TestA::slotName()
+PASS : tst_TestA::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_TestA *********
+********* Start testing of tst_TestB *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_TestB::initTestCase()
+PASS : tst_TestB::slotName()
+PASS : tst_TestB::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_TestB *********
diff --git a/tests/auto/selftests/expected_exception.txt b/tests/auto/selftests/expected_exception.txt
new file mode 100644
index 0000000..141ea8b
--- /dev/null
+++ b/tests/auto/selftests/expected_exception.txt
@@ -0,0 +1,7 @@
+********* Start testing of tst_Exception *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_Exception::initTestCase()
+FAIL! : tst_Exception::throwException() Caught unhandled exception
+ Loc: [/home/fenglich/dev/qt-4.3/tools/qtestlib/src/qtestcase.cpp(1220)]
+Totals: 1 passed, 1 failed, 0 skipped
+********* Finished testing of tst_Exception *********
diff --git a/tests/auto/selftests/expected_expectfail.txt b/tests/auto/selftests/expected_expectfail.txt
new file mode 100644
index 0000000..2eee7ff
--- /dev/null
+++ b/tests/auto/selftests/expected_expectfail.txt
@@ -0,0 +1,20 @@
+********* Start testing of tst_ExpectFail *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_ExpectFail::initTestCase()
+QDEBUG : tst_ExpectFail::expectAndContinue() begin
+XFAIL : tst_ExpectFail::expectAndContinue() This should xfail
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/expectfail/tst_expectfail.cpp(27)]
+QDEBUG : tst_ExpectFail::expectAndContinue() after
+PASS : tst_ExpectFail::expectAndContinue()
+QDEBUG : tst_ExpectFail::expectAndAbort() begin
+XFAIL : tst_ExpectFail::expectAndAbort() This should xfail
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/expectfail/tst_expectfail.cpp(35)]
+PASS : tst_ExpectFail::expectAndAbort()
+XFAIL : tst_ExpectFail::xfailWithQString() A string
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/expectfail/tst_expectfail.cpp(42)]
+XFAIL : tst_ExpectFail::xfailWithQString() Bug 5 (The message)
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/expectfail/tst_expectfail.cpp(47)]
+PASS : tst_ExpectFail::xfailWithQString()
+PASS : tst_ExpectFail::cleanupTestCase()
+Totals: 5 passed, 0 failed, 0 skipped
+********* Finished testing of tst_ExpectFail *********
diff --git a/tests/auto/selftests/expected_failinit.txt b/tests/auto/selftests/expected_failinit.txt
new file mode 100644
index 0000000..6f84898
--- /dev/null
+++ b/tests/auto/selftests/expected_failinit.txt
@@ -0,0 +1,7 @@
+********* Start testing of tst_FailInit *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+FAIL! : tst_FailInit::initTestCase() 'false' returned FALSE. ()
+ Loc: [tst_failinit.cpp(22)]
+PASS : tst_FailInit::cleanupTestCase()
+Totals: 1 passed, 1 failed, 0 skipped
+********* Finished testing of tst_FailInit *********
diff --git a/tests/auto/selftests/expected_failinitdata.txt b/tests/auto/selftests/expected_failinitdata.txt
new file mode 100644
index 0000000..c74308f
--- /dev/null
+++ b/tests/auto/selftests/expected_failinitdata.txt
@@ -0,0 +1,6 @@
+********* Start testing of tst_FailInitData *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+FAIL! : tst_FailInitData::initTestCase() 'false' returned FALSE. ()
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/failinitdata/tst_failinitdata.cpp(23)]
+Totals: 0 passed, 1 failed, 0 skipped
+********* Finished testing of tst_FailInitData *********
diff --git a/tests/auto/selftests/expected_fatal.txt b/tests/auto/selftests/expected_fatal.txt
new file mode 100644
index 0000000..c8ab3d6
--- /dev/null
+++ b/tests/auto/selftests/expected_fatal.txt
@@ -0,0 +1,6 @@
+********* Start testing of tst_Fatal *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_Fatal::initTestCase()
+QFATAL : tst_Fatal::testFunction() A fatal error occured! Ouuiieee!! The world is coming to an end and I will die! Buhu!
+Totals: 1 passed, 0 failed, 0 skipped
+********* Finished testing of tst_Fatal *********
diff --git a/tests/auto/selftests/expected_fetchbogus.txt b/tests/auto/selftests/expected_fetchbogus.txt
new file mode 100644
index 0000000..22f8d1b
--- /dev/null
+++ b/tests/auto/selftests/expected_fetchbogus.txt
@@ -0,0 +1,8 @@
+********* Start testing of tst_FetchBogus *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_FetchBogus::initTestCase()
+QFATAL : tst_FetchBogus::fetchBogus(foo) QFETCH: Requested testdata 'bubu' not available, check your _data function.
+FAIL! : tst_FetchBogus::fetchBogus(foo) Received a fatal error.
+ Loc: [Unknown file(0)]
+Totals: 1 passed, 1 failed, 0 skipped
+********* Finished testing of tst_FetchBogus *********
diff --git a/tests/auto/selftests/expected_globaldata.txt b/tests/auto/selftests/expected_globaldata.txt
new file mode 100644
index 0000000..983376b
--- /dev/null
+++ b/tests/auto/selftests/expected_globaldata.txt
@@ -0,0 +1,45 @@
+********* Start testing of tst_Subtest *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+initTestCase initTestCase (null)
+PASS : tst_Subtest::initTestCase()
+init testGlobal local 1
+global: 0
+local: 0
+cleanup testGlobal local 1
+init testGlobal local 2
+global: 0
+local: 1
+cleanup testGlobal local 2
+init testGlobal local 1
+global: 1
+local: 0
+cleanup testGlobal local 1
+init testGlobal local 2
+global: 1
+local: 1
+cleanup testGlobal local 2
+PASS : tst_Subtest::testGlobal()
+SKIP : tst_Subtest::skip(1) skipping
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/globaldata/tst_globaldata.cpp(95)]
+init skipLocal local 1
+SKIP : tst_Subtest::skipLocal(1:local 1) skipping
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/globaldata/tst_globaldata.cpp(115)]
+cleanup skipLocal local 1
+init skipSingle local 1
+global: 0, local 0
+cleanup skipSingle local 1
+init skipSingle local 2
+global: 0, local 1
+cleanup skipSingle local 2
+init skipSingle local 1
+SKIP : tst_Subtest::skipSingle(2:local 1) skipping
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/globaldata/tst_globaldata.cpp(109)]
+cleanup skipSingle local 1
+init skipSingle local 2
+global: 1, local 1
+cleanup skipSingle local 2
+PASS : tst_Subtest::skipSingle()
+cleanupTestCase cleanupTestCase (null)
+PASS : tst_Subtest::cleanupTestCase()
+Totals: 4 passed, 0 failed, 3 skipped
+********* Finished testing of tst_Subtest *********
diff --git a/tests/auto/selftests/expected_maxwarnings.txt b/tests/auto/selftests/expected_maxwarnings.txt
new file mode 100644
index 0000000..bb5e54f
--- /dev/null
+++ b/tests/auto/selftests/expected_maxwarnings.txt
@@ -0,0 +1,2009 @@
+********* Start testing of MaxWarnings *********
+Config: Using QTest library 4.1.0, Qt 4.1.0
+PASS : MaxWarnings::initTestCase()
+QWARN : MaxWarnings::warn() 0
+QWARN : MaxWarnings::warn() 1
+QWARN : MaxWarnings::warn() 2
+QWARN : MaxWarnings::warn() 3
+QWARN : MaxWarnings::warn() 4
+QWARN : MaxWarnings::warn() 5
+QWARN : MaxWarnings::warn() 6
+QWARN : MaxWarnings::warn() 7
+QWARN : MaxWarnings::warn() 8
+QWARN : MaxWarnings::warn() 9
+QWARN : MaxWarnings::warn() 10
+QWARN : MaxWarnings::warn() 11
+QWARN : MaxWarnings::warn() 12
+QWARN : MaxWarnings::warn() 13
+QWARN : MaxWarnings::warn() 14
+QWARN : MaxWarnings::warn() 15
+QWARN : MaxWarnings::warn() 16
+QWARN : MaxWarnings::warn() 17
+QWARN : MaxWarnings::warn() 18
+QWARN : MaxWarnings::warn() 19
+QWARN : MaxWarnings::warn() 20
+QWARN : MaxWarnings::warn() 21
+QWARN : MaxWarnings::warn() 22
+QWARN : MaxWarnings::warn() 23
+QWARN : MaxWarnings::warn() 24
+QWARN : MaxWarnings::warn() 25
+QWARN : MaxWarnings::warn() 26
+QWARN : MaxWarnings::warn() 27
+QWARN : MaxWarnings::warn() 28
+QWARN : MaxWarnings::warn() 29
+QWARN : MaxWarnings::warn() 30
+QWARN : MaxWarnings::warn() 31
+QWARN : MaxWarnings::warn() 32
+QWARN : MaxWarnings::warn() 33
+QWARN : MaxWarnings::warn() 34
+QWARN : MaxWarnings::warn() 35
+QWARN : MaxWarnings::warn() 36
+QWARN : MaxWarnings::warn() 37
+QWARN : MaxWarnings::warn() 38
+QWARN : MaxWarnings::warn() 39
+QWARN : MaxWarnings::warn() 40
+QWARN : MaxWarnings::warn() 41
+QWARN : MaxWarnings::warn() 42
+QWARN : MaxWarnings::warn() 43
+QWARN : MaxWarnings::warn() 44
+QWARN : MaxWarnings::warn() 45
+QWARN : MaxWarnings::warn() 46
+QWARN : MaxWarnings::warn() 47
+QWARN : MaxWarnings::warn() 48
+QWARN : MaxWarnings::warn() 49
+QWARN : MaxWarnings::warn() 50
+QWARN : MaxWarnings::warn() 51
+QWARN : MaxWarnings::warn() 52
+QWARN : MaxWarnings::warn() 53
+QWARN : MaxWarnings::warn() 54
+QWARN : MaxWarnings::warn() 55
+QWARN : MaxWarnings::warn() 56
+QWARN : MaxWarnings::warn() 57
+QWARN : MaxWarnings::warn() 58
+QWARN : MaxWarnings::warn() 59
+QWARN : MaxWarnings::warn() 60
+QWARN : MaxWarnings::warn() 61
+QWARN : MaxWarnings::warn() 62
+QWARN : MaxWarnings::warn() 63
+QWARN : MaxWarnings::warn() 64
+QWARN : MaxWarnings::warn() 65
+QWARN : MaxWarnings::warn() 66
+QWARN : MaxWarnings::warn() 67
+QWARN : MaxWarnings::warn() 68
+QWARN : MaxWarnings::warn() 69
+QWARN : MaxWarnings::warn() 70
+QWARN : MaxWarnings::warn() 71
+QWARN : MaxWarnings::warn() 72
+QWARN : MaxWarnings::warn() 73
+QWARN : MaxWarnings::warn() 74
+QWARN : MaxWarnings::warn() 75
+QWARN : MaxWarnings::warn() 76
+QWARN : MaxWarnings::warn() 77
+QWARN : MaxWarnings::warn() 78
+QWARN : MaxWarnings::warn() 79
+QWARN : MaxWarnings::warn() 80
+QWARN : MaxWarnings::warn() 81
+QWARN : MaxWarnings::warn() 82
+QWARN : MaxWarnings::warn() 83
+QWARN : MaxWarnings::warn() 84
+QWARN : MaxWarnings::warn() 85
+QWARN : MaxWarnings::warn() 86
+QWARN : MaxWarnings::warn() 87
+QWARN : MaxWarnings::warn() 88
+QWARN : MaxWarnings::warn() 89
+QWARN : MaxWarnings::warn() 90
+QWARN : MaxWarnings::warn() 91
+QWARN : MaxWarnings::warn() 92
+QWARN : MaxWarnings::warn() 93
+QWARN : MaxWarnings::warn() 94
+QWARN : MaxWarnings::warn() 95
+QWARN : MaxWarnings::warn() 96
+QWARN : MaxWarnings::warn() 97
+QWARN : MaxWarnings::warn() 98
+QWARN : MaxWarnings::warn() 99
+QWARN : MaxWarnings::warn() 100
+QWARN : MaxWarnings::warn() 101
+QWARN : MaxWarnings::warn() 102
+QWARN : MaxWarnings::warn() 103
+QWARN : MaxWarnings::warn() 104
+QWARN : MaxWarnings::warn() 105
+QWARN : MaxWarnings::warn() 106
+QWARN : MaxWarnings::warn() 107
+QWARN : MaxWarnings::warn() 108
+QWARN : MaxWarnings::warn() 109
+QWARN : MaxWarnings::warn() 110
+QWARN : MaxWarnings::warn() 111
+QWARN : MaxWarnings::warn() 112
+QWARN : MaxWarnings::warn() 113
+QWARN : MaxWarnings::warn() 114
+QWARN : MaxWarnings::warn() 115
+QWARN : MaxWarnings::warn() 116
+QWARN : MaxWarnings::warn() 117
+QWARN : MaxWarnings::warn() 118
+QWARN : MaxWarnings::warn() 119
+QWARN : MaxWarnings::warn() 120
+QWARN : MaxWarnings::warn() 121
+QWARN : MaxWarnings::warn() 122
+QWARN : MaxWarnings::warn() 123
+QWARN : MaxWarnings::warn() 124
+QWARN : MaxWarnings::warn() 125
+QWARN : MaxWarnings::warn() 126
+QWARN : MaxWarnings::warn() 127
+QWARN : MaxWarnings::warn() 128
+QWARN : MaxWarnings::warn() 129
+QWARN : MaxWarnings::warn() 130
+QWARN : MaxWarnings::warn() 131
+QWARN : MaxWarnings::warn() 132
+QWARN : MaxWarnings::warn() 133
+QWARN : MaxWarnings::warn() 134
+QWARN : MaxWarnings::warn() 135
+QWARN : MaxWarnings::warn() 136
+QWARN : MaxWarnings::warn() 137
+QWARN : MaxWarnings::warn() 138
+QWARN : MaxWarnings::warn() 139
+QWARN : MaxWarnings::warn() 140
+QWARN : MaxWarnings::warn() 141
+QWARN : MaxWarnings::warn() 142
+QWARN : MaxWarnings::warn() 143
+QWARN : MaxWarnings::warn() 144
+QWARN : MaxWarnings::warn() 145
+QWARN : MaxWarnings::warn() 146
+QWARN : MaxWarnings::warn() 147
+QWARN : MaxWarnings::warn() 148
+QWARN : MaxWarnings::warn() 149
+QWARN : MaxWarnings::warn() 150
+QWARN : MaxWarnings::warn() 151
+QWARN : MaxWarnings::warn() 152
+QWARN : MaxWarnings::warn() 153
+QWARN : MaxWarnings::warn() 154
+QWARN : MaxWarnings::warn() 155
+QWARN : MaxWarnings::warn() 156
+QWARN : MaxWarnings::warn() 157
+QWARN : MaxWarnings::warn() 158
+QWARN : MaxWarnings::warn() 159
+QWARN : MaxWarnings::warn() 160
+QWARN : MaxWarnings::warn() 161
+QWARN : MaxWarnings::warn() 162
+QWARN : MaxWarnings::warn() 163
+QWARN : MaxWarnings::warn() 164
+QWARN : MaxWarnings::warn() 165
+QWARN : MaxWarnings::warn() 166
+QWARN : MaxWarnings::warn() 167
+QWARN : MaxWarnings::warn() 168
+QWARN : MaxWarnings::warn() 169
+QWARN : MaxWarnings::warn() 170
+QWARN : MaxWarnings::warn() 171
+QWARN : MaxWarnings::warn() 172
+QWARN : MaxWarnings::warn() 173
+QWARN : MaxWarnings::warn() 174
+QWARN : MaxWarnings::warn() 175
+QWARN : MaxWarnings::warn() 176
+QWARN : MaxWarnings::warn() 177
+QWARN : MaxWarnings::warn() 178
+QWARN : MaxWarnings::warn() 179
+QWARN : MaxWarnings::warn() 180
+QWARN : MaxWarnings::warn() 181
+QWARN : MaxWarnings::warn() 182
+QWARN : MaxWarnings::warn() 183
+QWARN : MaxWarnings::warn() 184
+QWARN : MaxWarnings::warn() 185
+QWARN : MaxWarnings::warn() 186
+QWARN : MaxWarnings::warn() 187
+QWARN : MaxWarnings::warn() 188
+QWARN : MaxWarnings::warn() 189
+QWARN : MaxWarnings::warn() 190
+QWARN : MaxWarnings::warn() 191
+QWARN : MaxWarnings::warn() 192
+QWARN : MaxWarnings::warn() 193
+QWARN : MaxWarnings::warn() 194
+QWARN : MaxWarnings::warn() 195
+QWARN : MaxWarnings::warn() 196
+QWARN : MaxWarnings::warn() 197
+QWARN : MaxWarnings::warn() 198
+QWARN : MaxWarnings::warn() 199
+QWARN : MaxWarnings::warn() 200
+QWARN : MaxWarnings::warn() 201
+QWARN : MaxWarnings::warn() 202
+QWARN : MaxWarnings::warn() 203
+QWARN : MaxWarnings::warn() 204
+QWARN : MaxWarnings::warn() 205
+QWARN : MaxWarnings::warn() 206
+QWARN : MaxWarnings::warn() 207
+QWARN : MaxWarnings::warn() 208
+QWARN : MaxWarnings::warn() 209
+QWARN : MaxWarnings::warn() 210
+QWARN : MaxWarnings::warn() 211
+QWARN : MaxWarnings::warn() 212
+QWARN : MaxWarnings::warn() 213
+QWARN : MaxWarnings::warn() 214
+QWARN : MaxWarnings::warn() 215
+QWARN : MaxWarnings::warn() 216
+QWARN : MaxWarnings::warn() 217
+QWARN : MaxWarnings::warn() 218
+QWARN : MaxWarnings::warn() 219
+QWARN : MaxWarnings::warn() 220
+QWARN : MaxWarnings::warn() 221
+QWARN : MaxWarnings::warn() 222
+QWARN : MaxWarnings::warn() 223
+QWARN : MaxWarnings::warn() 224
+QWARN : MaxWarnings::warn() 225
+QWARN : MaxWarnings::warn() 226
+QWARN : MaxWarnings::warn() 227
+QWARN : MaxWarnings::warn() 228
+QWARN : MaxWarnings::warn() 229
+QWARN : MaxWarnings::warn() 230
+QWARN : MaxWarnings::warn() 231
+QWARN : MaxWarnings::warn() 232
+QWARN : MaxWarnings::warn() 233
+QWARN : MaxWarnings::warn() 234
+QWARN : MaxWarnings::warn() 235
+QWARN : MaxWarnings::warn() 236
+QWARN : MaxWarnings::warn() 237
+QWARN : MaxWarnings::warn() 238
+QWARN : MaxWarnings::warn() 239
+QWARN : MaxWarnings::warn() 240
+QWARN : MaxWarnings::warn() 241
+QWARN : MaxWarnings::warn() 242
+QWARN : MaxWarnings::warn() 243
+QWARN : MaxWarnings::warn() 244
+QWARN : MaxWarnings::warn() 245
+QWARN : MaxWarnings::warn() 246
+QWARN : MaxWarnings::warn() 247
+QWARN : MaxWarnings::warn() 248
+QWARN : MaxWarnings::warn() 249
+QWARN : MaxWarnings::warn() 250
+QWARN : MaxWarnings::warn() 251
+QWARN : MaxWarnings::warn() 252
+QWARN : MaxWarnings::warn() 253
+QWARN : MaxWarnings::warn() 254
+QWARN : MaxWarnings::warn() 255
+QWARN : MaxWarnings::warn() 256
+QWARN : MaxWarnings::warn() 257
+QWARN : MaxWarnings::warn() 258
+QWARN : MaxWarnings::warn() 259
+QWARN : MaxWarnings::warn() 260
+QWARN : MaxWarnings::warn() 261
+QWARN : MaxWarnings::warn() 262
+QWARN : MaxWarnings::warn() 263
+QWARN : MaxWarnings::warn() 264
+QWARN : MaxWarnings::warn() 265
+QWARN : MaxWarnings::warn() 266
+QWARN : MaxWarnings::warn() 267
+QWARN : MaxWarnings::warn() 268
+QWARN : MaxWarnings::warn() 269
+QWARN : MaxWarnings::warn() 270
+QWARN : MaxWarnings::warn() 271
+QWARN : MaxWarnings::warn() 272
+QWARN : MaxWarnings::warn() 273
+QWARN : MaxWarnings::warn() 274
+QWARN : MaxWarnings::warn() 275
+QWARN : MaxWarnings::warn() 276
+QWARN : MaxWarnings::warn() 277
+QWARN : MaxWarnings::warn() 278
+QWARN : MaxWarnings::warn() 279
+QWARN : MaxWarnings::warn() 280
+QWARN : MaxWarnings::warn() 281
+QWARN : MaxWarnings::warn() 282
+QWARN : MaxWarnings::warn() 283
+QWARN : MaxWarnings::warn() 284
+QWARN : MaxWarnings::warn() 285
+QWARN : MaxWarnings::warn() 286
+QWARN : MaxWarnings::warn() 287
+QWARN : MaxWarnings::warn() 288
+QWARN : MaxWarnings::warn() 289
+QWARN : MaxWarnings::warn() 290
+QWARN : MaxWarnings::warn() 291
+QWARN : MaxWarnings::warn() 292
+QWARN : MaxWarnings::warn() 293
+QWARN : MaxWarnings::warn() 294
+QWARN : MaxWarnings::warn() 295
+QWARN : MaxWarnings::warn() 296
+QWARN : MaxWarnings::warn() 297
+QWARN : MaxWarnings::warn() 298
+QWARN : MaxWarnings::warn() 299
+QWARN : MaxWarnings::warn() 300
+QWARN : MaxWarnings::warn() 301
+QWARN : MaxWarnings::warn() 302
+QWARN : MaxWarnings::warn() 303
+QWARN : MaxWarnings::warn() 304
+QWARN : MaxWarnings::warn() 305
+QWARN : MaxWarnings::warn() 306
+QWARN : MaxWarnings::warn() 307
+QWARN : MaxWarnings::warn() 308
+QWARN : MaxWarnings::warn() 309
+QWARN : MaxWarnings::warn() 310
+QWARN : MaxWarnings::warn() 311
+QWARN : MaxWarnings::warn() 312
+QWARN : MaxWarnings::warn() 313
+QWARN : MaxWarnings::warn() 314
+QWARN : MaxWarnings::warn() 315
+QWARN : MaxWarnings::warn() 316
+QWARN : MaxWarnings::warn() 317
+QWARN : MaxWarnings::warn() 318
+QWARN : MaxWarnings::warn() 319
+QWARN : MaxWarnings::warn() 320
+QWARN : MaxWarnings::warn() 321
+QWARN : MaxWarnings::warn() 322
+QWARN : MaxWarnings::warn() 323
+QWARN : MaxWarnings::warn() 324
+QWARN : MaxWarnings::warn() 325
+QWARN : MaxWarnings::warn() 326
+QWARN : MaxWarnings::warn() 327
+QWARN : MaxWarnings::warn() 328
+QWARN : MaxWarnings::warn() 329
+QWARN : MaxWarnings::warn() 330
+QWARN : MaxWarnings::warn() 331
+QWARN : MaxWarnings::warn() 332
+QWARN : MaxWarnings::warn() 333
+QWARN : MaxWarnings::warn() 334
+QWARN : MaxWarnings::warn() 335
+QWARN : MaxWarnings::warn() 336
+QWARN : MaxWarnings::warn() 337
+QWARN : MaxWarnings::warn() 338
+QWARN : MaxWarnings::warn() 339
+QWARN : MaxWarnings::warn() 340
+QWARN : MaxWarnings::warn() 341
+QWARN : MaxWarnings::warn() 342
+QWARN : MaxWarnings::warn() 343
+QWARN : MaxWarnings::warn() 344
+QWARN : MaxWarnings::warn() 345
+QWARN : MaxWarnings::warn() 346
+QWARN : MaxWarnings::warn() 347
+QWARN : MaxWarnings::warn() 348
+QWARN : MaxWarnings::warn() 349
+QWARN : MaxWarnings::warn() 350
+QWARN : MaxWarnings::warn() 351
+QWARN : MaxWarnings::warn() 352
+QWARN : MaxWarnings::warn() 353
+QWARN : MaxWarnings::warn() 354
+QWARN : MaxWarnings::warn() 355
+QWARN : MaxWarnings::warn() 356
+QWARN : MaxWarnings::warn() 357
+QWARN : MaxWarnings::warn() 358
+QWARN : MaxWarnings::warn() 359
+QWARN : MaxWarnings::warn() 360
+QWARN : MaxWarnings::warn() 361
+QWARN : MaxWarnings::warn() 362
+QWARN : MaxWarnings::warn() 363
+QWARN : MaxWarnings::warn() 364
+QWARN : MaxWarnings::warn() 365
+QWARN : MaxWarnings::warn() 366
+QWARN : MaxWarnings::warn() 367
+QWARN : MaxWarnings::warn() 368
+QWARN : MaxWarnings::warn() 369
+QWARN : MaxWarnings::warn() 370
+QWARN : MaxWarnings::warn() 371
+QWARN : MaxWarnings::warn() 372
+QWARN : MaxWarnings::warn() 373
+QWARN : MaxWarnings::warn() 374
+QWARN : MaxWarnings::warn() 375
+QWARN : MaxWarnings::warn() 376
+QWARN : MaxWarnings::warn() 377
+QWARN : MaxWarnings::warn() 378
+QWARN : MaxWarnings::warn() 379
+QWARN : MaxWarnings::warn() 380
+QWARN : MaxWarnings::warn() 381
+QWARN : MaxWarnings::warn() 382
+QWARN : MaxWarnings::warn() 383
+QWARN : MaxWarnings::warn() 384
+QWARN : MaxWarnings::warn() 385
+QWARN : MaxWarnings::warn() 386
+QWARN : MaxWarnings::warn() 387
+QWARN : MaxWarnings::warn() 388
+QWARN : MaxWarnings::warn() 389
+QWARN : MaxWarnings::warn() 390
+QWARN : MaxWarnings::warn() 391
+QWARN : MaxWarnings::warn() 392
+QWARN : MaxWarnings::warn() 393
+QWARN : MaxWarnings::warn() 394
+QWARN : MaxWarnings::warn() 395
+QWARN : MaxWarnings::warn() 396
+QWARN : MaxWarnings::warn() 397
+QWARN : MaxWarnings::warn() 398
+QWARN : MaxWarnings::warn() 399
+QWARN : MaxWarnings::warn() 400
+QWARN : MaxWarnings::warn() 401
+QWARN : MaxWarnings::warn() 402
+QWARN : MaxWarnings::warn() 403
+QWARN : MaxWarnings::warn() 404
+QWARN : MaxWarnings::warn() 405
+QWARN : MaxWarnings::warn() 406
+QWARN : MaxWarnings::warn() 407
+QWARN : MaxWarnings::warn() 408
+QWARN : MaxWarnings::warn() 409
+QWARN : MaxWarnings::warn() 410
+QWARN : MaxWarnings::warn() 411
+QWARN : MaxWarnings::warn() 412
+QWARN : MaxWarnings::warn() 413
+QWARN : MaxWarnings::warn() 414
+QWARN : MaxWarnings::warn() 415
+QWARN : MaxWarnings::warn() 416
+QWARN : MaxWarnings::warn() 417
+QWARN : MaxWarnings::warn() 418
+QWARN : MaxWarnings::warn() 419
+QWARN : MaxWarnings::warn() 420
+QWARN : MaxWarnings::warn() 421
+QWARN : MaxWarnings::warn() 422
+QWARN : MaxWarnings::warn() 423
+QWARN : MaxWarnings::warn() 424
+QWARN : MaxWarnings::warn() 425
+QWARN : MaxWarnings::warn() 426
+QWARN : MaxWarnings::warn() 427
+QWARN : MaxWarnings::warn() 428
+QWARN : MaxWarnings::warn() 429
+QWARN : MaxWarnings::warn() 430
+QWARN : MaxWarnings::warn() 431
+QWARN : MaxWarnings::warn() 432
+QWARN : MaxWarnings::warn() 433
+QWARN : MaxWarnings::warn() 434
+QWARN : MaxWarnings::warn() 435
+QWARN : MaxWarnings::warn() 436
+QWARN : MaxWarnings::warn() 437
+QWARN : MaxWarnings::warn() 438
+QWARN : MaxWarnings::warn() 439
+QWARN : MaxWarnings::warn() 440
+QWARN : MaxWarnings::warn() 441
+QWARN : MaxWarnings::warn() 442
+QWARN : MaxWarnings::warn() 443
+QWARN : MaxWarnings::warn() 444
+QWARN : MaxWarnings::warn() 445
+QWARN : MaxWarnings::warn() 446
+QWARN : MaxWarnings::warn() 447
+QWARN : MaxWarnings::warn() 448
+QWARN : MaxWarnings::warn() 449
+QWARN : MaxWarnings::warn() 450
+QWARN : MaxWarnings::warn() 451
+QWARN : MaxWarnings::warn() 452
+QWARN : MaxWarnings::warn() 453
+QWARN : MaxWarnings::warn() 454
+QWARN : MaxWarnings::warn() 455
+QWARN : MaxWarnings::warn() 456
+QWARN : MaxWarnings::warn() 457
+QWARN : MaxWarnings::warn() 458
+QWARN : MaxWarnings::warn() 459
+QWARN : MaxWarnings::warn() 460
+QWARN : MaxWarnings::warn() 461
+QWARN : MaxWarnings::warn() 462
+QWARN : MaxWarnings::warn() 463
+QWARN : MaxWarnings::warn() 464
+QWARN : MaxWarnings::warn() 465
+QWARN : MaxWarnings::warn() 466
+QWARN : MaxWarnings::warn() 467
+QWARN : MaxWarnings::warn() 468
+QWARN : MaxWarnings::warn() 469
+QWARN : MaxWarnings::warn() 470
+QWARN : MaxWarnings::warn() 471
+QWARN : MaxWarnings::warn() 472
+QWARN : MaxWarnings::warn() 473
+QWARN : MaxWarnings::warn() 474
+QWARN : MaxWarnings::warn() 475
+QWARN : MaxWarnings::warn() 476
+QWARN : MaxWarnings::warn() 477
+QWARN : MaxWarnings::warn() 478
+QWARN : MaxWarnings::warn() 479
+QWARN : MaxWarnings::warn() 480
+QWARN : MaxWarnings::warn() 481
+QWARN : MaxWarnings::warn() 482
+QWARN : MaxWarnings::warn() 483
+QWARN : MaxWarnings::warn() 484
+QWARN : MaxWarnings::warn() 485
+QWARN : MaxWarnings::warn() 486
+QWARN : MaxWarnings::warn() 487
+QWARN : MaxWarnings::warn() 488
+QWARN : MaxWarnings::warn() 489
+QWARN : MaxWarnings::warn() 490
+QWARN : MaxWarnings::warn() 491
+QWARN : MaxWarnings::warn() 492
+QWARN : MaxWarnings::warn() 493
+QWARN : MaxWarnings::warn() 494
+QWARN : MaxWarnings::warn() 495
+QWARN : MaxWarnings::warn() 496
+QWARN : MaxWarnings::warn() 497
+QWARN : MaxWarnings::warn() 498
+QWARN : MaxWarnings::warn() 499
+QWARN : MaxWarnings::warn() 500
+QWARN : MaxWarnings::warn() 501
+QWARN : MaxWarnings::warn() 502
+QWARN : MaxWarnings::warn() 503
+QWARN : MaxWarnings::warn() 504
+QWARN : MaxWarnings::warn() 505
+QWARN : MaxWarnings::warn() 506
+QWARN : MaxWarnings::warn() 507
+QWARN : MaxWarnings::warn() 508
+QWARN : MaxWarnings::warn() 509
+QWARN : MaxWarnings::warn() 510
+QWARN : MaxWarnings::warn() 511
+QWARN : MaxWarnings::warn() 512
+QWARN : MaxWarnings::warn() 513
+QWARN : MaxWarnings::warn() 514
+QWARN : MaxWarnings::warn() 515
+QWARN : MaxWarnings::warn() 516
+QWARN : MaxWarnings::warn() 517
+QWARN : MaxWarnings::warn() 518
+QWARN : MaxWarnings::warn() 519
+QWARN : MaxWarnings::warn() 520
+QWARN : MaxWarnings::warn() 521
+QWARN : MaxWarnings::warn() 522
+QWARN : MaxWarnings::warn() 523
+QWARN : MaxWarnings::warn() 524
+QWARN : MaxWarnings::warn() 525
+QWARN : MaxWarnings::warn() 526
+QWARN : MaxWarnings::warn() 527
+QWARN : MaxWarnings::warn() 528
+QWARN : MaxWarnings::warn() 529
+QWARN : MaxWarnings::warn() 530
+QWARN : MaxWarnings::warn() 531
+QWARN : MaxWarnings::warn() 532
+QWARN : MaxWarnings::warn() 533
+QWARN : MaxWarnings::warn() 534
+QWARN : MaxWarnings::warn() 535
+QWARN : MaxWarnings::warn() 536
+QWARN : MaxWarnings::warn() 537
+QWARN : MaxWarnings::warn() 538
+QWARN : MaxWarnings::warn() 539
+QWARN : MaxWarnings::warn() 540
+QWARN : MaxWarnings::warn() 541
+QWARN : MaxWarnings::warn() 542
+QWARN : MaxWarnings::warn() 543
+QWARN : MaxWarnings::warn() 544
+QWARN : MaxWarnings::warn() 545
+QWARN : MaxWarnings::warn() 546
+QWARN : MaxWarnings::warn() 547
+QWARN : MaxWarnings::warn() 548
+QWARN : MaxWarnings::warn() 549
+QWARN : MaxWarnings::warn() 550
+QWARN : MaxWarnings::warn() 551
+QWARN : MaxWarnings::warn() 552
+QWARN : MaxWarnings::warn() 553
+QWARN : MaxWarnings::warn() 554
+QWARN : MaxWarnings::warn() 555
+QWARN : MaxWarnings::warn() 556
+QWARN : MaxWarnings::warn() 557
+QWARN : MaxWarnings::warn() 558
+QWARN : MaxWarnings::warn() 559
+QWARN : MaxWarnings::warn() 560
+QWARN : MaxWarnings::warn() 561
+QWARN : MaxWarnings::warn() 562
+QWARN : MaxWarnings::warn() 563
+QWARN : MaxWarnings::warn() 564
+QWARN : MaxWarnings::warn() 565
+QWARN : MaxWarnings::warn() 566
+QWARN : MaxWarnings::warn() 567
+QWARN : MaxWarnings::warn() 568
+QWARN : MaxWarnings::warn() 569
+QWARN : MaxWarnings::warn() 570
+QWARN : MaxWarnings::warn() 571
+QWARN : MaxWarnings::warn() 572
+QWARN : MaxWarnings::warn() 573
+QWARN : MaxWarnings::warn() 574
+QWARN : MaxWarnings::warn() 575
+QWARN : MaxWarnings::warn() 576
+QWARN : MaxWarnings::warn() 577
+QWARN : MaxWarnings::warn() 578
+QWARN : MaxWarnings::warn() 579
+QWARN : MaxWarnings::warn() 580
+QWARN : MaxWarnings::warn() 581
+QWARN : MaxWarnings::warn() 582
+QWARN : MaxWarnings::warn() 583
+QWARN : MaxWarnings::warn() 584
+QWARN : MaxWarnings::warn() 585
+QWARN : MaxWarnings::warn() 586
+QWARN : MaxWarnings::warn() 587
+QWARN : MaxWarnings::warn() 588
+QWARN : MaxWarnings::warn() 589
+QWARN : MaxWarnings::warn() 590
+QWARN : MaxWarnings::warn() 591
+QWARN : MaxWarnings::warn() 592
+QWARN : MaxWarnings::warn() 593
+QWARN : MaxWarnings::warn() 594
+QWARN : MaxWarnings::warn() 595
+QWARN : MaxWarnings::warn() 596
+QWARN : MaxWarnings::warn() 597
+QWARN : MaxWarnings::warn() 598
+QWARN : MaxWarnings::warn() 599
+QWARN : MaxWarnings::warn() 600
+QWARN : MaxWarnings::warn() 601
+QWARN : MaxWarnings::warn() 602
+QWARN : MaxWarnings::warn() 603
+QWARN : MaxWarnings::warn() 604
+QWARN : MaxWarnings::warn() 605
+QWARN : MaxWarnings::warn() 606
+QWARN : MaxWarnings::warn() 607
+QWARN : MaxWarnings::warn() 608
+QWARN : MaxWarnings::warn() 609
+QWARN : MaxWarnings::warn() 610
+QWARN : MaxWarnings::warn() 611
+QWARN : MaxWarnings::warn() 612
+QWARN : MaxWarnings::warn() 613
+QWARN : MaxWarnings::warn() 614
+QWARN : MaxWarnings::warn() 615
+QWARN : MaxWarnings::warn() 616
+QWARN : MaxWarnings::warn() 617
+QWARN : MaxWarnings::warn() 618
+QWARN : MaxWarnings::warn() 619
+QWARN : MaxWarnings::warn() 620
+QWARN : MaxWarnings::warn() 621
+QWARN : MaxWarnings::warn() 622
+QWARN : MaxWarnings::warn() 623
+QWARN : MaxWarnings::warn() 624
+QWARN : MaxWarnings::warn() 625
+QWARN : MaxWarnings::warn() 626
+QWARN : MaxWarnings::warn() 627
+QWARN : MaxWarnings::warn() 628
+QWARN : MaxWarnings::warn() 629
+QWARN : MaxWarnings::warn() 630
+QWARN : MaxWarnings::warn() 631
+QWARN : MaxWarnings::warn() 632
+QWARN : MaxWarnings::warn() 633
+QWARN : MaxWarnings::warn() 634
+QWARN : MaxWarnings::warn() 635
+QWARN : MaxWarnings::warn() 636
+QWARN : MaxWarnings::warn() 637
+QWARN : MaxWarnings::warn() 638
+QWARN : MaxWarnings::warn() 639
+QWARN : MaxWarnings::warn() 640
+QWARN : MaxWarnings::warn() 641
+QWARN : MaxWarnings::warn() 642
+QWARN : MaxWarnings::warn() 643
+QWARN : MaxWarnings::warn() 644
+QWARN : MaxWarnings::warn() 645
+QWARN : MaxWarnings::warn() 646
+QWARN : MaxWarnings::warn() 647
+QWARN : MaxWarnings::warn() 648
+QWARN : MaxWarnings::warn() 649
+QWARN : MaxWarnings::warn() 650
+QWARN : MaxWarnings::warn() 651
+QWARN : MaxWarnings::warn() 652
+QWARN : MaxWarnings::warn() 653
+QWARN : MaxWarnings::warn() 654
+QWARN : MaxWarnings::warn() 655
+QWARN : MaxWarnings::warn() 656
+QWARN : MaxWarnings::warn() 657
+QWARN : MaxWarnings::warn() 658
+QWARN : MaxWarnings::warn() 659
+QWARN : MaxWarnings::warn() 660
+QWARN : MaxWarnings::warn() 661
+QWARN : MaxWarnings::warn() 662
+QWARN : MaxWarnings::warn() 663
+QWARN : MaxWarnings::warn() 664
+QWARN : MaxWarnings::warn() 665
+QWARN : MaxWarnings::warn() 666
+QWARN : MaxWarnings::warn() 667
+QWARN : MaxWarnings::warn() 668
+QWARN : MaxWarnings::warn() 669
+QWARN : MaxWarnings::warn() 670
+QWARN : MaxWarnings::warn() 671
+QWARN : MaxWarnings::warn() 672
+QWARN : MaxWarnings::warn() 673
+QWARN : MaxWarnings::warn() 674
+QWARN : MaxWarnings::warn() 675
+QWARN : MaxWarnings::warn() 676
+QWARN : MaxWarnings::warn() 677
+QWARN : MaxWarnings::warn() 678
+QWARN : MaxWarnings::warn() 679
+QWARN : MaxWarnings::warn() 680
+QWARN : MaxWarnings::warn() 681
+QWARN : MaxWarnings::warn() 682
+QWARN : MaxWarnings::warn() 683
+QWARN : MaxWarnings::warn() 684
+QWARN : MaxWarnings::warn() 685
+QWARN : MaxWarnings::warn() 686
+QWARN : MaxWarnings::warn() 687
+QWARN : MaxWarnings::warn() 688
+QWARN : MaxWarnings::warn() 689
+QWARN : MaxWarnings::warn() 690
+QWARN : MaxWarnings::warn() 691
+QWARN : MaxWarnings::warn() 692
+QWARN : MaxWarnings::warn() 693
+QWARN : MaxWarnings::warn() 694
+QWARN : MaxWarnings::warn() 695
+QWARN : MaxWarnings::warn() 696
+QWARN : MaxWarnings::warn() 697
+QWARN : MaxWarnings::warn() 698
+QWARN : MaxWarnings::warn() 699
+QWARN : MaxWarnings::warn() 700
+QWARN : MaxWarnings::warn() 701
+QWARN : MaxWarnings::warn() 702
+QWARN : MaxWarnings::warn() 703
+QWARN : MaxWarnings::warn() 704
+QWARN : MaxWarnings::warn() 705
+QWARN : MaxWarnings::warn() 706
+QWARN : MaxWarnings::warn() 707
+QWARN : MaxWarnings::warn() 708
+QWARN : MaxWarnings::warn() 709
+QWARN : MaxWarnings::warn() 710
+QWARN : MaxWarnings::warn() 711
+QWARN : MaxWarnings::warn() 712
+QWARN : MaxWarnings::warn() 713
+QWARN : MaxWarnings::warn() 714
+QWARN : MaxWarnings::warn() 715
+QWARN : MaxWarnings::warn() 716
+QWARN : MaxWarnings::warn() 717
+QWARN : MaxWarnings::warn() 718
+QWARN : MaxWarnings::warn() 719
+QWARN : MaxWarnings::warn() 720
+QWARN : MaxWarnings::warn() 721
+QWARN : MaxWarnings::warn() 722
+QWARN : MaxWarnings::warn() 723
+QWARN : MaxWarnings::warn() 724
+QWARN : MaxWarnings::warn() 725
+QWARN : MaxWarnings::warn() 726
+QWARN : MaxWarnings::warn() 727
+QWARN : MaxWarnings::warn() 728
+QWARN : MaxWarnings::warn() 729
+QWARN : MaxWarnings::warn() 730
+QWARN : MaxWarnings::warn() 731
+QWARN : MaxWarnings::warn() 732
+QWARN : MaxWarnings::warn() 733
+QWARN : MaxWarnings::warn() 734
+QWARN : MaxWarnings::warn() 735
+QWARN : MaxWarnings::warn() 736
+QWARN : MaxWarnings::warn() 737
+QWARN : MaxWarnings::warn() 738
+QWARN : MaxWarnings::warn() 739
+QWARN : MaxWarnings::warn() 740
+QWARN : MaxWarnings::warn() 741
+QWARN : MaxWarnings::warn() 742
+QWARN : MaxWarnings::warn() 743
+QWARN : MaxWarnings::warn() 744
+QWARN : MaxWarnings::warn() 745
+QWARN : MaxWarnings::warn() 746
+QWARN : MaxWarnings::warn() 747
+QWARN : MaxWarnings::warn() 748
+QWARN : MaxWarnings::warn() 749
+QWARN : MaxWarnings::warn() 750
+QWARN : MaxWarnings::warn() 751
+QWARN : MaxWarnings::warn() 752
+QWARN : MaxWarnings::warn() 753
+QWARN : MaxWarnings::warn() 754
+QWARN : MaxWarnings::warn() 755
+QWARN : MaxWarnings::warn() 756
+QWARN : MaxWarnings::warn() 757
+QWARN : MaxWarnings::warn() 758
+QWARN : MaxWarnings::warn() 759
+QWARN : MaxWarnings::warn() 760
+QWARN : MaxWarnings::warn() 761
+QWARN : MaxWarnings::warn() 762
+QWARN : MaxWarnings::warn() 763
+QWARN : MaxWarnings::warn() 764
+QWARN : MaxWarnings::warn() 765
+QWARN : MaxWarnings::warn() 766
+QWARN : MaxWarnings::warn() 767
+QWARN : MaxWarnings::warn() 768
+QWARN : MaxWarnings::warn() 769
+QWARN : MaxWarnings::warn() 770
+QWARN : MaxWarnings::warn() 771
+QWARN : MaxWarnings::warn() 772
+QWARN : MaxWarnings::warn() 773
+QWARN : MaxWarnings::warn() 774
+QWARN : MaxWarnings::warn() 775
+QWARN : MaxWarnings::warn() 776
+QWARN : MaxWarnings::warn() 777
+QWARN : MaxWarnings::warn() 778
+QWARN : MaxWarnings::warn() 779
+QWARN : MaxWarnings::warn() 780
+QWARN : MaxWarnings::warn() 781
+QWARN : MaxWarnings::warn() 782
+QWARN : MaxWarnings::warn() 783
+QWARN : MaxWarnings::warn() 784
+QWARN : MaxWarnings::warn() 785
+QWARN : MaxWarnings::warn() 786
+QWARN : MaxWarnings::warn() 787
+QWARN : MaxWarnings::warn() 788
+QWARN : MaxWarnings::warn() 789
+QWARN : MaxWarnings::warn() 790
+QWARN : MaxWarnings::warn() 791
+QWARN : MaxWarnings::warn() 792
+QWARN : MaxWarnings::warn() 793
+QWARN : MaxWarnings::warn() 794
+QWARN : MaxWarnings::warn() 795
+QWARN : MaxWarnings::warn() 796
+QWARN : MaxWarnings::warn() 797
+QWARN : MaxWarnings::warn() 798
+QWARN : MaxWarnings::warn() 799
+QWARN : MaxWarnings::warn() 800
+QWARN : MaxWarnings::warn() 801
+QWARN : MaxWarnings::warn() 802
+QWARN : MaxWarnings::warn() 803
+QWARN : MaxWarnings::warn() 804
+QWARN : MaxWarnings::warn() 805
+QWARN : MaxWarnings::warn() 806
+QWARN : MaxWarnings::warn() 807
+QWARN : MaxWarnings::warn() 808
+QWARN : MaxWarnings::warn() 809
+QWARN : MaxWarnings::warn() 810
+QWARN : MaxWarnings::warn() 811
+QWARN : MaxWarnings::warn() 812
+QWARN : MaxWarnings::warn() 813
+QWARN : MaxWarnings::warn() 814
+QWARN : MaxWarnings::warn() 815
+QWARN : MaxWarnings::warn() 816
+QWARN : MaxWarnings::warn() 817
+QWARN : MaxWarnings::warn() 818
+QWARN : MaxWarnings::warn() 819
+QWARN : MaxWarnings::warn() 820
+QWARN : MaxWarnings::warn() 821
+QWARN : MaxWarnings::warn() 822
+QWARN : MaxWarnings::warn() 823
+QWARN : MaxWarnings::warn() 824
+QWARN : MaxWarnings::warn() 825
+QWARN : MaxWarnings::warn() 826
+QWARN : MaxWarnings::warn() 827
+QWARN : MaxWarnings::warn() 828
+QWARN : MaxWarnings::warn() 829
+QWARN : MaxWarnings::warn() 830
+QWARN : MaxWarnings::warn() 831
+QWARN : MaxWarnings::warn() 832
+QWARN : MaxWarnings::warn() 833
+QWARN : MaxWarnings::warn() 834
+QWARN : MaxWarnings::warn() 835
+QWARN : MaxWarnings::warn() 836
+QWARN : MaxWarnings::warn() 837
+QWARN : MaxWarnings::warn() 838
+QWARN : MaxWarnings::warn() 839
+QWARN : MaxWarnings::warn() 840
+QWARN : MaxWarnings::warn() 841
+QWARN : MaxWarnings::warn() 842
+QWARN : MaxWarnings::warn() 843
+QWARN : MaxWarnings::warn() 844
+QWARN : MaxWarnings::warn() 845
+QWARN : MaxWarnings::warn() 846
+QWARN : MaxWarnings::warn() 847
+QWARN : MaxWarnings::warn() 848
+QWARN : MaxWarnings::warn() 849
+QWARN : MaxWarnings::warn() 850
+QWARN : MaxWarnings::warn() 851
+QWARN : MaxWarnings::warn() 852
+QWARN : MaxWarnings::warn() 853
+QWARN : MaxWarnings::warn() 854
+QWARN : MaxWarnings::warn() 855
+QWARN : MaxWarnings::warn() 856
+QWARN : MaxWarnings::warn() 857
+QWARN : MaxWarnings::warn() 858
+QWARN : MaxWarnings::warn() 859
+QWARN : MaxWarnings::warn() 860
+QWARN : MaxWarnings::warn() 861
+QWARN : MaxWarnings::warn() 862
+QWARN : MaxWarnings::warn() 863
+QWARN : MaxWarnings::warn() 864
+QWARN : MaxWarnings::warn() 865
+QWARN : MaxWarnings::warn() 866
+QWARN : MaxWarnings::warn() 867
+QWARN : MaxWarnings::warn() 868
+QWARN : MaxWarnings::warn() 869
+QWARN : MaxWarnings::warn() 870
+QWARN : MaxWarnings::warn() 871
+QWARN : MaxWarnings::warn() 872
+QWARN : MaxWarnings::warn() 873
+QWARN : MaxWarnings::warn() 874
+QWARN : MaxWarnings::warn() 875
+QWARN : MaxWarnings::warn() 876
+QWARN : MaxWarnings::warn() 877
+QWARN : MaxWarnings::warn() 878
+QWARN : MaxWarnings::warn() 879
+QWARN : MaxWarnings::warn() 880
+QWARN : MaxWarnings::warn() 881
+QWARN : MaxWarnings::warn() 882
+QWARN : MaxWarnings::warn() 883
+QWARN : MaxWarnings::warn() 884
+QWARN : MaxWarnings::warn() 885
+QWARN : MaxWarnings::warn() 886
+QWARN : MaxWarnings::warn() 887
+QWARN : MaxWarnings::warn() 888
+QWARN : MaxWarnings::warn() 889
+QWARN : MaxWarnings::warn() 890
+QWARN : MaxWarnings::warn() 891
+QWARN : MaxWarnings::warn() 892
+QWARN : MaxWarnings::warn() 893
+QWARN : MaxWarnings::warn() 894
+QWARN : MaxWarnings::warn() 895
+QWARN : MaxWarnings::warn() 896
+QWARN : MaxWarnings::warn() 897
+QWARN : MaxWarnings::warn() 898
+QWARN : MaxWarnings::warn() 899
+QWARN : MaxWarnings::warn() 900
+QWARN : MaxWarnings::warn() 901
+QWARN : MaxWarnings::warn() 902
+QWARN : MaxWarnings::warn() 903
+QWARN : MaxWarnings::warn() 904
+QWARN : MaxWarnings::warn() 905
+QWARN : MaxWarnings::warn() 906
+QWARN : MaxWarnings::warn() 907
+QWARN : MaxWarnings::warn() 908
+QWARN : MaxWarnings::warn() 909
+QWARN : MaxWarnings::warn() 910
+QWARN : MaxWarnings::warn() 911
+QWARN : MaxWarnings::warn() 912
+QWARN : MaxWarnings::warn() 913
+QWARN : MaxWarnings::warn() 914
+QWARN : MaxWarnings::warn() 915
+QWARN : MaxWarnings::warn() 916
+QWARN : MaxWarnings::warn() 917
+QWARN : MaxWarnings::warn() 918
+QWARN : MaxWarnings::warn() 919
+QWARN : MaxWarnings::warn() 920
+QWARN : MaxWarnings::warn() 921
+QWARN : MaxWarnings::warn() 922
+QWARN : MaxWarnings::warn() 923
+QWARN : MaxWarnings::warn() 924
+QWARN : MaxWarnings::warn() 925
+QWARN : MaxWarnings::warn() 926
+QWARN : MaxWarnings::warn() 927
+QWARN : MaxWarnings::warn() 928
+QWARN : MaxWarnings::warn() 929
+QWARN : MaxWarnings::warn() 930
+QWARN : MaxWarnings::warn() 931
+QWARN : MaxWarnings::warn() 932
+QWARN : MaxWarnings::warn() 933
+QWARN : MaxWarnings::warn() 934
+QWARN : MaxWarnings::warn() 935
+QWARN : MaxWarnings::warn() 936
+QWARN : MaxWarnings::warn() 937
+QWARN : MaxWarnings::warn() 938
+QWARN : MaxWarnings::warn() 939
+QWARN : MaxWarnings::warn() 940
+QWARN : MaxWarnings::warn() 941
+QWARN : MaxWarnings::warn() 942
+QWARN : MaxWarnings::warn() 943
+QWARN : MaxWarnings::warn() 944
+QWARN : MaxWarnings::warn() 945
+QWARN : MaxWarnings::warn() 946
+QWARN : MaxWarnings::warn() 947
+QWARN : MaxWarnings::warn() 948
+QWARN : MaxWarnings::warn() 949
+QWARN : MaxWarnings::warn() 950
+QWARN : MaxWarnings::warn() 951
+QWARN : MaxWarnings::warn() 952
+QWARN : MaxWarnings::warn() 953
+QWARN : MaxWarnings::warn() 954
+QWARN : MaxWarnings::warn() 955
+QWARN : MaxWarnings::warn() 956
+QWARN : MaxWarnings::warn() 957
+QWARN : MaxWarnings::warn() 958
+QWARN : MaxWarnings::warn() 959
+QWARN : MaxWarnings::warn() 960
+QWARN : MaxWarnings::warn() 961
+QWARN : MaxWarnings::warn() 962
+QWARN : MaxWarnings::warn() 963
+QWARN : MaxWarnings::warn() 964
+QWARN : MaxWarnings::warn() 965
+QWARN : MaxWarnings::warn() 966
+QWARN : MaxWarnings::warn() 967
+QWARN : MaxWarnings::warn() 968
+QWARN : MaxWarnings::warn() 969
+QWARN : MaxWarnings::warn() 970
+QWARN : MaxWarnings::warn() 971
+QWARN : MaxWarnings::warn() 972
+QWARN : MaxWarnings::warn() 973
+QWARN : MaxWarnings::warn() 974
+QWARN : MaxWarnings::warn() 975
+QWARN : MaxWarnings::warn() 976
+QWARN : MaxWarnings::warn() 977
+QWARN : MaxWarnings::warn() 978
+QWARN : MaxWarnings::warn() 979
+QWARN : MaxWarnings::warn() 980
+QWARN : MaxWarnings::warn() 981
+QWARN : MaxWarnings::warn() 982
+QWARN : MaxWarnings::warn() 983
+QWARN : MaxWarnings::warn() 984
+QWARN : MaxWarnings::warn() 985
+QWARN : MaxWarnings::warn() 986
+QWARN : MaxWarnings::warn() 987
+QWARN : MaxWarnings::warn() 988
+QWARN : MaxWarnings::warn() 989
+QWARN : MaxWarnings::warn() 990
+QWARN : MaxWarnings::warn() 991
+QWARN : MaxWarnings::warn() 992
+QWARN : MaxWarnings::warn() 993
+QWARN : MaxWarnings::warn() 994
+QWARN : MaxWarnings::warn() 995
+QWARN : MaxWarnings::warn() 996
+QWARN : MaxWarnings::warn() 997
+QWARN : MaxWarnings::warn() 998
+QWARN : MaxWarnings::warn() 999
+QWARN : MaxWarnings::warn() 1000
+QWARN : MaxWarnings::warn() 1001
+QWARN : MaxWarnings::warn() 1002
+QWARN : MaxWarnings::warn() 1003
+QWARN : MaxWarnings::warn() 1004
+QWARN : MaxWarnings::warn() 1005
+QWARN : MaxWarnings::warn() 1006
+QWARN : MaxWarnings::warn() 1007
+QWARN : MaxWarnings::warn() 1008
+QWARN : MaxWarnings::warn() 1009
+QWARN : MaxWarnings::warn() 1010
+QWARN : MaxWarnings::warn() 1011
+QWARN : MaxWarnings::warn() 1012
+QWARN : MaxWarnings::warn() 1013
+QWARN : MaxWarnings::warn() 1014
+QWARN : MaxWarnings::warn() 1015
+QWARN : MaxWarnings::warn() 1016
+QWARN : MaxWarnings::warn() 1017
+QWARN : MaxWarnings::warn() 1018
+QWARN : MaxWarnings::warn() 1019
+QWARN : MaxWarnings::warn() 1020
+QWARN : MaxWarnings::warn() 1021
+QWARN : MaxWarnings::warn() 1022
+QWARN : MaxWarnings::warn() 1023
+QWARN : MaxWarnings::warn() 1024
+QWARN : MaxWarnings::warn() 1025
+QWARN : MaxWarnings::warn() 1026
+QWARN : MaxWarnings::warn() 1027
+QWARN : MaxWarnings::warn() 1028
+QWARN : MaxWarnings::warn() 1029
+QWARN : MaxWarnings::warn() 1030
+QWARN : MaxWarnings::warn() 1031
+QWARN : MaxWarnings::warn() 1032
+QWARN : MaxWarnings::warn() 1033
+QWARN : MaxWarnings::warn() 1034
+QWARN : MaxWarnings::warn() 1035
+QWARN : MaxWarnings::warn() 1036
+QWARN : MaxWarnings::warn() 1037
+QWARN : MaxWarnings::warn() 1038
+QWARN : MaxWarnings::warn() 1039
+QWARN : MaxWarnings::warn() 1040
+QWARN : MaxWarnings::warn() 1041
+QWARN : MaxWarnings::warn() 1042
+QWARN : MaxWarnings::warn() 1043
+QWARN : MaxWarnings::warn() 1044
+QWARN : MaxWarnings::warn() 1045
+QWARN : MaxWarnings::warn() 1046
+QWARN : MaxWarnings::warn() 1047
+QWARN : MaxWarnings::warn() 1048
+QWARN : MaxWarnings::warn() 1049
+QWARN : MaxWarnings::warn() 1050
+QWARN : MaxWarnings::warn() 1051
+QWARN : MaxWarnings::warn() 1052
+QWARN : MaxWarnings::warn() 1053
+QWARN : MaxWarnings::warn() 1054
+QWARN : MaxWarnings::warn() 1055
+QWARN : MaxWarnings::warn() 1056
+QWARN : MaxWarnings::warn() 1057
+QWARN : MaxWarnings::warn() 1058
+QWARN : MaxWarnings::warn() 1059
+QWARN : MaxWarnings::warn() 1060
+QWARN : MaxWarnings::warn() 1061
+QWARN : MaxWarnings::warn() 1062
+QWARN : MaxWarnings::warn() 1063
+QWARN : MaxWarnings::warn() 1064
+QWARN : MaxWarnings::warn() 1065
+QWARN : MaxWarnings::warn() 1066
+QWARN : MaxWarnings::warn() 1067
+QWARN : MaxWarnings::warn() 1068
+QWARN : MaxWarnings::warn() 1069
+QWARN : MaxWarnings::warn() 1070
+QWARN : MaxWarnings::warn() 1071
+QWARN : MaxWarnings::warn() 1072
+QWARN : MaxWarnings::warn() 1073
+QWARN : MaxWarnings::warn() 1074
+QWARN : MaxWarnings::warn() 1075
+QWARN : MaxWarnings::warn() 1076
+QWARN : MaxWarnings::warn() 1077
+QWARN : MaxWarnings::warn() 1078
+QWARN : MaxWarnings::warn() 1079
+QWARN : MaxWarnings::warn() 1080
+QWARN : MaxWarnings::warn() 1081
+QWARN : MaxWarnings::warn() 1082
+QWARN : MaxWarnings::warn() 1083
+QWARN : MaxWarnings::warn() 1084
+QWARN : MaxWarnings::warn() 1085
+QWARN : MaxWarnings::warn() 1086
+QWARN : MaxWarnings::warn() 1087
+QWARN : MaxWarnings::warn() 1088
+QWARN : MaxWarnings::warn() 1089
+QWARN : MaxWarnings::warn() 1090
+QWARN : MaxWarnings::warn() 1091
+QWARN : MaxWarnings::warn() 1092
+QWARN : MaxWarnings::warn() 1093
+QWARN : MaxWarnings::warn() 1094
+QWARN : MaxWarnings::warn() 1095
+QWARN : MaxWarnings::warn() 1096
+QWARN : MaxWarnings::warn() 1097
+QWARN : MaxWarnings::warn() 1098
+QWARN : MaxWarnings::warn() 1099
+QWARN : MaxWarnings::warn() 1100
+QWARN : MaxWarnings::warn() 1101
+QWARN : MaxWarnings::warn() 1102
+QWARN : MaxWarnings::warn() 1103
+QWARN : MaxWarnings::warn() 1104
+QWARN : MaxWarnings::warn() 1105
+QWARN : MaxWarnings::warn() 1106
+QWARN : MaxWarnings::warn() 1107
+QWARN : MaxWarnings::warn() 1108
+QWARN : MaxWarnings::warn() 1109
+QWARN : MaxWarnings::warn() 1110
+QWARN : MaxWarnings::warn() 1111
+QWARN : MaxWarnings::warn() 1112
+QWARN : MaxWarnings::warn() 1113
+QWARN : MaxWarnings::warn() 1114
+QWARN : MaxWarnings::warn() 1115
+QWARN : MaxWarnings::warn() 1116
+QWARN : MaxWarnings::warn() 1117
+QWARN : MaxWarnings::warn() 1118
+QWARN : MaxWarnings::warn() 1119
+QWARN : MaxWarnings::warn() 1120
+QWARN : MaxWarnings::warn() 1121
+QWARN : MaxWarnings::warn() 1122
+QWARN : MaxWarnings::warn() 1123
+QWARN : MaxWarnings::warn() 1124
+QWARN : MaxWarnings::warn() 1125
+QWARN : MaxWarnings::warn() 1126
+QWARN : MaxWarnings::warn() 1127
+QWARN : MaxWarnings::warn() 1128
+QWARN : MaxWarnings::warn() 1129
+QWARN : MaxWarnings::warn() 1130
+QWARN : MaxWarnings::warn() 1131
+QWARN : MaxWarnings::warn() 1132
+QWARN : MaxWarnings::warn() 1133
+QWARN : MaxWarnings::warn() 1134
+QWARN : MaxWarnings::warn() 1135
+QWARN : MaxWarnings::warn() 1136
+QWARN : MaxWarnings::warn() 1137
+QWARN : MaxWarnings::warn() 1138
+QWARN : MaxWarnings::warn() 1139
+QWARN : MaxWarnings::warn() 1140
+QWARN : MaxWarnings::warn() 1141
+QWARN : MaxWarnings::warn() 1142
+QWARN : MaxWarnings::warn() 1143
+QWARN : MaxWarnings::warn() 1144
+QWARN : MaxWarnings::warn() 1145
+QWARN : MaxWarnings::warn() 1146
+QWARN : MaxWarnings::warn() 1147
+QWARN : MaxWarnings::warn() 1148
+QWARN : MaxWarnings::warn() 1149
+QWARN : MaxWarnings::warn() 1150
+QWARN : MaxWarnings::warn() 1151
+QWARN : MaxWarnings::warn() 1152
+QWARN : MaxWarnings::warn() 1153
+QWARN : MaxWarnings::warn() 1154
+QWARN : MaxWarnings::warn() 1155
+QWARN : MaxWarnings::warn() 1156
+QWARN : MaxWarnings::warn() 1157
+QWARN : MaxWarnings::warn() 1158
+QWARN : MaxWarnings::warn() 1159
+QWARN : MaxWarnings::warn() 1160
+QWARN : MaxWarnings::warn() 1161
+QWARN : MaxWarnings::warn() 1162
+QWARN : MaxWarnings::warn() 1163
+QWARN : MaxWarnings::warn() 1164
+QWARN : MaxWarnings::warn() 1165
+QWARN : MaxWarnings::warn() 1166
+QWARN : MaxWarnings::warn() 1167
+QWARN : MaxWarnings::warn() 1168
+QWARN : MaxWarnings::warn() 1169
+QWARN : MaxWarnings::warn() 1170
+QWARN : MaxWarnings::warn() 1171
+QWARN : MaxWarnings::warn() 1172
+QWARN : MaxWarnings::warn() 1173
+QWARN : MaxWarnings::warn() 1174
+QWARN : MaxWarnings::warn() 1175
+QWARN : MaxWarnings::warn() 1176
+QWARN : MaxWarnings::warn() 1177
+QWARN : MaxWarnings::warn() 1178
+QWARN : MaxWarnings::warn() 1179
+QWARN : MaxWarnings::warn() 1180
+QWARN : MaxWarnings::warn() 1181
+QWARN : MaxWarnings::warn() 1182
+QWARN : MaxWarnings::warn() 1183
+QWARN : MaxWarnings::warn() 1184
+QWARN : MaxWarnings::warn() 1185
+QWARN : MaxWarnings::warn() 1186
+QWARN : MaxWarnings::warn() 1187
+QWARN : MaxWarnings::warn() 1188
+QWARN : MaxWarnings::warn() 1189
+QWARN : MaxWarnings::warn() 1190
+QWARN : MaxWarnings::warn() 1191
+QWARN : MaxWarnings::warn() 1192
+QWARN : MaxWarnings::warn() 1193
+QWARN : MaxWarnings::warn() 1194
+QWARN : MaxWarnings::warn() 1195
+QWARN : MaxWarnings::warn() 1196
+QWARN : MaxWarnings::warn() 1197
+QWARN : MaxWarnings::warn() 1198
+QWARN : MaxWarnings::warn() 1199
+QWARN : MaxWarnings::warn() 1200
+QWARN : MaxWarnings::warn() 1201
+QWARN : MaxWarnings::warn() 1202
+QWARN : MaxWarnings::warn() 1203
+QWARN : MaxWarnings::warn() 1204
+QWARN : MaxWarnings::warn() 1205
+QWARN : MaxWarnings::warn() 1206
+QWARN : MaxWarnings::warn() 1207
+QWARN : MaxWarnings::warn() 1208
+QWARN : MaxWarnings::warn() 1209
+QWARN : MaxWarnings::warn() 1210
+QWARN : MaxWarnings::warn() 1211
+QWARN : MaxWarnings::warn() 1212
+QWARN : MaxWarnings::warn() 1213
+QWARN : MaxWarnings::warn() 1214
+QWARN : MaxWarnings::warn() 1215
+QWARN : MaxWarnings::warn() 1216
+QWARN : MaxWarnings::warn() 1217
+QWARN : MaxWarnings::warn() 1218
+QWARN : MaxWarnings::warn() 1219
+QWARN : MaxWarnings::warn() 1220
+QWARN : MaxWarnings::warn() 1221
+QWARN : MaxWarnings::warn() 1222
+QWARN : MaxWarnings::warn() 1223
+QWARN : MaxWarnings::warn() 1224
+QWARN : MaxWarnings::warn() 1225
+QWARN : MaxWarnings::warn() 1226
+QWARN : MaxWarnings::warn() 1227
+QWARN : MaxWarnings::warn() 1228
+QWARN : MaxWarnings::warn() 1229
+QWARN : MaxWarnings::warn() 1230
+QWARN : MaxWarnings::warn() 1231
+QWARN : MaxWarnings::warn() 1232
+QWARN : MaxWarnings::warn() 1233
+QWARN : MaxWarnings::warn() 1234
+QWARN : MaxWarnings::warn() 1235
+QWARN : MaxWarnings::warn() 1236
+QWARN : MaxWarnings::warn() 1237
+QWARN : MaxWarnings::warn() 1238
+QWARN : MaxWarnings::warn() 1239
+QWARN : MaxWarnings::warn() 1240
+QWARN : MaxWarnings::warn() 1241
+QWARN : MaxWarnings::warn() 1242
+QWARN : MaxWarnings::warn() 1243
+QWARN : MaxWarnings::warn() 1244
+QWARN : MaxWarnings::warn() 1245
+QWARN : MaxWarnings::warn() 1246
+QWARN : MaxWarnings::warn() 1247
+QWARN : MaxWarnings::warn() 1248
+QWARN : MaxWarnings::warn() 1249
+QWARN : MaxWarnings::warn() 1250
+QWARN : MaxWarnings::warn() 1251
+QWARN : MaxWarnings::warn() 1252
+QWARN : MaxWarnings::warn() 1253
+QWARN : MaxWarnings::warn() 1254
+QWARN : MaxWarnings::warn() 1255
+QWARN : MaxWarnings::warn() 1256
+QWARN : MaxWarnings::warn() 1257
+QWARN : MaxWarnings::warn() 1258
+QWARN : MaxWarnings::warn() 1259
+QWARN : MaxWarnings::warn() 1260
+QWARN : MaxWarnings::warn() 1261
+QWARN : MaxWarnings::warn() 1262
+QWARN : MaxWarnings::warn() 1263
+QWARN : MaxWarnings::warn() 1264
+QWARN : MaxWarnings::warn() 1265
+QWARN : MaxWarnings::warn() 1266
+QWARN : MaxWarnings::warn() 1267
+QWARN : MaxWarnings::warn() 1268
+QWARN : MaxWarnings::warn() 1269
+QWARN : MaxWarnings::warn() 1270
+QWARN : MaxWarnings::warn() 1271
+QWARN : MaxWarnings::warn() 1272
+QWARN : MaxWarnings::warn() 1273
+QWARN : MaxWarnings::warn() 1274
+QWARN : MaxWarnings::warn() 1275
+QWARN : MaxWarnings::warn() 1276
+QWARN : MaxWarnings::warn() 1277
+QWARN : MaxWarnings::warn() 1278
+QWARN : MaxWarnings::warn() 1279
+QWARN : MaxWarnings::warn() 1280
+QWARN : MaxWarnings::warn() 1281
+QWARN : MaxWarnings::warn() 1282
+QWARN : MaxWarnings::warn() 1283
+QWARN : MaxWarnings::warn() 1284
+QWARN : MaxWarnings::warn() 1285
+QWARN : MaxWarnings::warn() 1286
+QWARN : MaxWarnings::warn() 1287
+QWARN : MaxWarnings::warn() 1288
+QWARN : MaxWarnings::warn() 1289
+QWARN : MaxWarnings::warn() 1290
+QWARN : MaxWarnings::warn() 1291
+QWARN : MaxWarnings::warn() 1292
+QWARN : MaxWarnings::warn() 1293
+QWARN : MaxWarnings::warn() 1294
+QWARN : MaxWarnings::warn() 1295
+QWARN : MaxWarnings::warn() 1296
+QWARN : MaxWarnings::warn() 1297
+QWARN : MaxWarnings::warn() 1298
+QWARN : MaxWarnings::warn() 1299
+QWARN : MaxWarnings::warn() 1300
+QWARN : MaxWarnings::warn() 1301
+QWARN : MaxWarnings::warn() 1302
+QWARN : MaxWarnings::warn() 1303
+QWARN : MaxWarnings::warn() 1304
+QWARN : MaxWarnings::warn() 1305
+QWARN : MaxWarnings::warn() 1306
+QWARN : MaxWarnings::warn() 1307
+QWARN : MaxWarnings::warn() 1308
+QWARN : MaxWarnings::warn() 1309
+QWARN : MaxWarnings::warn() 1310
+QWARN : MaxWarnings::warn() 1311
+QWARN : MaxWarnings::warn() 1312
+QWARN : MaxWarnings::warn() 1313
+QWARN : MaxWarnings::warn() 1314
+QWARN : MaxWarnings::warn() 1315
+QWARN : MaxWarnings::warn() 1316
+QWARN : MaxWarnings::warn() 1317
+QWARN : MaxWarnings::warn() 1318
+QWARN : MaxWarnings::warn() 1319
+QWARN : MaxWarnings::warn() 1320
+QWARN : MaxWarnings::warn() 1321
+QWARN : MaxWarnings::warn() 1322
+QWARN : MaxWarnings::warn() 1323
+QWARN : MaxWarnings::warn() 1324
+QWARN : MaxWarnings::warn() 1325
+QWARN : MaxWarnings::warn() 1326
+QWARN : MaxWarnings::warn() 1327
+QWARN : MaxWarnings::warn() 1328
+QWARN : MaxWarnings::warn() 1329
+QWARN : MaxWarnings::warn() 1330
+QWARN : MaxWarnings::warn() 1331
+QWARN : MaxWarnings::warn() 1332
+QWARN : MaxWarnings::warn() 1333
+QWARN : MaxWarnings::warn() 1334
+QWARN : MaxWarnings::warn() 1335
+QWARN : MaxWarnings::warn() 1336
+QWARN : MaxWarnings::warn() 1337
+QWARN : MaxWarnings::warn() 1338
+QWARN : MaxWarnings::warn() 1339
+QWARN : MaxWarnings::warn() 1340
+QWARN : MaxWarnings::warn() 1341
+QWARN : MaxWarnings::warn() 1342
+QWARN : MaxWarnings::warn() 1343
+QWARN : MaxWarnings::warn() 1344
+QWARN : MaxWarnings::warn() 1345
+QWARN : MaxWarnings::warn() 1346
+QWARN : MaxWarnings::warn() 1347
+QWARN : MaxWarnings::warn() 1348
+QWARN : MaxWarnings::warn() 1349
+QWARN : MaxWarnings::warn() 1350
+QWARN : MaxWarnings::warn() 1351
+QWARN : MaxWarnings::warn() 1352
+QWARN : MaxWarnings::warn() 1353
+QWARN : MaxWarnings::warn() 1354
+QWARN : MaxWarnings::warn() 1355
+QWARN : MaxWarnings::warn() 1356
+QWARN : MaxWarnings::warn() 1357
+QWARN : MaxWarnings::warn() 1358
+QWARN : MaxWarnings::warn() 1359
+QWARN : MaxWarnings::warn() 1360
+QWARN : MaxWarnings::warn() 1361
+QWARN : MaxWarnings::warn() 1362
+QWARN : MaxWarnings::warn() 1363
+QWARN : MaxWarnings::warn() 1364
+QWARN : MaxWarnings::warn() 1365
+QWARN : MaxWarnings::warn() 1366
+QWARN : MaxWarnings::warn() 1367
+QWARN : MaxWarnings::warn() 1368
+QWARN : MaxWarnings::warn() 1369
+QWARN : MaxWarnings::warn() 1370
+QWARN : MaxWarnings::warn() 1371
+QWARN : MaxWarnings::warn() 1372
+QWARN : MaxWarnings::warn() 1373
+QWARN : MaxWarnings::warn() 1374
+QWARN : MaxWarnings::warn() 1375
+QWARN : MaxWarnings::warn() 1376
+QWARN : MaxWarnings::warn() 1377
+QWARN : MaxWarnings::warn() 1378
+QWARN : MaxWarnings::warn() 1379
+QWARN : MaxWarnings::warn() 1380
+QWARN : MaxWarnings::warn() 1381
+QWARN : MaxWarnings::warn() 1382
+QWARN : MaxWarnings::warn() 1383
+QWARN : MaxWarnings::warn() 1384
+QWARN : MaxWarnings::warn() 1385
+QWARN : MaxWarnings::warn() 1386
+QWARN : MaxWarnings::warn() 1387
+QWARN : MaxWarnings::warn() 1388
+QWARN : MaxWarnings::warn() 1389
+QWARN : MaxWarnings::warn() 1390
+QWARN : MaxWarnings::warn() 1391
+QWARN : MaxWarnings::warn() 1392
+QWARN : MaxWarnings::warn() 1393
+QWARN : MaxWarnings::warn() 1394
+QWARN : MaxWarnings::warn() 1395
+QWARN : MaxWarnings::warn() 1396
+QWARN : MaxWarnings::warn() 1397
+QWARN : MaxWarnings::warn() 1398
+QWARN : MaxWarnings::warn() 1399
+QWARN : MaxWarnings::warn() 1400
+QWARN : MaxWarnings::warn() 1401
+QWARN : MaxWarnings::warn() 1402
+QWARN : MaxWarnings::warn() 1403
+QWARN : MaxWarnings::warn() 1404
+QWARN : MaxWarnings::warn() 1405
+QWARN : MaxWarnings::warn() 1406
+QWARN : MaxWarnings::warn() 1407
+QWARN : MaxWarnings::warn() 1408
+QWARN : MaxWarnings::warn() 1409
+QWARN : MaxWarnings::warn() 1410
+QWARN : MaxWarnings::warn() 1411
+QWARN : MaxWarnings::warn() 1412
+QWARN : MaxWarnings::warn() 1413
+QWARN : MaxWarnings::warn() 1414
+QWARN : MaxWarnings::warn() 1415
+QWARN : MaxWarnings::warn() 1416
+QWARN : MaxWarnings::warn() 1417
+QWARN : MaxWarnings::warn() 1418
+QWARN : MaxWarnings::warn() 1419
+QWARN : MaxWarnings::warn() 1420
+QWARN : MaxWarnings::warn() 1421
+QWARN : MaxWarnings::warn() 1422
+QWARN : MaxWarnings::warn() 1423
+QWARN : MaxWarnings::warn() 1424
+QWARN : MaxWarnings::warn() 1425
+QWARN : MaxWarnings::warn() 1426
+QWARN : MaxWarnings::warn() 1427
+QWARN : MaxWarnings::warn() 1428
+QWARN : MaxWarnings::warn() 1429
+QWARN : MaxWarnings::warn() 1430
+QWARN : MaxWarnings::warn() 1431
+QWARN : MaxWarnings::warn() 1432
+QWARN : MaxWarnings::warn() 1433
+QWARN : MaxWarnings::warn() 1434
+QWARN : MaxWarnings::warn() 1435
+QWARN : MaxWarnings::warn() 1436
+QWARN : MaxWarnings::warn() 1437
+QWARN : MaxWarnings::warn() 1438
+QWARN : MaxWarnings::warn() 1439
+QWARN : MaxWarnings::warn() 1440
+QWARN : MaxWarnings::warn() 1441
+QWARN : MaxWarnings::warn() 1442
+QWARN : MaxWarnings::warn() 1443
+QWARN : MaxWarnings::warn() 1444
+QWARN : MaxWarnings::warn() 1445
+QWARN : MaxWarnings::warn() 1446
+QWARN : MaxWarnings::warn() 1447
+QWARN : MaxWarnings::warn() 1448
+QWARN : MaxWarnings::warn() 1449
+QWARN : MaxWarnings::warn() 1450
+QWARN : MaxWarnings::warn() 1451
+QWARN : MaxWarnings::warn() 1452
+QWARN : MaxWarnings::warn() 1453
+QWARN : MaxWarnings::warn() 1454
+QWARN : MaxWarnings::warn() 1455
+QWARN : MaxWarnings::warn() 1456
+QWARN : MaxWarnings::warn() 1457
+QWARN : MaxWarnings::warn() 1458
+QWARN : MaxWarnings::warn() 1459
+QWARN : MaxWarnings::warn() 1460
+QWARN : MaxWarnings::warn() 1461
+QWARN : MaxWarnings::warn() 1462
+QWARN : MaxWarnings::warn() 1463
+QWARN : MaxWarnings::warn() 1464
+QWARN : MaxWarnings::warn() 1465
+QWARN : MaxWarnings::warn() 1466
+QWARN : MaxWarnings::warn() 1467
+QWARN : MaxWarnings::warn() 1468
+QWARN : MaxWarnings::warn() 1469
+QWARN : MaxWarnings::warn() 1470
+QWARN : MaxWarnings::warn() 1471
+QWARN : MaxWarnings::warn() 1472
+QWARN : MaxWarnings::warn() 1473
+QWARN : MaxWarnings::warn() 1474
+QWARN : MaxWarnings::warn() 1475
+QWARN : MaxWarnings::warn() 1476
+QWARN : MaxWarnings::warn() 1477
+QWARN : MaxWarnings::warn() 1478
+QWARN : MaxWarnings::warn() 1479
+QWARN : MaxWarnings::warn() 1480
+QWARN : MaxWarnings::warn() 1481
+QWARN : MaxWarnings::warn() 1482
+QWARN : MaxWarnings::warn() 1483
+QWARN : MaxWarnings::warn() 1484
+QWARN : MaxWarnings::warn() 1485
+QWARN : MaxWarnings::warn() 1486
+QWARN : MaxWarnings::warn() 1487
+QWARN : MaxWarnings::warn() 1488
+QWARN : MaxWarnings::warn() 1489
+QWARN : MaxWarnings::warn() 1490
+QWARN : MaxWarnings::warn() 1491
+QWARN : MaxWarnings::warn() 1492
+QWARN : MaxWarnings::warn() 1493
+QWARN : MaxWarnings::warn() 1494
+QWARN : MaxWarnings::warn() 1495
+QWARN : MaxWarnings::warn() 1496
+QWARN : MaxWarnings::warn() 1497
+QWARN : MaxWarnings::warn() 1498
+QWARN : MaxWarnings::warn() 1499
+QWARN : MaxWarnings::warn() 1500
+QWARN : MaxWarnings::warn() 1501
+QWARN : MaxWarnings::warn() 1502
+QWARN : MaxWarnings::warn() 1503
+QWARN : MaxWarnings::warn() 1504
+QWARN : MaxWarnings::warn() 1505
+QWARN : MaxWarnings::warn() 1506
+QWARN : MaxWarnings::warn() 1507
+QWARN : MaxWarnings::warn() 1508
+QWARN : MaxWarnings::warn() 1509
+QWARN : MaxWarnings::warn() 1510
+QWARN : MaxWarnings::warn() 1511
+QWARN : MaxWarnings::warn() 1512
+QWARN : MaxWarnings::warn() 1513
+QWARN : MaxWarnings::warn() 1514
+QWARN : MaxWarnings::warn() 1515
+QWARN : MaxWarnings::warn() 1516
+QWARN : MaxWarnings::warn() 1517
+QWARN : MaxWarnings::warn() 1518
+QWARN : MaxWarnings::warn() 1519
+QWARN : MaxWarnings::warn() 1520
+QWARN : MaxWarnings::warn() 1521
+QWARN : MaxWarnings::warn() 1522
+QWARN : MaxWarnings::warn() 1523
+QWARN : MaxWarnings::warn() 1524
+QWARN : MaxWarnings::warn() 1525
+QWARN : MaxWarnings::warn() 1526
+QWARN : MaxWarnings::warn() 1527
+QWARN : MaxWarnings::warn() 1528
+QWARN : MaxWarnings::warn() 1529
+QWARN : MaxWarnings::warn() 1530
+QWARN : MaxWarnings::warn() 1531
+QWARN : MaxWarnings::warn() 1532
+QWARN : MaxWarnings::warn() 1533
+QWARN : MaxWarnings::warn() 1534
+QWARN : MaxWarnings::warn() 1535
+QWARN : MaxWarnings::warn() 1536
+QWARN : MaxWarnings::warn() 1537
+QWARN : MaxWarnings::warn() 1538
+QWARN : MaxWarnings::warn() 1539
+QWARN : MaxWarnings::warn() 1540
+QWARN : MaxWarnings::warn() 1541
+QWARN : MaxWarnings::warn() 1542
+QWARN : MaxWarnings::warn() 1543
+QWARN : MaxWarnings::warn() 1544
+QWARN : MaxWarnings::warn() 1545
+QWARN : MaxWarnings::warn() 1546
+QWARN : MaxWarnings::warn() 1547
+QWARN : MaxWarnings::warn() 1548
+QWARN : MaxWarnings::warn() 1549
+QWARN : MaxWarnings::warn() 1550
+QWARN : MaxWarnings::warn() 1551
+QWARN : MaxWarnings::warn() 1552
+QWARN : MaxWarnings::warn() 1553
+QWARN : MaxWarnings::warn() 1554
+QWARN : MaxWarnings::warn() 1555
+QWARN : MaxWarnings::warn() 1556
+QWARN : MaxWarnings::warn() 1557
+QWARN : MaxWarnings::warn() 1558
+QWARN : MaxWarnings::warn() 1559
+QWARN : MaxWarnings::warn() 1560
+QWARN : MaxWarnings::warn() 1561
+QWARN : MaxWarnings::warn() 1562
+QWARN : MaxWarnings::warn() 1563
+QWARN : MaxWarnings::warn() 1564
+QWARN : MaxWarnings::warn() 1565
+QWARN : MaxWarnings::warn() 1566
+QWARN : MaxWarnings::warn() 1567
+QWARN : MaxWarnings::warn() 1568
+QWARN : MaxWarnings::warn() 1569
+QWARN : MaxWarnings::warn() 1570
+QWARN : MaxWarnings::warn() 1571
+QWARN : MaxWarnings::warn() 1572
+QWARN : MaxWarnings::warn() 1573
+QWARN : MaxWarnings::warn() 1574
+QWARN : MaxWarnings::warn() 1575
+QWARN : MaxWarnings::warn() 1576
+QWARN : MaxWarnings::warn() 1577
+QWARN : MaxWarnings::warn() 1578
+QWARN : MaxWarnings::warn() 1579
+QWARN : MaxWarnings::warn() 1580
+QWARN : MaxWarnings::warn() 1581
+QWARN : MaxWarnings::warn() 1582
+QWARN : MaxWarnings::warn() 1583
+QWARN : MaxWarnings::warn() 1584
+QWARN : MaxWarnings::warn() 1585
+QWARN : MaxWarnings::warn() 1586
+QWARN : MaxWarnings::warn() 1587
+QWARN : MaxWarnings::warn() 1588
+QWARN : MaxWarnings::warn() 1589
+QWARN : MaxWarnings::warn() 1590
+QWARN : MaxWarnings::warn() 1591
+QWARN : MaxWarnings::warn() 1592
+QWARN : MaxWarnings::warn() 1593
+QWARN : MaxWarnings::warn() 1594
+QWARN : MaxWarnings::warn() 1595
+QWARN : MaxWarnings::warn() 1596
+QWARN : MaxWarnings::warn() 1597
+QWARN : MaxWarnings::warn() 1598
+QWARN : MaxWarnings::warn() 1599
+QWARN : MaxWarnings::warn() 1600
+QWARN : MaxWarnings::warn() 1601
+QWARN : MaxWarnings::warn() 1602
+QWARN : MaxWarnings::warn() 1603
+QWARN : MaxWarnings::warn() 1604
+QWARN : MaxWarnings::warn() 1605
+QWARN : MaxWarnings::warn() 1606
+QWARN : MaxWarnings::warn() 1607
+QWARN : MaxWarnings::warn() 1608
+QWARN : MaxWarnings::warn() 1609
+QWARN : MaxWarnings::warn() 1610
+QWARN : MaxWarnings::warn() 1611
+QWARN : MaxWarnings::warn() 1612
+QWARN : MaxWarnings::warn() 1613
+QWARN : MaxWarnings::warn() 1614
+QWARN : MaxWarnings::warn() 1615
+QWARN : MaxWarnings::warn() 1616
+QWARN : MaxWarnings::warn() 1617
+QWARN : MaxWarnings::warn() 1618
+QWARN : MaxWarnings::warn() 1619
+QWARN : MaxWarnings::warn() 1620
+QWARN : MaxWarnings::warn() 1621
+QWARN : MaxWarnings::warn() 1622
+QWARN : MaxWarnings::warn() 1623
+QWARN : MaxWarnings::warn() 1624
+QWARN : MaxWarnings::warn() 1625
+QWARN : MaxWarnings::warn() 1626
+QWARN : MaxWarnings::warn() 1627
+QWARN : MaxWarnings::warn() 1628
+QWARN : MaxWarnings::warn() 1629
+QWARN : MaxWarnings::warn() 1630
+QWARN : MaxWarnings::warn() 1631
+QWARN : MaxWarnings::warn() 1632
+QWARN : MaxWarnings::warn() 1633
+QWARN : MaxWarnings::warn() 1634
+QWARN : MaxWarnings::warn() 1635
+QWARN : MaxWarnings::warn() 1636
+QWARN : MaxWarnings::warn() 1637
+QWARN : MaxWarnings::warn() 1638
+QWARN : MaxWarnings::warn() 1639
+QWARN : MaxWarnings::warn() 1640
+QWARN : MaxWarnings::warn() 1641
+QWARN : MaxWarnings::warn() 1642
+QWARN : MaxWarnings::warn() 1643
+QWARN : MaxWarnings::warn() 1644
+QWARN : MaxWarnings::warn() 1645
+QWARN : MaxWarnings::warn() 1646
+QWARN : MaxWarnings::warn() 1647
+QWARN : MaxWarnings::warn() 1648
+QWARN : MaxWarnings::warn() 1649
+QWARN : MaxWarnings::warn() 1650
+QWARN : MaxWarnings::warn() 1651
+QWARN : MaxWarnings::warn() 1652
+QWARN : MaxWarnings::warn() 1653
+QWARN : MaxWarnings::warn() 1654
+QWARN : MaxWarnings::warn() 1655
+QWARN : MaxWarnings::warn() 1656
+QWARN : MaxWarnings::warn() 1657
+QWARN : MaxWarnings::warn() 1658
+QWARN : MaxWarnings::warn() 1659
+QWARN : MaxWarnings::warn() 1660
+QWARN : MaxWarnings::warn() 1661
+QWARN : MaxWarnings::warn() 1662
+QWARN : MaxWarnings::warn() 1663
+QWARN : MaxWarnings::warn() 1664
+QWARN : MaxWarnings::warn() 1665
+QWARN : MaxWarnings::warn() 1666
+QWARN : MaxWarnings::warn() 1667
+QWARN : MaxWarnings::warn() 1668
+QWARN : MaxWarnings::warn() 1669
+QWARN : MaxWarnings::warn() 1670
+QWARN : MaxWarnings::warn() 1671
+QWARN : MaxWarnings::warn() 1672
+QWARN : MaxWarnings::warn() 1673
+QWARN : MaxWarnings::warn() 1674
+QWARN : MaxWarnings::warn() 1675
+QWARN : MaxWarnings::warn() 1676
+QWARN : MaxWarnings::warn() 1677
+QWARN : MaxWarnings::warn() 1678
+QWARN : MaxWarnings::warn() 1679
+QWARN : MaxWarnings::warn() 1680
+QWARN : MaxWarnings::warn() 1681
+QWARN : MaxWarnings::warn() 1682
+QWARN : MaxWarnings::warn() 1683
+QWARN : MaxWarnings::warn() 1684
+QWARN : MaxWarnings::warn() 1685
+QWARN : MaxWarnings::warn() 1686
+QWARN : MaxWarnings::warn() 1687
+QWARN : MaxWarnings::warn() 1688
+QWARN : MaxWarnings::warn() 1689
+QWARN : MaxWarnings::warn() 1690
+QWARN : MaxWarnings::warn() 1691
+QWARN : MaxWarnings::warn() 1692
+QWARN : MaxWarnings::warn() 1693
+QWARN : MaxWarnings::warn() 1694
+QWARN : MaxWarnings::warn() 1695
+QWARN : MaxWarnings::warn() 1696
+QWARN : MaxWarnings::warn() 1697
+QWARN : MaxWarnings::warn() 1698
+QWARN : MaxWarnings::warn() 1699
+QWARN : MaxWarnings::warn() 1700
+QWARN : MaxWarnings::warn() 1701
+QWARN : MaxWarnings::warn() 1702
+QWARN : MaxWarnings::warn() 1703
+QWARN : MaxWarnings::warn() 1704
+QWARN : MaxWarnings::warn() 1705
+QWARN : MaxWarnings::warn() 1706
+QWARN : MaxWarnings::warn() 1707
+QWARN : MaxWarnings::warn() 1708
+QWARN : MaxWarnings::warn() 1709
+QWARN : MaxWarnings::warn() 1710
+QWARN : MaxWarnings::warn() 1711
+QWARN : MaxWarnings::warn() 1712
+QWARN : MaxWarnings::warn() 1713
+QWARN : MaxWarnings::warn() 1714
+QWARN : MaxWarnings::warn() 1715
+QWARN : MaxWarnings::warn() 1716
+QWARN : MaxWarnings::warn() 1717
+QWARN : MaxWarnings::warn() 1718
+QWARN : MaxWarnings::warn() 1719
+QWARN : MaxWarnings::warn() 1720
+QWARN : MaxWarnings::warn() 1721
+QWARN : MaxWarnings::warn() 1722
+QWARN : MaxWarnings::warn() 1723
+QWARN : MaxWarnings::warn() 1724
+QWARN : MaxWarnings::warn() 1725
+QWARN : MaxWarnings::warn() 1726
+QWARN : MaxWarnings::warn() 1727
+QWARN : MaxWarnings::warn() 1728
+QWARN : MaxWarnings::warn() 1729
+QWARN : MaxWarnings::warn() 1730
+QWARN : MaxWarnings::warn() 1731
+QWARN : MaxWarnings::warn() 1732
+QWARN : MaxWarnings::warn() 1733
+QWARN : MaxWarnings::warn() 1734
+QWARN : MaxWarnings::warn() 1735
+QWARN : MaxWarnings::warn() 1736
+QWARN : MaxWarnings::warn() 1737
+QWARN : MaxWarnings::warn() 1738
+QWARN : MaxWarnings::warn() 1739
+QWARN : MaxWarnings::warn() 1740
+QWARN : MaxWarnings::warn() 1741
+QWARN : MaxWarnings::warn() 1742
+QWARN : MaxWarnings::warn() 1743
+QWARN : MaxWarnings::warn() 1744
+QWARN : MaxWarnings::warn() 1745
+QWARN : MaxWarnings::warn() 1746
+QWARN : MaxWarnings::warn() 1747
+QWARN : MaxWarnings::warn() 1748
+QWARN : MaxWarnings::warn() 1749
+QWARN : MaxWarnings::warn() 1750
+QWARN : MaxWarnings::warn() 1751
+QWARN : MaxWarnings::warn() 1752
+QWARN : MaxWarnings::warn() 1753
+QWARN : MaxWarnings::warn() 1754
+QWARN : MaxWarnings::warn() 1755
+QWARN : MaxWarnings::warn() 1756
+QWARN : MaxWarnings::warn() 1757
+QWARN : MaxWarnings::warn() 1758
+QWARN : MaxWarnings::warn() 1759
+QWARN : MaxWarnings::warn() 1760
+QWARN : MaxWarnings::warn() 1761
+QWARN : MaxWarnings::warn() 1762
+QWARN : MaxWarnings::warn() 1763
+QWARN : MaxWarnings::warn() 1764
+QWARN : MaxWarnings::warn() 1765
+QWARN : MaxWarnings::warn() 1766
+QWARN : MaxWarnings::warn() 1767
+QWARN : MaxWarnings::warn() 1768
+QWARN : MaxWarnings::warn() 1769
+QWARN : MaxWarnings::warn() 1770
+QWARN : MaxWarnings::warn() 1771
+QWARN : MaxWarnings::warn() 1772
+QWARN : MaxWarnings::warn() 1773
+QWARN : MaxWarnings::warn() 1774
+QWARN : MaxWarnings::warn() 1775
+QWARN : MaxWarnings::warn() 1776
+QWARN : MaxWarnings::warn() 1777
+QWARN : MaxWarnings::warn() 1778
+QWARN : MaxWarnings::warn() 1779
+QWARN : MaxWarnings::warn() 1780
+QWARN : MaxWarnings::warn() 1781
+QWARN : MaxWarnings::warn() 1782
+QWARN : MaxWarnings::warn() 1783
+QWARN : MaxWarnings::warn() 1784
+QWARN : MaxWarnings::warn() 1785
+QWARN : MaxWarnings::warn() 1786
+QWARN : MaxWarnings::warn() 1787
+QWARN : MaxWarnings::warn() 1788
+QWARN : MaxWarnings::warn() 1789
+QWARN : MaxWarnings::warn() 1790
+QWARN : MaxWarnings::warn() 1791
+QWARN : MaxWarnings::warn() 1792
+QWARN : MaxWarnings::warn() 1793
+QWARN : MaxWarnings::warn() 1794
+QWARN : MaxWarnings::warn() 1795
+QWARN : MaxWarnings::warn() 1796
+QWARN : MaxWarnings::warn() 1797
+QWARN : MaxWarnings::warn() 1798
+QWARN : MaxWarnings::warn() 1799
+QWARN : MaxWarnings::warn() 1800
+QWARN : MaxWarnings::warn() 1801
+QWARN : MaxWarnings::warn() 1802
+QWARN : MaxWarnings::warn() 1803
+QWARN : MaxWarnings::warn() 1804
+QWARN : MaxWarnings::warn() 1805
+QWARN : MaxWarnings::warn() 1806
+QWARN : MaxWarnings::warn() 1807
+QWARN : MaxWarnings::warn() 1808
+QWARN : MaxWarnings::warn() 1809
+QWARN : MaxWarnings::warn() 1810
+QWARN : MaxWarnings::warn() 1811
+QWARN : MaxWarnings::warn() 1812
+QWARN : MaxWarnings::warn() 1813
+QWARN : MaxWarnings::warn() 1814
+QWARN : MaxWarnings::warn() 1815
+QWARN : MaxWarnings::warn() 1816
+QWARN : MaxWarnings::warn() 1817
+QWARN : MaxWarnings::warn() 1818
+QWARN : MaxWarnings::warn() 1819
+QWARN : MaxWarnings::warn() 1820
+QWARN : MaxWarnings::warn() 1821
+QWARN : MaxWarnings::warn() 1822
+QWARN : MaxWarnings::warn() 1823
+QWARN : MaxWarnings::warn() 1824
+QWARN : MaxWarnings::warn() 1825
+QWARN : MaxWarnings::warn() 1826
+QWARN : MaxWarnings::warn() 1827
+QWARN : MaxWarnings::warn() 1828
+QWARN : MaxWarnings::warn() 1829
+QWARN : MaxWarnings::warn() 1830
+QWARN : MaxWarnings::warn() 1831
+QWARN : MaxWarnings::warn() 1832
+QWARN : MaxWarnings::warn() 1833
+QWARN : MaxWarnings::warn() 1834
+QWARN : MaxWarnings::warn() 1835
+QWARN : MaxWarnings::warn() 1836
+QWARN : MaxWarnings::warn() 1837
+QWARN : MaxWarnings::warn() 1838
+QWARN : MaxWarnings::warn() 1839
+QWARN : MaxWarnings::warn() 1840
+QWARN : MaxWarnings::warn() 1841
+QWARN : MaxWarnings::warn() 1842
+QWARN : MaxWarnings::warn() 1843
+QWARN : MaxWarnings::warn() 1844
+QWARN : MaxWarnings::warn() 1845
+QWARN : MaxWarnings::warn() 1846
+QWARN : MaxWarnings::warn() 1847
+QWARN : MaxWarnings::warn() 1848
+QWARN : MaxWarnings::warn() 1849
+QWARN : MaxWarnings::warn() 1850
+QWARN : MaxWarnings::warn() 1851
+QWARN : MaxWarnings::warn() 1852
+QWARN : MaxWarnings::warn() 1853
+QWARN : MaxWarnings::warn() 1854
+QWARN : MaxWarnings::warn() 1855
+QWARN : MaxWarnings::warn() 1856
+QWARN : MaxWarnings::warn() 1857
+QWARN : MaxWarnings::warn() 1858
+QWARN : MaxWarnings::warn() 1859
+QWARN : MaxWarnings::warn() 1860
+QWARN : MaxWarnings::warn() 1861
+QWARN : MaxWarnings::warn() 1862
+QWARN : MaxWarnings::warn() 1863
+QWARN : MaxWarnings::warn() 1864
+QWARN : MaxWarnings::warn() 1865
+QWARN : MaxWarnings::warn() 1866
+QWARN : MaxWarnings::warn() 1867
+QWARN : MaxWarnings::warn() 1868
+QWARN : MaxWarnings::warn() 1869
+QWARN : MaxWarnings::warn() 1870
+QWARN : MaxWarnings::warn() 1871
+QWARN : MaxWarnings::warn() 1872
+QWARN : MaxWarnings::warn() 1873
+QWARN : MaxWarnings::warn() 1874
+QWARN : MaxWarnings::warn() 1875
+QWARN : MaxWarnings::warn() 1876
+QWARN : MaxWarnings::warn() 1877
+QWARN : MaxWarnings::warn() 1878
+QWARN : MaxWarnings::warn() 1879
+QWARN : MaxWarnings::warn() 1880
+QWARN : MaxWarnings::warn() 1881
+QWARN : MaxWarnings::warn() 1882
+QWARN : MaxWarnings::warn() 1883
+QWARN : MaxWarnings::warn() 1884
+QWARN : MaxWarnings::warn() 1885
+QWARN : MaxWarnings::warn() 1886
+QWARN : MaxWarnings::warn() 1887
+QWARN : MaxWarnings::warn() 1888
+QWARN : MaxWarnings::warn() 1889
+QWARN : MaxWarnings::warn() 1890
+QWARN : MaxWarnings::warn() 1891
+QWARN : MaxWarnings::warn() 1892
+QWARN : MaxWarnings::warn() 1893
+QWARN : MaxWarnings::warn() 1894
+QWARN : MaxWarnings::warn() 1895
+QWARN : MaxWarnings::warn() 1896
+QWARN : MaxWarnings::warn() 1897
+QWARN : MaxWarnings::warn() 1898
+QWARN : MaxWarnings::warn() 1899
+QWARN : MaxWarnings::warn() 1900
+QWARN : MaxWarnings::warn() 1901
+QWARN : MaxWarnings::warn() 1902
+QWARN : MaxWarnings::warn() 1903
+QWARN : MaxWarnings::warn() 1904
+QWARN : MaxWarnings::warn() 1905
+QWARN : MaxWarnings::warn() 1906
+QWARN : MaxWarnings::warn() 1907
+QWARN : MaxWarnings::warn() 1908
+QWARN : MaxWarnings::warn() 1909
+QWARN : MaxWarnings::warn() 1910
+QWARN : MaxWarnings::warn() 1911
+QWARN : MaxWarnings::warn() 1912
+QWARN : MaxWarnings::warn() 1913
+QWARN : MaxWarnings::warn() 1914
+QWARN : MaxWarnings::warn() 1915
+QWARN : MaxWarnings::warn() 1916
+QWARN : MaxWarnings::warn() 1917
+QWARN : MaxWarnings::warn() 1918
+QWARN : MaxWarnings::warn() 1919
+QWARN : MaxWarnings::warn() 1920
+QWARN : MaxWarnings::warn() 1921
+QWARN : MaxWarnings::warn() 1922
+QWARN : MaxWarnings::warn() 1923
+QWARN : MaxWarnings::warn() 1924
+QWARN : MaxWarnings::warn() 1925
+QWARN : MaxWarnings::warn() 1926
+QWARN : MaxWarnings::warn() 1927
+QWARN : MaxWarnings::warn() 1928
+QWARN : MaxWarnings::warn() 1929
+QWARN : MaxWarnings::warn() 1930
+QWARN : MaxWarnings::warn() 1931
+QWARN : MaxWarnings::warn() 1932
+QWARN : MaxWarnings::warn() 1933
+QWARN : MaxWarnings::warn() 1934
+QWARN : MaxWarnings::warn() 1935
+QWARN : MaxWarnings::warn() 1936
+QWARN : MaxWarnings::warn() 1937
+QWARN : MaxWarnings::warn() 1938
+QWARN : MaxWarnings::warn() 1939
+QWARN : MaxWarnings::warn() 1940
+QWARN : MaxWarnings::warn() 1941
+QWARN : MaxWarnings::warn() 1942
+QWARN : MaxWarnings::warn() 1943
+QWARN : MaxWarnings::warn() 1944
+QWARN : MaxWarnings::warn() 1945
+QWARN : MaxWarnings::warn() 1946
+QWARN : MaxWarnings::warn() 1947
+QWARN : MaxWarnings::warn() 1948
+QWARN : MaxWarnings::warn() 1949
+QWARN : MaxWarnings::warn() 1950
+QWARN : MaxWarnings::warn() 1951
+QWARN : MaxWarnings::warn() 1952
+QWARN : MaxWarnings::warn() 1953
+QWARN : MaxWarnings::warn() 1954
+QWARN : MaxWarnings::warn() 1955
+QWARN : MaxWarnings::warn() 1956
+QWARN : MaxWarnings::warn() 1957
+QWARN : MaxWarnings::warn() 1958
+QWARN : MaxWarnings::warn() 1959
+QWARN : MaxWarnings::warn() 1960
+QWARN : MaxWarnings::warn() 1961
+QWARN : MaxWarnings::warn() 1962
+QWARN : MaxWarnings::warn() 1963
+QWARN : MaxWarnings::warn() 1964
+QWARN : MaxWarnings::warn() 1965
+QWARN : MaxWarnings::warn() 1966
+QWARN : MaxWarnings::warn() 1967
+QWARN : MaxWarnings::warn() 1968
+QWARN : MaxWarnings::warn() 1969
+QWARN : MaxWarnings::warn() 1970
+QWARN : MaxWarnings::warn() 1971
+QWARN : MaxWarnings::warn() 1972
+QWARN : MaxWarnings::warn() 1973
+QWARN : MaxWarnings::warn() 1974
+QWARN : MaxWarnings::warn() 1975
+QWARN : MaxWarnings::warn() 1976
+QWARN : MaxWarnings::warn() 1977
+QWARN : MaxWarnings::warn() 1978
+QWARN : MaxWarnings::warn() 1979
+QWARN : MaxWarnings::warn() 1980
+QWARN : MaxWarnings::warn() 1981
+QWARN : MaxWarnings::warn() 1982
+QWARN : MaxWarnings::warn() 1983
+QWARN : MaxWarnings::warn() 1984
+QWARN : MaxWarnings::warn() 1985
+QWARN : MaxWarnings::warn() 1986
+QWARN : MaxWarnings::warn() 1987
+QWARN : MaxWarnings::warn() 1988
+QWARN : MaxWarnings::warn() 1989
+QWARN : MaxWarnings::warn() 1990
+QWARN : MaxWarnings::warn() 1991
+QWARN : MaxWarnings::warn() 1992
+QWARN : MaxWarnings::warn() 1993
+QWARN : MaxWarnings::warn() 1994
+QWARN : MaxWarnings::warn() 1995
+QWARN : MaxWarnings::warn() 1996
+QWARN : MaxWarnings::warn() 1997
+QWARN : MaxWarnings::warn() 1998
+QWARN : MaxWarnings::warn() 1999
+QWARN : MaxWarnings::warn() 2000
+QSYSTEM: MaxWarnings::warn() Maximum amount of warnings exceeded.
+PASS : MaxWarnings::warn()
+PASS : MaxWarnings::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of MaxWarnings *********
diff --git a/tests/auto/selftests/expected_multiexec.txt b/tests/auto/selftests/expected_multiexec.txt
new file mode 100644
index 0000000..11d7a90
--- /dev/null
+++ b/tests/auto/selftests/expected_multiexec.txt
@@ -0,0 +1,35 @@
+********* Start testing of tst_Nothing *********
+Config: Using QTest library 4.1.0, Qt 4.1.1
+PASS : tst_Nothing::initTestCase()
+PASS : tst_Nothing::nothing()
+PASS : tst_Nothing::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_Nothing *********
+********* Start testing of tst_Nothing *********
+Config: Using QTest library 4.1.0, Qt 4.1.1
+PASS : tst_Nothing::initTestCase()
+PASS : tst_Nothing::nothing()
+PASS : tst_Nothing::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_Nothing *********
+********* Start testing of tst_Nothing *********
+Config: Using QTest library 4.1.0, Qt 4.1.1
+PASS : tst_Nothing::initTestCase()
+PASS : tst_Nothing::nothing()
+PASS : tst_Nothing::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_Nothing *********
+********* Start testing of tst_Nothing *********
+Config: Using QTest library 4.1.0, Qt 4.1.1
+PASS : tst_Nothing::initTestCase()
+PASS : tst_Nothing::nothing()
+PASS : tst_Nothing::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_Nothing *********
+********* Start testing of tst_Nothing *********
+Config: Using QTest library 4.1.0, Qt 4.1.1
+PASS : tst_Nothing::initTestCase()
+PASS : tst_Nothing::nothing()
+PASS : tst_Nothing::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_Nothing *********
diff --git a/tests/auto/selftests/expected_qexecstringlist.txt b/tests/auto/selftests/expected_qexecstringlist.txt
new file mode 100644
index 0000000..e6c8f00
--- /dev/null
+++ b/tests/auto/selftests/expected_qexecstringlist.txt
@@ -0,0 +1,46 @@
+********* Start testing of tst_QExecStringList *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+PASS : tst_QExecStringList::initTestCase()
+PASS : tst_QExecStringList::testA()
+PASS : tst_QExecStringList::testB()
+PASS : tst_QExecStringList::testC()
+PASS : tst_QExecStringList::cleanupTestCase()
+Totals: 5 passed, 0 failed, 0 skipped
+********* Finished testing of tst_QExecStringList *********
+********* Start testing of tst_QExecStringList *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+PASS : tst_QExecStringList::initTestCase()
+PASS : tst_QExecStringList::testA()
+PASS : tst_QExecStringList::testB()
+PASS : tst_QExecStringList::testC()
+PASS : tst_QExecStringList::cleanupTestCase()
+Totals: 5 passed, 0 failed, 0 skipped
+********* Finished testing of tst_QExecStringList *********
+********* Start testing of tst_QExecStringList *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+PASS : tst_QExecStringList::initTestCase()
+PASS : tst_QExecStringList::testA()
+PASS : tst_QExecStringList::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_QExecStringList *********
+********* Start testing of tst_QExecStringList *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+PASS : tst_QExecStringList::initTestCase()
+PASS : tst_QExecStringList::testB()
+PASS : tst_QExecStringList::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_QExecStringList *********
+********* Start testing of tst_QExecStringList *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+PASS : tst_QExecStringList::initTestCase()
+PASS : tst_QExecStringList::testB()
+PASS : tst_QExecStringList::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_QExecStringList *********
+********* Start testing of tst_QExecStringList *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+PASS : tst_QExecStringList::initTestCase()
+PASS : tst_QExecStringList::testC()
+PASS : tst_QExecStringList::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_QExecStringList *********
diff --git a/tests/auto/selftests/expected_singleskip.txt b/tests/auto/selftests/expected_singleskip.txt
new file mode 100644
index 0000000..19cb797
--- /dev/null
+++ b/tests/auto/selftests/expected_singleskip.txt
@@ -0,0 +1,8 @@
+********* Start testing of tst_SingleSkip *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_SingleSkip::initTestCase()
+SKIP : tst_SingleSkip::myTest() skipping test
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/singleskip/tst_singleskip.cpp(23)]
+PASS : tst_SingleSkip::cleanupTestCase()
+Totals: 2 passed, 0 failed, 1 skipped
+********* Finished testing of tst_SingleSkip *********
diff --git a/tests/auto/selftests/expected_skip.txt b/tests/auto/selftests/expected_skip.txt
new file mode 100644
index 0000000..ba41e67
--- /dev/null
+++ b/tests/auto/selftests/expected_skip.txt
@@ -0,0 +1,14 @@
+********* Start testing of tst_Skip *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_Skip::initTestCase()
+SKIP : tst_Skip::test() skipping all
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/skip/tst_skip.cpp(35)]
+SKIP : tst_Skip::emptytest() skipping all
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/skip/tst_skip.cpp(45)]
+SKIP : tst_Skip::singleSkip(local 1) skipping one
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/skip/tst_skip.cpp(64)]
+this line should only be reached once (true)
+PASS : tst_Skip::singleSkip()
+PASS : tst_Skip::cleanupTestCase()
+Totals: 3 passed, 0 failed, 3 skipped
+********* Finished testing of tst_Skip *********
diff --git a/tests/auto/selftests/expected_skipglobal.txt b/tests/auto/selftests/expected_skipglobal.txt
new file mode 100644
index 0000000..dcd6c44
--- /dev/null
+++ b/tests/auto/selftests/expected_skipglobal.txt
@@ -0,0 +1,6 @@
+********* Start testing of tst_SkipGlobal *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+SKIP : tst_SkipGlobal::initTestCase() Skippy Skippy
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/skipglobal/tst_skipglobal.cpp(39)]
+Totals: 0 passed, 0 failed, 1 skipped
+********* Finished testing of tst_SkipGlobal *********
diff --git a/tests/auto/selftests/expected_skipinit.txt b/tests/auto/selftests/expected_skipinit.txt
new file mode 100644
index 0000000..a156785
--- /dev/null
+++ b/tests/auto/selftests/expected_skipinit.txt
@@ -0,0 +1,7 @@
+********* Start testing of tst_SkipInit *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+SKIP : tst_SkipInit::initTestCase() Skip inside initTestCase. This should skip all tests in the class.
+ Loc: [/home/fenglich/dev/qt/tests/auto/selftests/skipinit/tst_skipinit.cpp(22)]
+PASS : tst_SkipInit::cleanupTestCase()
+Totals: 1 passed, 0 failed, 1 skipped
+********* Finished testing of tst_SkipInit *********
diff --git a/tests/auto/selftests/expected_skipinitdata.txt b/tests/auto/selftests/expected_skipinitdata.txt
new file mode 100644
index 0000000..11ca438
--- /dev/null
+++ b/tests/auto/selftests/expected_skipinitdata.txt
@@ -0,0 +1,6 @@
+********* Start testing of tst_SkipInitData *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+SKIP : tst_SkipInitData::initTestCase() Skip inside initTestCase. This should skip all tests in the class.
+ Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/skipinitdata/tst_skipinitdata.cpp(23)]
+Totals: 0 passed, 0 failed, 1 skipped
+********* Finished testing of tst_SkipInitData *********
diff --git a/tests/auto/selftests/expected_sleep.txt b/tests/auto/selftests/expected_sleep.txt
new file mode 100644
index 0000000..67f1f2f
--- /dev/null
+++ b/tests/auto/selftests/expected_sleep.txt
@@ -0,0 +1,7 @@
+********* Start testing of tst_Sleep *********
+Config: Using QTest library 4.1.0, Qt 4.1.0
+PASS : tst_Sleep::initTestCase()
+PASS : tst_Sleep::sleep()
+PASS : tst_Sleep::cleanupTestCase()
+Totals: 3 passed, 0 failed, 0 skipped
+********* Finished testing of tst_Sleep *********
diff --git a/tests/auto/selftests/expected_strcmp.txt b/tests/auto/selftests/expected_strcmp.txt
new file mode 100644
index 0000000..c739d94
--- /dev/null
+++ b/tests/auto/selftests/expected_strcmp.txt
@@ -0,0 +1,33 @@
+********* Start testing of tst_StrCmp *********
+Config: Using QTest library 4.3.0, Qt 4.3.0
+PASS : tst_StrCmp::initTestCase()
+PASS : tst_StrCmp::compareCharStars()
+XFAIL : tst_StrCmp::compareByteArray() Next test should fail
+ Loc: [./tst_strcmp.cpp(55)]
+XFAIL : tst_StrCmp::compareByteArray() Next test should fail
+ Loc: [./tst_strcmp.cpp(62)]
+XFAIL : tst_StrCmp::compareByteArray() Next test should fail
+ Loc: [./tst_strcmp.cpp(69)]
+FAIL! : tst_StrCmp::compareByteArray() Compared values are not the same
+ Actual (a): 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 ...
+ Expected (b): 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 ...
+ Loc: [./tst_strcmp.cpp(76)]
+FAIL! : tst_StrCmp::failByteArray() Compared values are not the same
+ Actual (QByteArray("abc")): 61 62 63
+ Expected (QByteArray("cba")): 63 62 61
+ Loc: [./tst_strcmp.cpp(82)]
+FAIL! : tst_StrCmp::failByteArrayNull() Compared values are not the same
+ Actual (QByteArray("foo")): 66 6F 6F
+ Expected (QByteArray()):
+ Loc: [./tst_strcmp.cpp(88)]
+FAIL! : tst_StrCmp::failByteArrayEmpty() Compared values are not the same
+ Actual (QByteArray("")):
+ Expected (QByteArray("foo")): 66 6F 6F
+ Loc: [./tst_strcmp.cpp(93)]
+FAIL! : tst_StrCmp::failByteArraySingleChars() Compared values are not the same
+ Actual (QByteArray("6")): 36
+ Expected (QByteArray("7")): 37
+ Loc: [./tst_strcmp.cpp(100)]
+PASS : tst_StrCmp::cleanupTestCase()
+Totals: 3 passed, 5 failed, 0 skipped
+********* Finished testing of tst_StrCmp *********
diff --git a/tests/auto/selftests/expected_subtest.txt b/tests/auto/selftests/expected_subtest.txt
new file mode 100644
index 0000000..ec459c5
--- /dev/null
+++ b/tests/auto/selftests/expected_subtest.txt
@@ -0,0 +1,81 @@
+********* Start testing of tst_Subtest *********
+Config: Using QTest library 4.4.0, Qt 4.4.0
+initTestCase initTestCase (null)
+PASS : tst_Subtest::initTestCase()
+init test1 (null)
+test1 test1 (null)
+cleanup test1 (null)
+PASS : tst_Subtest::test1()
+test2_data test2 (null)
+test2_data end
+init test2 data0
+test2 test2 data0
+test2 end
+cleanup test2 data0
+init test2 data1
+test2 test2 data1
+test2 end
+cleanup test2 data1
+init test2 data2
+test2 test2 data2
+test2 end
+cleanup test2 data2
+PASS : tst_Subtest::test2()
+test3_data test3 (null)
+test3_data end
+init test3 data0
+test2 test3 data0
+test2 end
+cleanup test3 data0
+init test3 data1
+test2 test3 data1
+FAIL! : tst_Subtest::test3(data1) Compared values are not the same
+ Actual (str): hello1
+ Expected (QString("hello0")): hello0
+ Loc: [/home/fenglich/dev/qt-4.4/tests/auto/selftests/subtest/tst_subtest.cpp(124)]
+cleanup test3 data1
+init test3 data2
+test2 test3 data2
+FAIL! : tst_Subtest::test3(data2) Compared values are not the same
+ Actual (str): hello2
+ Expected (QString("hello0")): hello0
+ Loc: [/home/fenglich/dev/qt-4.4/tests/auto/selftests/subtest/tst_subtest.cpp(124)]
+cleanup test3 data2
+init floatComparisons should SUCCEED
+cleanup floatComparisons should SUCCEED
+init floatComparisons should FAIL
+FAIL! : tst_Subtest::floatComparisons(should FAIL) Compared floats are not the same (fuzzy compare)
+ Actual (operandLeft): 1
+ Expected (operandRight): 3
+ Loc: [/home/fenglich/dev/qt-4.4/tests/auto/selftests/subtest/tst_subtest.cpp(134)]
+cleanup floatComparisons should FAIL
+init floatComparisons should FAIL
+FAIL! : tst_Subtest::floatComparisons(should FAIL) Compared floats are not the same (fuzzy compare)
+ Actual (operandLeft): 1e-07
+ Expected (operandRight): 3e-07
+ Loc: [/home/fenglich/dev/qt-4.4/tests/auto/selftests/subtest/tst_subtest.cpp(134)]
+cleanup floatComparisons should FAIL
+init floatComparisons should FAIL
+cleanup floatComparisons should FAIL
+init compareFloatTests 1e0
+FAIL! : tst_Subtest::compareFloatTests(1e0) Compared floats are not the same (fuzzy compare)
+ Actual (t1): 1
+ Expected (t3): 3
+ Loc: [/home/fenglich/dev/qt-4.4/tests/auto/selftests/subtest/tst_subtest.cpp(173)]
+cleanup compareFloatTests 1e0
+init compareFloatTests 1e-7
+FAIL! : tst_Subtest::compareFloatTests(1e-7) Compared floats are not the same (fuzzy compare)
+ Actual (t1): 1e-07
+ Expected (t3): 3e-07
+ Loc: [/home/fenglich/dev/qt-4.4/tests/auto/selftests/subtest/tst_subtest.cpp(173)]
+cleanup compareFloatTests 1e-7
+init compareFloatTests 1e+7
+FAIL! : tst_Subtest::compareFloatTests(1e+7) Compared floats are not the same (fuzzy compare)
+ Actual (t1): 1e+07
+ Expected (t3): 3e+07
+ Loc: [/home/fenglich/dev/qt-4.4/tests/auto/selftests/subtest/tst_subtest.cpp(173)]
+cleanup compareFloatTests 1e+7
+cleanupTestCase cleanupTestCase (null)
+PASS : tst_Subtest::cleanupTestCase()
+Totals: 4 passed, 7 failed, 0 skipped
+********* Finished testing of tst_Subtest *********
diff --git a/tests/auto/selftests/expected_waitwithoutgui.txt b/tests/auto/selftests/expected_waitwithoutgui.txt
new file mode 100644
index 0000000..a169107
--- /dev/null
+++ b/tests/auto/selftests/expected_waitwithoutgui.txt
@@ -0,0 +1,2 @@
+We just output something such that there's a baseline to compare against.
+Finished waiting!
diff --git a/tests/auto/selftests/expected_warnings.txt b/tests/auto/selftests/expected_warnings.txt
new file mode 100644
index 0000000..0a9437f
--- /dev/null
+++ b/tests/auto/selftests/expected_warnings.txt
@@ -0,0 +1,24 @@
+********* Start testing of tst_Warnings *********
+Config: Using QTest library 4.1.0, Qt 4.1.0
+PASS : tst_Warnings::initTestCase()
+testWarnings 1: next line prints "Warning"
+QWARN : tst_Warnings::testWarnings() Warning
+testWarnings 2: next line prints nothing
+testWarnings 3: next line prints "Warning"
+QWARN : tst_Warnings::testWarnings() Warning
+testWarnings 4: over
+testWarnings 5: next line prints "Debug"
+QDEBUG : tst_Warnings::testWarnings() Debug
+testWarnings 6: next line prints nothing
+testWarnings 7: next line prints "Debug"
+QDEBUG : tst_Warnings::testWarnings() Debug
+testWarnings 8: next comes "Baba" twice
+QDEBUG : tst_Warnings::testWarnings() Baba
+QDEBUG : tst_Warnings::testWarnings() Baba
+PASS : tst_Warnings::testWarnings()
+INFO : tst_Warnings::testMissingWarnings() Did not receive message: "Warning0"
+INFO : tst_Warnings::testMissingWarnings() Did not receive message: "Warning1"
+FAIL! : tst_Warnings::testMissingWarnings() Not all expected messages were received
+PASS : tst_Warnings::cleanupTestCase()
+Totals: 3 passed, 1 failed, 0 skipped
+********* Finished testing of tst_Warnings *********
diff --git a/tests/auto/selftests/expectfail/expectfail.pro b/tests/auto/selftests/expectfail/expectfail.pro
new file mode 100644
index 0000000..c411199
--- /dev/null
+++ b/tests/auto/selftests/expectfail/expectfail.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_expectfail.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/expectfail/tst_expectfail.cpp b/tests/auto/selftests/expectfail/tst_expectfail.cpp
new file mode 100644
index 0000000..925c992
--- /dev/null
+++ b/tests/auto/selftests/expectfail/tst_expectfail.cpp
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_ExpectFail: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void expectAndContinue() const;
+ void expectAndAbort() const;
+ void xfailWithQString() const;
+};
+
+void tst_ExpectFail::expectAndContinue() const
+{
+ qDebug("begin");
+ QEXPECT_FAIL("", "This should xfail", Continue);
+ QVERIFY(false);
+ qDebug("after");
+}
+
+void tst_ExpectFail::expectAndAbort() const
+{
+ qDebug("begin");
+ QEXPECT_FAIL("", "This should xfail", Abort);
+ QVERIFY(false);
+ qDebug("this should not be reached");
+}
+
+void tst_ExpectFail::xfailWithQString() const
+{
+ QEXPECT_FAIL("", QString("A string").toLatin1().constData(), Continue);
+ QVERIFY(false);
+
+ int bugNo = 5;
+ QString msg("The message");
+ QEXPECT_FAIL( "", QString("Bug %1 (%2)").arg(bugNo).arg(msg).toLatin1().constData(), Continue);
+ QVERIFY(false);
+}
+
+QTEST_MAIN(tst_ExpectFail)
+
+#include "tst_expectfail.moc"
diff --git a/tests/auto/selftests/failinit/failinit.pro b/tests/auto/selftests/failinit/failinit.pro
new file mode 100644
index 0000000..729cf74
--- /dev/null
+++ b/tests/auto/selftests/failinit/failinit.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_failinit.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/failinit/tst_failinit.cpp b/tests/auto/selftests/failinit/tst_failinit.cpp
new file mode 100644
index 0000000..fcff2fd
--- /dev/null
+++ b/tests/auto/selftests/failinit/tst_failinit.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+
+class tst_FailInit: public QObject
+{
+Q_OBJECT
+private slots:
+ void initTestCase() const;
+ void aTestFunction() const;
+};
+
+void tst_FailInit::initTestCase() const
+{
+ QVERIFY(false);
+}
+
+/*! \internal
+ This function should never be run because initTestCase fails.
+ */
+void tst_FailInit::aTestFunction() const
+{
+ qDebug() << "ERROR: this function is NOT supposed to be run.";
+}
+
+QTEST_APPLESS_MAIN(tst_FailInit)
+
+#include "tst_failinit.moc"
diff --git a/tests/auto/selftests/failinitdata/failinitdata.pro b/tests/auto/selftests/failinitdata/failinitdata.pro
new file mode 100644
index 0000000..6b48af1
--- /dev/null
+++ b/tests/auto/selftests/failinitdata/failinitdata.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_failinitdata.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/failinitdata/tst_failinitdata.cpp b/tests/auto/selftests/failinitdata/tst_failinitdata.cpp
new file mode 100644
index 0000000..52d3c80
--- /dev/null
+++ b/tests/auto/selftests/failinitdata/tst_failinitdata.cpp
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+
+class tst_FailInitData: public QObject
+{
+Q_OBJECT
+private slots:
+ void initTestCase() const;
+ void initTestCase_data() const;
+ void aTestFunction() const;
+};
+
+void tst_FailInitData::initTestCase_data() const
+{
+ QVERIFY(false);
+}
+
+/*! \internal
+ This function should never be run because initTestCase_data fails.
+ */
+void tst_FailInitData::initTestCase() const
+{
+ qDebug() << "This function is NOT supposed to be called.";
+}
+
+/*! \internal
+ This function should never be run because initTestCase_data fails.
+ */
+void tst_FailInitData::aTestFunction() const
+{
+ qDebug() << "This function is NOT supposed to be called.";
+}
+
+QTEST_APPLESS_MAIN(tst_FailInitData)
+
+#include "tst_failinitdata.moc"
diff --git a/tests/auto/selftests/fetchbogus/fetchbogus.pro b/tests/auto/selftests/fetchbogus/fetchbogus.pro
new file mode 100644
index 0000000..badb636
--- /dev/null
+++ b/tests/auto/selftests/fetchbogus/fetchbogus.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_fetchbogus.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/fetchbogus/tst_fetchbogus.cpp b/tests/auto/selftests/fetchbogus/tst_fetchbogus.cpp
new file mode 100644
index 0000000..085cf73
--- /dev/null
+++ b/tests/auto/selftests/fetchbogus/tst_fetchbogus.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_FetchBogus: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void fetchBogus_data();
+ void fetchBogus();
+};
+
+void tst_FetchBogus::fetchBogus_data()
+{
+ QTest::addColumn<QString>("string");
+ QTest::newRow("foo") << QString("blah");
+}
+
+void tst_FetchBogus::fetchBogus()
+{
+ QFETCH(QString, bubu);
+}
+
+QTEST_MAIN(tst_FetchBogus)
+
+#include "tst_fetchbogus.moc"
diff --git a/tests/auto/selftests/globaldata/globaldata.pro b/tests/auto/selftests/globaldata/globaldata.pro
new file mode 100644
index 0000000..eb3b454
--- /dev/null
+++ b/tests/auto/selftests/globaldata/globaldata.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_globaldata.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/globaldata/tst_globaldata.cpp b/tests/auto/selftests/globaldata/tst_globaldata.cpp
new file mode 100644
index 0000000..15acf82
--- /dev/null
+++ b/tests/auto/selftests/globaldata/tst_globaldata.cpp
@@ -0,0 +1,153 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_Subtest: public QObject
+{
+ Q_OBJECT
+public slots:
+ void init();
+ void initTestCase();
+ void initTestCase_data();
+
+ void cleanup();
+ void cleanupTestCase();
+
+private slots:
+ void testGlobal_data();
+ void testGlobal();
+
+ void skip_data();
+ void skip();
+
+ void skipLocal_data() { testGlobal_data(); }
+ void skipLocal();
+
+ void skipSingle_data() { testGlobal_data(); }
+ void skipSingle();
+};
+
+
+void tst_Subtest::initTestCase()
+{
+ printf("initTestCase %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_Subtest::initTestCase_data()
+{
+ QTest::addColumn<bool>("booli");
+ QTest::newRow("1") << false;
+ QTest::newRow("2") << true;
+}
+
+void tst_Subtest::cleanupTestCase()
+{
+ printf("cleanupTestCase %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_Subtest::init()
+{
+ printf("init %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_Subtest::cleanup()
+{
+ printf("cleanup %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_Subtest::testGlobal_data()
+{
+ QTest::addColumn<bool>("booll");
+ QTest::newRow("local 1") << false;
+ QTest::newRow("local 2") << true;
+}
+
+void tst_Subtest::testGlobal()
+{
+ QFETCH_GLOBAL(bool, booli);
+ printf("global: %d\n", booli);
+ QFETCH(bool, booll);
+ printf("local: %d\n", booll);
+}
+
+void tst_Subtest::skip_data()
+{
+ QTest::addColumn<bool>("booll");
+ QTest::newRow("local 1") << false;
+ QTest::newRow("local 2") << true;
+
+ QSKIP("skipping", SkipAll);
+}
+
+void tst_Subtest::skip()
+{
+ printf("this line should never be reached\n");
+}
+
+void tst_Subtest::skipSingle()
+{
+ QFETCH_GLOBAL(bool, booli);
+ QFETCH(bool, booll);
+
+ if (booli && !booll)
+ QSKIP("skipping", SkipSingle);
+ printf("global: %d, local %d\n", booli, booll);
+}
+
+void tst_Subtest::skipLocal()
+{
+ QSKIP("skipping", SkipAll);
+}
+
+QTEST_MAIN(tst_Subtest)
+
+#include "tst_globaldata.moc"
diff --git a/tests/auto/selftests/maxwarnings/maxwarnings.cpp b/tests/auto/selftests/maxwarnings/maxwarnings.cpp
new file mode 100644
index 0000000..37340cf
--- /dev/null
+++ b/tests/auto/selftests/maxwarnings/maxwarnings.cpp
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore/QtCore>
+#include <QtTest/QtTest>
+
+class MaxWarnings: public QObject
+{
+ Q_OBJECT
+private slots:
+ void warn();
+};
+
+void MaxWarnings::warn()
+{
+ for (int i = 0; i < 10000; ++i)
+ qWarning("%d", i);
+}
+
+QTEST_MAIN(MaxWarnings)
+#include "maxwarnings.moc"
diff --git a/tests/auto/selftests/maxwarnings/maxwarnings.pro b/tests/auto/selftests/maxwarnings/maxwarnings.pro
new file mode 100644
index 0000000..b43affe
--- /dev/null
+++ b/tests/auto/selftests/maxwarnings/maxwarnings.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += maxwarnings.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/multiexec/multiexec.pro b/tests/auto/selftests/multiexec/multiexec.pro
new file mode 100644
index 0000000..723f56f
--- /dev/null
+++ b/tests/auto/selftests/multiexec/multiexec.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_multiexec.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/multiexec/tst_multiexec.cpp b/tests/auto/selftests/multiexec/tst_multiexec.cpp
new file mode 100644
index 0000000..5ae32aa
--- /dev/null
+++ b/tests/auto/selftests/multiexec/tst_multiexec.cpp
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+
+class tst_Nothing: public QObject
+{
+Q_OBJECT
+private slots:
+ void nothing() { QVERIFY(true); }
+};
+
+int main(int argc, char *argv[])
+{
+ tst_Nothing nada;
+ for (int i = 0; i < 5; ++i)
+ QTest::qExec(&nada, argc, argv);
+ return 0;
+}
+
+#include "tst_multiexec.moc"
diff --git a/tests/auto/selftests/qexecstringlist/qexecstringlist.pro b/tests/auto/selftests/qexecstringlist/qexecstringlist.pro
new file mode 100644
index 0000000..27afcb2
--- /dev/null
+++ b/tests/auto/selftests/qexecstringlist/qexecstringlist.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_qexecstringlist.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/qexecstringlist/tst_qexecstringlist.cpp b/tests/auto/selftests/qexecstringlist/tst_qexecstringlist.cpp
new file mode 100644
index 0000000..2c0175c
--- /dev/null
+++ b/tests/auto/selftests/qexecstringlist/tst_qexecstringlist.cpp
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_QExecStringList: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void testA() const;
+ void testB() const;
+ void testB_data() const;
+ void testC() const;
+};
+
+void tst_QExecStringList::testA() const
+{
+}
+
+void tst_QExecStringList::testB() const
+{
+ QFETCH(bool, dummy);
+ Q_UNUSED(dummy);
+}
+
+void tst_QExecStringList::testB_data() const
+{
+ QTest::addColumn<bool>("dummy");
+
+ QTest::newRow("Data1") << false;
+ QTest::newRow("Data2") << false;
+ QTest::newRow("Data3") << false;
+}
+
+void tst_QExecStringList::testC() const
+{
+}
+
+int main(int argc,char *argv[])
+{
+ QCoreApplication app(argc, argv);
+
+ tst_QExecStringList test;
+
+ QTest::qExec(&test, app.arguments());
+ QTest::qExec(&test, QStringList("appName"));
+ QTest::qExec(&test, QStringList("appName") << "testA");
+ QTest::qExec(&test, QStringList("appName") << "testB");
+ QTest::qExec(&test, QStringList("appName") << "testB:Data2");
+ QTest::qExec(&test, QStringList("appName") << "testC");
+
+ return 0;
+}
+
+#include "tst_qexecstringlist.moc"
diff --git a/tests/auto/selftests/selftests.pro b/tests/auto/selftests/selftests.pro
new file mode 100644
index 0000000..2fa1d50
--- /dev/null
+++ b/tests/auto/selftests/selftests.pro
@@ -0,0 +1,14 @@
+TEMPLATE = subdirs
+
+SUBDIRS = subtest test warnings maxwarnings cmptest globaldata skipglobal skip \
+ strcmp expectfail sleep fetchbogus crashes multiexec failinit failinitdata \
+ skipinit skipinitdata datetime singleskip assert waitwithoutgui differentexec \
+ exception qexecstringlist datatable commandlinedata\
+ benchlibwalltime benchlibcallgrind benchlibeventcounter benchlibtickcounter \
+ benchliboptions
+
+INSTALLS =
+
+QT = core
+
+
diff --git a/tests/auto/selftests/selftests.qrc b/tests/auto/selftests/selftests.qrc
new file mode 100644
index 0000000..125619e
--- /dev/null
+++ b/tests/auto/selftests/selftests.qrc
@@ -0,0 +1,38 @@
+<RCC>
+ <qresource prefix="/" >
+ <file>expected_subtest.txt</file>
+ <file>expected_warnings.txt</file>
+ <file>expected_maxwarnings.txt</file>
+ <file>expected_cmptest.txt</file>
+ <file>expected_alive.txt</file>
+ <file>expected_globaldata.txt</file>
+ <file>expected_skipglobal.txt</file>
+ <file>expected_skip.txt</file>
+ <file>expected_expectfail.txt</file>
+ <file>expected_strcmp.txt</file>
+ <file>expected_sleep.txt</file>
+ <file>expected_fetchbogus.txt</file>
+ <file>expected_crashes_1.txt</file>
+ <file>expected_crashes_2.txt</file>
+ <file>expected_multiexec.txt</file>
+ <file>expected_failinit.txt</file>
+ <file>expected_failinitdata.txt</file>
+ <file>expected_skipinitdata.txt</file>
+ <file>expected_skipinit.txt</file>
+ <file>expected_datetime.txt</file>
+ <file>expected_singleskip.txt</file>
+ <file>expected_assert.txt</file>
+ <file>expected_fatal.txt</file>
+ <file>expected_waitwithoutgui.txt</file>
+ <file>expected_differentexec.txt</file>
+ <file>expected_exception.txt</file>
+ <file>expected_qexecstringlist.txt</file>
+ <file>expected_datatable.txt</file>
+ <file>expected_commandlinedata.txt</file>
+ <file>expected_benchlibcallgrind.txt</file>
+ <file>expected_benchlibwalltime.txt</file>
+ <file>expected_benchlibeventcounter.txt</file>
+ <file>expected_benchliboptions.txt</file>
+ <file>expected_benchlibtickcounter.txt</file>
+ </qresource>
+</RCC>
diff --git a/tests/auto/selftests/singleskip/singleskip.pro b/tests/auto/selftests/singleskip/singleskip.pro
new file mode 100644
index 0000000..0d66f68
--- /dev/null
+++ b/tests/auto/selftests/singleskip/singleskip.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_singleskip.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/singleskip/tst_singleskip.cpp b/tests/auto/selftests/singleskip/tst_singleskip.cpp
new file mode 100644
index 0000000..569934a
--- /dev/null
+++ b/tests/auto/selftests/singleskip/tst_singleskip.cpp
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_SingleSkip: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void myTest() const;
+};
+
+void tst_SingleSkip::myTest() const
+{
+ QSKIP("skipping test", SkipAll);
+}
+
+QTEST_MAIN(tst_SingleSkip)
+
+#include "tst_singleskip.moc"
diff --git a/tests/auto/selftests/skip/skip.pro b/tests/auto/selftests/skip/skip.pro
new file mode 100644
index 0000000..545a579
--- /dev/null
+++ b/tests/auto/selftests/skip/skip.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_skip.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/skip/tst_skip.cpp b/tests/auto/selftests/skip/tst_skip.cpp
new file mode 100644
index 0000000..b1a3936
--- /dev/null
+++ b/tests/auto/selftests/skip/tst_skip.cpp
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_Skip: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void test_data();
+ void test();
+
+ void emptytest_data();
+ void emptytest();
+
+ void singleSkip_data();
+ void singleSkip();
+};
+
+
+void tst_Skip::test_data()
+{
+ QTest::addColumn<bool>("booll");
+ QTest::newRow("local 1") << false;
+ QTest::newRow("local 2") << true;
+
+ QSKIP("skipping all", SkipAll);
+}
+
+void tst_Skip::test()
+{
+ printf("this line should never be reached, since we skip in the _data function\n");
+}
+
+void tst_Skip::emptytest_data()
+{
+ QSKIP("skipping all", SkipAll);
+}
+
+void tst_Skip::emptytest()
+{
+ printf("this line should never be reached, since we skip in the _data function\n");
+}
+
+void tst_Skip::singleSkip_data()
+{
+ QTest::addColumn<bool>("booll");
+ QTest::newRow("local 1") << false;
+ QTest::newRow("local 2") << true;
+}
+
+void tst_Skip::singleSkip()
+{
+ QFETCH(bool, booll);
+ if (!booll)
+ QSKIP("skipping one", SkipSingle);
+ printf("this line should only be reached once (%s)\n", booll ? "true" : "false");
+}
+
+QTEST_MAIN(tst_Skip)
+
+#include "tst_skip.moc"
diff --git a/tests/auto/selftests/skipglobal/skipglobal.pro b/tests/auto/selftests/skipglobal/skipglobal.pro
new file mode 100644
index 0000000..97553c6
--- /dev/null
+++ b/tests/auto/selftests/skipglobal/skipglobal.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_skipglobal.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/skipglobal/tst_skipglobal.cpp b/tests/auto/selftests/skipglobal/tst_skipglobal.cpp
new file mode 100644
index 0000000..fef35d1
--- /dev/null
+++ b/tests/auto/selftests/skipglobal/tst_skipglobal.cpp
@@ -0,0 +1,113 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_SkipGlobal: public QObject
+{
+ Q_OBJECT
+public slots:
+ void init();
+ void initTestCase();
+ void initTestCase_data();
+
+ void cleanup();
+ void cleanupTestCase();
+
+private slots:
+ void testGlobal_data();
+ void testGlobal();
+};
+
+
+void tst_SkipGlobal::initTestCase()
+{
+ printf("initTestCase %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_SkipGlobal::initTestCase_data()
+{
+ QSKIP("Skippy Skippy", SkipAll);
+}
+
+void tst_SkipGlobal::cleanupTestCase()
+{
+ printf("cleanupTestCase %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_SkipGlobal::init()
+{
+ printf("init %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_SkipGlobal::cleanup()
+{
+ printf("cleanup %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_SkipGlobal::testGlobal_data()
+{
+ QTest::addColumn<bool>("booll");
+ QTest::newRow("local 1") << false;
+ QTest::newRow("local 2") << true;
+}
+
+void tst_SkipGlobal::testGlobal()
+{
+ QFETCH_GLOBAL(bool, booli);
+ printf("global: %d\n", booli);
+ QFETCH(bool, booll);
+ printf("local: %d\n", booll);
+}
+
+QTEST_MAIN(tst_SkipGlobal)
+
+#include "tst_skipglobal.moc"
diff --git a/tests/auto/selftests/skipinit/skipinit.pro b/tests/auto/selftests/skipinit/skipinit.pro
new file mode 100644
index 0000000..d8ee13e
--- /dev/null
+++ b/tests/auto/selftests/skipinit/skipinit.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_skipinit.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/skipinit/tst_skipinit.cpp b/tests/auto/selftests/skipinit/tst_skipinit.cpp
new file mode 100644
index 0000000..8ecaf3a
--- /dev/null
+++ b/tests/auto/selftests/skipinit/tst_skipinit.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+
+class tst_SkipInit: public QObject
+{
+Q_OBJECT
+private slots:
+ void initTestCase() const;
+ void aTestFunction() const;
+};
+
+void tst_SkipInit::initTestCase() const
+{
+ QSKIP("Skip inside initTestCase. This should skip all tests in the class.", SkipAll);
+}
+
+/*! \internal
+ This function should never be run because initTestCase fails.
+ */
+void tst_SkipInit::aTestFunction() const
+{
+ qDebug() << "ERROR: This function is NOT supposed to be run.";
+}
+
+QTEST_APPLESS_MAIN(tst_SkipInit)
+
+#include "tst_skipinit.moc"
diff --git a/tests/auto/selftests/skipinitdata/skipinitdata.pro b/tests/auto/selftests/skipinitdata/skipinitdata.pro
new file mode 100644
index 0000000..8da653e
--- /dev/null
+++ b/tests/auto/selftests/skipinitdata/skipinitdata.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_skipinitdata.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/skipinitdata/tst_skipinitdata.cpp b/tests/auto/selftests/skipinitdata/tst_skipinitdata.cpp
new file mode 100644
index 0000000..ff005a2
--- /dev/null
+++ b/tests/auto/selftests/skipinitdata/tst_skipinitdata.cpp
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+
+class tst_SkipInitData: public QObject
+{
+Q_OBJECT
+private slots:
+ void initTestCase_data() const;
+ void initTestCase() const;
+ void aTestFunction() const;
+};
+
+void tst_SkipInitData::initTestCase_data() const
+{
+ QSKIP("Skip inside initTestCase. This should skip all tests in the class.", SkipAll);
+}
+
+void tst_SkipInitData::initTestCase() const
+{
+}
+
+/*! \internal
+ This function should never be run because initTestCase fails.
+ */
+void tst_SkipInitData::aTestFunction() const
+{
+ qDebug() << "ERROR: this function is NOT supposed to be run.";
+}
+
+QTEST_APPLESS_MAIN(tst_SkipInitData)
+
+#include "tst_skipinitdata.moc"
diff --git a/tests/auto/selftests/sleep/sleep.pro b/tests/auto/selftests/sleep/sleep.pro
new file mode 100644
index 0000000..7b28ccc
--- /dev/null
+++ b/tests/auto/selftests/sleep/sleep.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_sleep.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/sleep/tst_sleep.cpp b/tests/auto/selftests/sleep/tst_sleep.cpp
new file mode 100644
index 0000000..f9e1cf7
--- /dev/null
+++ b/tests/auto/selftests/sleep/tst_sleep.cpp
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_Sleep: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void sleep();
+};
+
+void tst_Sleep::sleep()
+{
+ QTime t;
+ t.start();
+
+ QTest::qSleep(100);
+ QVERIFY(t.elapsed() > 90);
+
+ QTest::qSleep(1000);
+ QVERIFY(t.elapsed() > 1000);
+
+ QTest::qSleep(1000 * 10); // 10 seconds
+ QVERIFY(t.elapsed() > 1000 * 10);
+}
+
+QTEST_MAIN(tst_Sleep)
+
+#include "tst_sleep.moc"
diff --git a/tests/auto/selftests/strcmp/strcmp.pro b/tests/auto/selftests/strcmp/strcmp.pro
new file mode 100644
index 0000000..489211c
--- /dev/null
+++ b/tests/auto/selftests/strcmp/strcmp.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_strcmp.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/strcmp/tst_strcmp.cpp b/tests/auto/selftests/strcmp/tst_strcmp.cpp
new file mode 100644
index 0000000..b4d61ac
--- /dev/null
+++ b/tests/auto/selftests/strcmp/tst_strcmp.cpp
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_StrCmp: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void compareCharStars() const;
+ void compareByteArray() const;
+ void failByteArray() const;
+ void failByteArrayNull() const;
+ void failByteArrayEmpty() const;
+ void failByteArraySingleChars() const;
+};
+
+void tst_StrCmp::compareCharStars() const
+{
+ QCOMPARE((const char *)"foo", (const char *)"foo");
+
+ const char *str1 = "foo";
+ QCOMPARE("foo", str1);
+ QCOMPARE(str1, "foo");
+ QCOMPARE(str1, str1);
+
+ char *str2 = "foo";
+ QCOMPARE("foo", str2);
+ QCOMPARE(str2, "foo");
+ QCOMPARE(str2, str2);
+ QCOMPARE(str1, str2);
+ QCOMPARE(str2, str1);
+
+ const char str3[] = "foo";
+ QCOMPARE((const char *)str3, "foo");
+ QCOMPARE("foo", (const char *)str3);
+ QCOMPARE((const char *)str3, str1);
+ QCOMPARE((const char *)str3, str2);
+ QCOMPARE(str1, (const char *)str3);
+ QCOMPARE(str2, (const char *)str3);
+}
+
+void tst_StrCmp::compareByteArray() const
+{
+ QByteArray ba = "foo";
+ QEXPECT_FAIL("", "Next test should fail", Continue);
+ QCOMPARE(ba.constData(), "bar");
+ QCOMPARE(ba.constData(), "foo");
+
+ char *bar = "bar";
+ char *foo = "foo";
+
+ QEXPECT_FAIL("", "Next test should fail", Continue);
+ QCOMPARE(ba.data(), bar);
+ QCOMPARE(ba.data(), foo);
+
+ const char *cbar = "bar";
+ const char *cfoo = "foo";
+
+ QEXPECT_FAIL("", "Next test should fail", Continue);
+ QCOMPARE(ba.constData(), cbar);
+ QCOMPARE(ba.constData(), cfoo);
+
+ /* Create QByteArrays of the size that makes the corresponding toString() crop output. */
+ const QByteArray b(500, 'A');
+ const QByteArray a(500, 'B');
+
+ QCOMPARE(a, b);
+}
+
+void tst_StrCmp::failByteArray() const
+{
+ /* Compare small, different byte arrays. */
+ QCOMPARE(QByteArray("abc"), QByteArray("cba"));
+}
+
+void tst_StrCmp::failByteArrayNull() const
+{
+ /* Compare null byte array against with content. */
+ QCOMPARE(QByteArray("foo"), QByteArray());
+}
+
+void tst_StrCmp::failByteArrayEmpty() const
+{
+ QCOMPARE(QByteArray(""), QByteArray("foo"));
+}
+
+void tst_StrCmp::failByteArraySingleChars() const
+{
+ /* Compare null byte array against with content. */
+ //QCOMPARE(QString(250, 'a'), QString(250, 'b'));
+ QCOMPARE(QByteArray("6"), QByteArray("7"));
+}
+
+QTEST_MAIN(tst_StrCmp)
+
+#include "tst_strcmp.moc"
diff --git a/tests/auto/selftests/subtest/subtest.pro b/tests/auto/selftests/subtest/subtest.pro
new file mode 100644
index 0000000..4d258ee
--- /dev/null
+++ b/tests/auto/selftests/subtest/subtest.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_subtest.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/subtest/tst_subtest.cpp b/tests/auto/selftests/subtest/tst_subtest.cpp
new file mode 100644
index 0000000..cf7ad88
--- /dev/null
+++ b/tests/auto/selftests/subtest/tst_subtest.cpp
@@ -0,0 +1,219 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_Subtest: public QObject
+{
+ Q_OBJECT
+public slots:
+ void init();
+ void initTestCase();
+
+ void cleanup();
+ void cleanupTestCase();
+
+private slots:
+ void test1();
+ void test2_data();
+ void test2();
+ void test3_data();
+ void test3();
+ void floatComparisons() const;
+ void floatComparisons_data() const;
+ void compareFloatTests() const;
+ void compareFloatTests_data() const;
+};
+
+
+void tst_Subtest::initTestCase()
+{
+ printf("initTestCase %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_Subtest::cleanupTestCase()
+{
+ printf("cleanupTestCase %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_Subtest::init()
+{
+ printf("init %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_Subtest::cleanup()
+{
+ printf("cleanup %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_Subtest::test1()
+{
+ printf("test1 %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+}
+
+void tst_Subtest::test2_data()
+{
+ printf("test2_data %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+
+ QTest::addColumn<QString>("str");
+
+ QTest::newRow("data0") << QString("hello0");
+ QTest::newRow("data1") << QString("hello1");
+ QTest::newRow("data2") << QString("hello2");
+
+ printf("test2_data end\n");
+}
+
+void tst_Subtest::test2()
+{
+ printf("test2 %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+
+ static int count = 0;
+
+ QFETCH(QString, str);
+ QCOMPARE(str, QString("hello%1").arg(count++));
+
+ printf("test2 end\n");
+}
+
+void tst_Subtest::test3_data()
+{
+ printf("test3_data %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+
+ QTest::addColumn<QString>("str");
+
+ QTest::newRow("data0") << QString("hello0");
+ QTest::newRow("data1") << QString("hello1");
+ QTest::newRow("data2") << QString("hello2");
+
+ printf("test3_data end\n");
+}
+
+void tst_Subtest::test3()
+{
+ printf("test2 %s %s\n",
+ QTest::currentTestFunction() ? QTest::currentTestFunction() : "(null)",
+ QTest::currentDataTag() ? QTest::currentDataTag() : "(null)");
+
+ QFETCH(QString, str);
+
+ // second and third time we call this it shoud FAIL
+ QCOMPARE(str, QString("hello0"));
+
+ printf("test2 end\n");
+}
+
+void tst_Subtest::floatComparisons() const
+{
+ QFETCH(float, operandLeft);
+ QFETCH(float, operandRight);
+
+ QCOMPARE(operandLeft, operandRight);
+}
+
+void tst_Subtest::floatComparisons_data() const
+{
+ QTest::addColumn<float>("operandLeft");
+ QTest::addColumn<float>("operandRight");
+
+ QTest::newRow("should SUCCEED")
+ << float(0)
+ << float(0);
+
+ QTest::newRow("should FAIL")
+ << float(1.00000)
+ << float(3.00000);
+
+ QTest::newRow("should FAIL")
+ << float(1.00000e-7f)
+ << float(3.00000e-7f);
+
+ QTest::newRow("should FAIL")
+ << float(100001)
+ << float(100002);
+}
+
+void tst_Subtest::compareFloatTests() const
+{
+ QFETCH(float, t1);
+
+ // Create two more values
+ // t2 differs from t1 by 1 ppm (part per million)
+ // t3 differs from t1 by 200%
+ // we should consider that t1 == t2 and t1 != t3
+ const float t2 = t1 + (t1 / 1e6);
+ const float t3 = 3 * t1;
+
+ QCOMPARE(t1, t2);
+
+ /* Should FAIL. */
+ QCOMPARE(t1, t3);
+}
+
+void tst_Subtest::compareFloatTests_data() const
+{
+ QTest::addColumn<float>("t1");
+ QTest::newRow("1e0") << 1e0f;
+ QTest::newRow("1e-7") << 1e-7f;
+ QTest::newRow("1e+7") << 1e+7f;
+}
+
+QTEST_MAIN(tst_Subtest)
+
+#include "tst_subtest.moc"
diff --git a/tests/auto/selftests/test/test.pro b/tests/auto/selftests/test/test.pro
new file mode 100644
index 0000000..d61606c
--- /dev/null
+++ b/tests/auto/selftests/test/test.pro
@@ -0,0 +1,17 @@
+load(qttest_p4)
+SOURCES += ../tst_selftests.cpp
+QT += core xml
+
+TARGET = ../tst_selftests
+
+win32 {
+ CONFIG(debug, debug|release) {
+ TARGET = ../../debug/tst_selftests
+} else {
+ TARGET = ../../release/tst_selftests
+ }
+}
+
+RESOURCES += ../selftests.qrc
+
+
diff --git a/tests/auto/selftests/tst_selftests.cpp b/tests/auto/selftests/tst_selftests.cpp
new file mode 100644
index 0000000..4243612
--- /dev/null
+++ b/tests/auto/selftests/tst_selftests.cpp
@@ -0,0 +1,437 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+#include <QtXml/QXmlStreamReader>
+#include <private/cycle_p.h>
+
+class tst_Selftests: public QObject
+{
+ Q_OBJECT
+private slots:
+ void initTestCase();
+ void runSubTest_data();
+ void runSubTest();
+ void checkXML() const;
+ void checkXML_data();
+
+private:
+ QStringList m_checkXMLBlacklist;
+};
+
+struct BenchmarkResult
+{
+ qint64 total;
+ qint64 iterations;
+ QString unit;
+
+ inline QString toString() const
+ { return QString("total:%1, unit:%2, iterations:%3").arg(total).arg(unit).arg(iterations); }
+
+ static BenchmarkResult parse(QString const&, QString*);
+};
+
+QT_BEGIN_NAMESPACE
+namespace QTest
+{
+template <>
+inline bool qCompare
+ (BenchmarkResult const &r1, BenchmarkResult const &r2,
+ const char* actual, const char* expected, const char* file, int line)
+{
+ // First make sure the iterations and unit match.
+ if (r1.iterations != r2.iterations || r1.unit != r2.unit) {
+ /* Nope - compare whole string for best failure message */
+ return qCompare(r1.toString(), r2.toString(), actual, expected, file, line);
+ }
+
+ /*
+ Now check the value. Some variance is allowed, and how much depends on the
+ measured unit.
+ */
+ qreal variance = 0.;
+ if (r1.unit == "msec") {
+ variance = 0.1;
+ }
+ else if (r1.unit == "instr. loads") {
+ variance = 0.001;
+ }
+ else if (r1.unit == "ticks") {
+ variance = 0.0001;
+ }
+ if (variance == 0.) {
+ /* No variance allowed - compare whole string */
+ return qCompare(r1.toString(), r2.toString(), actual, expected, file, line);
+ }
+
+ if (qAbs(qreal(r1.total) - qreal(r2.total)) <= qreal(r1.total)*variance) {
+ return compare_helper(true, "COMPARE()", file, line);
+ }
+
+ /* Whoops, didn't match. Compare the whole string for the most useful failure message. */
+ return qCompare(r1.toString(), r2.toString(), actual, expected, file, line);
+}
+}
+QT_END_NAMESPACE
+
+static QList<QByteArray> splitLines(QByteArray ba)
+{
+ ba.replace('\r', "");
+ return ba.split('\n');
+}
+
+static QList<QByteArray> expectedResult(const QString &subdir)
+{
+ QFile file(":/expected_" + subdir + ".txt");
+ if (!file.open(QIODevice::ReadOnly))
+ return QList<QByteArray>();
+ return splitLines(file.readAll());
+}
+
+void tst_Selftests::runSubTest_data()
+{
+ QTest::addColumn<QString>("subdir");
+ QTest::addColumn<QStringList>("arguments");
+
+ QTest::newRow("subtest") << "subtest" << QStringList();
+ QTest::newRow("warnings") << "warnings" << QStringList();
+ QTest::newRow("maxwarnings") << "maxwarnings" << QStringList();
+ QTest::newRow("cmptest") << "cmptest" << QStringList();
+// QTest::newRow("alive") << "alive" << QStringList(); // timer dependent
+ QTest::newRow("globaldata") << "globaldata" << QStringList();
+ QTest::newRow("skipglobal") << "skipglobal" << QStringList();
+ QTest::newRow("skip") << "skip" << QStringList();
+ QTest::newRow("strcmp") << "strcmp" << QStringList();
+ QTest::newRow("expectfail") << "expectfail" << QStringList();
+ QTest::newRow("sleep") << "sleep" << QStringList();
+ QTest::newRow("fetchbogus") << "fetchbogus" << QStringList();
+ QTest::newRow("crashes") << "crashes" << QStringList();
+ QTest::newRow("multiexec") << "multiexec" << QStringList();
+ QTest::newRow("failinit") << "failinit" << QStringList();
+ QTest::newRow("failinitdata") << "failinitdata" << QStringList();
+ QTest::newRow("skipinit") << "skipinit" << QStringList();
+ QTest::newRow("skipinitdata") << "skipinitdata" << QStringList();
+ QTest::newRow("datetime") << "datetime" << QStringList();
+ QTest::newRow("singleskip") << "singleskip" << QStringList();
+
+ //on windows assert does nothing in release mode and blocks execution with a popup window in debug mode
+#if !defined(Q_OS_WIN)
+ QTest::newRow("assert") << "assert" << QStringList();
+#endif
+
+ QTest::newRow("waitwithoutgui") << "waitwithoutgui" << QStringList();
+ QTest::newRow("differentexec") << "differentexec" << QStringList();
+#ifndef QT_NO_EXCEPTIONS
+ // The machine that run the intel autotests will popup a dialog
+ // with a warning that an uncaught exception was thrown.
+ // This will time out and falsely fail, therefore we disable the test for that platform.
+# if !defined(Q_CC_INTEL) || !defined(Q_OS_WIN)
+ QTest::newRow("exception") << "exception" << QStringList();
+# endif
+#endif
+ QTest::newRow("qexecstringlist") << "qexecstringlist" << QStringList();
+ QTest::newRow("datatable") << "datatable" << QStringList();
+ QTest::newRow("commandlinedata") << "commandlinedata" << QString("fiveTablePasses fiveTablePasses:fiveTablePasses_data1 -v2").split(' ');
+
+#if defined(__GNUC__) && defined(__i386) && defined(Q_OS_LINUX)
+ QTest::newRow("benchlibcallgrind") << "benchlibcallgrind" << QStringList("-callgrind");
+#endif
+ QTest::newRow("benchlibeventcounter") << "benchlibeventcounter" << QStringList("-eventcounter");
+ QTest::newRow("benchliboptions") << "benchliboptions" << QStringList("-eventcounter");
+ QTest::newRow("benchlibwalltime") << "benchlibwalltime" << QStringList();
+
+ //### QWS tests are currently run on a virtual machine, where ticks are not
+ //### monotonously increasing
+#if defined(HAVE_TICK_COUNTER) && !defined(Q_WS_QWS)
+ QTest::newRow("benchlibtickcounter") << "benchlibtickcounter" << QStringList("-tickcounter");
+#endif
+
+}
+
+void tst_Selftests::runSubTest()
+{
+ QFETCH(QString, subdir);
+ QFETCH(QStringList, arguments);
+
+ QProcess proc;
+ proc.setEnvironment(QStringList(""));
+ proc.start(subdir + "/tst_" + subdir, arguments);
+ QVERIFY(proc.waitForFinished());
+
+ const QByteArray out(proc.readAllStandardOutput());
+ const QByteArray err(proc.readAllStandardError());
+
+ /* Windows-MSVC decide to output an error message when exceptions are thrown,
+ * so let's not check stderr for those. */
+#if defined(Q_OS_WIN)
+ if(subdir != QLatin1String("exception") && subdir != QLatin1String("fetchbogus"))
+#endif
+ QVERIFY2(err.isEmpty(), err.constData());
+
+
+ QList<QByteArray> res = splitLines(out);
+ QList<QByteArray> exp = expectedResult(subdir);
+
+ if (exp.count() == 0) {
+ QList<QList<QByteArray> > expArr;
+ int i = 1;
+ do {
+ exp = expectedResult(subdir + QString("_%1").arg(i++));
+ if (exp.count())
+ expArr += exp;
+ } while(exp.count());
+
+ for (int j = 0; j < expArr.count(); ++j) {
+ if (res.count() == expArr.at(j).count()) {
+ exp = expArr.at(j);
+ break;
+ }
+ }
+ } else {
+ QCOMPARE(res.count(), exp.count());
+ }
+
+ bool benchmark = false;
+ for (int i = 0; i < res.count(); ++i) {
+ QByteArray line = res.at(i);
+ if (line.startsWith("Config: Using QTest"))
+ continue;
+ // the __FILE__ __LINE__ output is compiler dependent, skip it
+ if (line.startsWith(" Loc: [") && line.endsWith(")]"))
+ continue;
+ if (line.endsWith(" : failure location"))
+ continue;
+
+ const QString output(QString::fromLatin1(line));
+ const QString expected(QString::fromLatin1(exp.at(i)));
+
+ if (line.contains("ASSERT") && output != expected)
+ QEXPECT_FAIL("assert", "QTestLib prints out the absolute path.", Continue);
+
+ /* On some platforms we compile without RTTI, and as a result we never throw an exception. */
+ if(expected.startsWith(QLatin1String("FAIL! : tst_Exception::throwException() Caught unhandled exce")) && expected != output)
+ QCOMPARE(output.simplified(), QString::fromLatin1("tst_Exception::throwException()").simplified());
+ else
+ {
+ if(output != expected && qstrcmp(QTest::currentDataTag(), "subtest") == 0)
+ {
+ /* The floating point formatting differs between platforms, so let's just skip it. */
+ continue;
+ }
+ else {
+ /*
+ Are we expecting this line to be a benchmark result?
+ If so, don't do a literal comparison, since results have some natural variance.
+ */
+ if (benchmark) {
+ QString error;
+
+ BenchmarkResult actualResult = BenchmarkResult::parse(output, &error);
+ QVERIFY2(error.isEmpty(), qPrintable(QString("Actual line didn't parse as benchmark result: %1\nLine: %2").arg(error).arg(output)));
+
+ BenchmarkResult expectedResult = BenchmarkResult::parse(expected, &error);
+ QVERIFY2(error.isEmpty(), qPrintable(QString("Expected line didn't parse as benchmark result: %1\nLine: %2").arg(error).arg(expected)));
+
+ QCOMPARE(actualResult, expectedResult);
+ }
+ else {
+ QCOMPARE(output, expected);
+ }
+ }
+ }
+
+ benchmark = line.startsWith("RESULT : ");
+ }
+}
+
+void tst_Selftests::initTestCase()
+{
+ m_checkXMLBlacklist.append("crashes"); // This test crashes
+ m_checkXMLBlacklist.append("waitwithoutgui"); // This test is not a QTestLib test.
+
+ /* Output from several tests is broken with the XML output method,
+ * and it's quite heavy in the design. See task 155001. */
+ m_checkXMLBlacklist.append("multiexec");
+ m_checkXMLBlacklist.append("differentexec");
+ m_checkXMLBlacklist.append("qexecstringlist");
+ m_checkXMLBlacklist.append("benchliboptions");
+}
+
+void tst_Selftests::checkXML() const
+{
+ QFETCH(QString, subdir);
+ QFETCH(QStringList, arguments);
+
+ if(m_checkXMLBlacklist.contains(subdir))
+ return;
+
+ arguments.prepend("-xml");
+
+ QProcess proc;
+ proc.setEnvironment(QStringList(""));
+ proc.start(subdir + "/tst_" + subdir, arguments);
+ QVERIFY(proc.waitForFinished());
+
+ QByteArray out(proc.readAllStandardOutput());
+ QByteArray err(proc.readAllStandardError());
+
+ /* Some platforms decides to output a message for uncaught exceptions. For instance,
+ * this is what windows platforms says:
+ * "This application has requested the Runtime to terminate it in an unusual way.
+ * Please contact the application's support team for more information." */
+ if(subdir != QLatin1String("exception") && subdir != QLatin1String("fetchbogus"))
+ QVERIFY2(err.isEmpty(), err.constData());
+
+ QXmlStreamReader reader(out);
+
+ while(!reader.atEnd())
+ reader.readNext();
+
+ QVERIFY(!reader.error());
+}
+
+void tst_Selftests::checkXML_data()
+{
+ runSubTest_data();
+}
+
+/* Parse line into the BenchmarkResult it represents. */
+BenchmarkResult BenchmarkResult::parse(QString const& line, QString* error)
+{
+ if (error) *error = QString();
+ BenchmarkResult out;
+
+ QString remaining = line.trimmed();
+
+ if (remaining.isEmpty()) {
+ if (error) *error = "Line is empty";
+ return out;
+ }
+
+ /* This code avoids using a QRegExp because QRegExp might be broken. */
+
+ /* Sample format: 4,000 msec per iteration (total: 4000, iterations: 1) */
+
+ QString sFirstNumber;
+ while (!remaining.isEmpty() && !remaining.at(0).isSpace()) {
+ sFirstNumber += remaining.at(0);
+ remaining.remove(0,1);
+ }
+ remaining = remaining.trimmed();
+
+ /* 4,000 -> 4000 */
+ sFirstNumber.remove(',');
+
+ /* Should now be parseable as floating point */
+ bool ok;
+ double firstNumber = sFirstNumber.toDouble(&ok);
+ if (!ok) {
+ if (error) *error = sFirstNumber + " (at beginning of line) is not a valid number";
+ return out;
+ }
+
+ /* Remaining: msec per iteration (total: 4000, iterations: 1) */
+ static const char periterbit[] = " per iteration (total: ";
+ QString unit;
+ while (!remaining.startsWith(periterbit) && !remaining.isEmpty()) {
+ unit += remaining.at(0);
+ remaining.remove(0,1);
+ }
+ if (remaining.isEmpty()) {
+ if (error) *error = "Could not find pattern: '<unit> per iteration (total: '";
+ return out;
+ }
+
+ remaining = remaining.mid(sizeof(periterbit)-1);
+
+ /* Remaining: 4000, iterations: 1) */
+ static const char itersbit[] = ", iterations: ";
+ QString sTotal;
+ while (!remaining.startsWith(itersbit) && !remaining.isEmpty()) {
+ sTotal += remaining.at(0);
+ remaining.remove(0,1);
+ }
+ if (remaining.isEmpty()) {
+ if (error) *error = "Could not find pattern: '<number>, iterations: '";
+ return out;
+ }
+
+ remaining = remaining.mid(sizeof(itersbit)-1);
+
+ qint64 total = sTotal.toLongLong(&ok);
+ if (!ok) {
+ if (error) *error = sTotal + " (total) is not a valid integer";
+ return out;
+ }
+
+ /* Remaining: 1) */
+ QString sIters;
+ while (remaining != QLatin1String(")") && !remaining.isEmpty()) {
+ sIters += remaining.at(0);
+ remaining.remove(0,1);
+ }
+ if (remaining.isEmpty()) {
+ if (error) *error = "Could not find pattern: '<num>)'";
+ return out;
+ }
+ qint64 iters = sIters.toLongLong(&ok);
+ if (!ok) {
+ if (error) *error = sIters + " (iterations) is not a valid integer";
+ return out;
+ }
+
+ double calcFirstNumber = double(total)/double(iters);
+ if (!qFuzzyCompare(firstNumber, calcFirstNumber)) {
+ if (error) *error = QString("total/iters is %1, but benchlib output result as %2").arg(calcFirstNumber).arg(firstNumber);
+ return out;
+ }
+
+ out.total = total;
+ out.unit = unit;
+ out.iterations = iters;
+ return out;
+}
+
+QTEST_MAIN(tst_Selftests)
+
+#include "tst_selftests.moc"
diff --git a/tests/auto/selftests/updateBaselines.sh b/tests/auto/selftests/updateBaselines.sh
new file mode 100755
index 0000000..a0f22e6
--- /dev/null
+++ b/tests/auto/selftests/updateBaselines.sh
@@ -0,0 +1,34 @@
+# Be *really* sure that your fix is right, before running this script.
+
+tests=" \
+ cmptest \
+ cmptest \
+ cmptest \
+ datatable \
+ datetime \
+ expectfail \
+ expectfail \
+ globaldata \
+ globaldata \
+ maxwarnings \
+ multiexec \
+ singleskip \
+ qexecstringlist \
+ differentexec \
+ skip \
+ skip \
+ skipglobal \
+ sleep \
+ strcmp \
+ subtest \
+ warnings"
+
+for test in $tests; do
+ echo "Updating $test"
+ cd $test
+ baseline="../expected_"$test".txt"
+ p4 edit $baseline
+ ./tst_$test > ../expected_"$test".txt
+ p4 revert -a $baseline
+ cd ..
+done
diff --git a/tests/auto/selftests/waitwithoutgui/tst_waitwithoutgui.cpp b/tests/auto/selftests/waitwithoutgui/tst_waitwithoutgui.cpp
new file mode 100644
index 0000000..e43277f
--- /dev/null
+++ b/tests/auto/selftests/waitwithoutgui/tst_waitwithoutgui.cpp
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+#include <QTextStream>
+#include <QCoreApplication>
+
+int main(int argc, char **argv)
+{
+ QCoreApplication app(argc, argv);
+
+ QTextStream out(stdout);
+
+ out << "We just output something such that there's a baseline to compare against." << endl;
+
+ /* Simply call qWait(). */
+ QTest::qWait(100);
+
+ out << "Finished waiting!" << endl;
+
+ return 0;
+}
+
diff --git a/tests/auto/selftests/waitwithoutgui/waitwithoutgui.pro b/tests/auto/selftests/waitwithoutgui/waitwithoutgui.pro
new file mode 100644
index 0000000..8cdf7cc
--- /dev/null
+++ b/tests/auto/selftests/waitwithoutgui/waitwithoutgui.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+QT -= gui
+SOURCES += tst_waitwithoutgui.cpp
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+
diff --git a/tests/auto/selftests/warnings/tst_warnings.cpp b/tests/auto/selftests/warnings/tst_warnings.cpp
new file mode 100644
index 0000000..8d5f276
--- /dev/null
+++ b/tests/auto/selftests/warnings/tst_warnings.cpp
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+class tst_Warnings: public QObject
+{
+ Q_OBJECT
+private slots:
+ void testWarnings();
+ void testMissingWarnings();
+};
+
+void tst_Warnings::testWarnings()
+{
+ printf("testWarnings 1: next line prints \"Warning\"\n");
+ qWarning("Warning");
+ printf("testWarnings 2: next line prints nothing\n");
+
+ QTest::ignoreMessage(QtWarningMsg, "Warning");
+ qWarning("Warning");
+ printf("testWarnings 3: next line prints \"Warning\"\n");
+
+ qWarning("Warning");
+ printf("testWarnings 4: over\n");
+
+ printf("testWarnings 5: next line prints \"Debug\"\n");
+ qDebug("Debug");
+ printf("testWarnings 6: next line prints nothing\n");
+
+ QTest::ignoreMessage(QtDebugMsg, "Debug");
+ qDebug("Debug");
+ printf("testWarnings 7: next line prints \"Debug\"\n");
+
+ qDebug("Debug");
+ printf("testWarnings 8: next comes \"Baba\" twice\n");
+
+ QTest::ignoreMessage(QtDebugMsg, "Bubu");
+ qDebug("Baba");
+ qDebug("Bubu");
+ qDebug("Baba");
+
+}
+
+void tst_Warnings::testMissingWarnings()
+{
+ QTest::ignoreMessage(QtWarningMsg, "Warning0");
+ QTest::ignoreMessage(QtWarningMsg, "Warning1");
+ QTest::ignoreMessage(QtWarningMsg, "Warning2");
+
+ qWarning("Warning2");
+}
+
+QTEST_MAIN(tst_Warnings)
+
+#include "tst_warnings.moc"
diff --git a/tests/auto/selftests/warnings/warnings.pro b/tests/auto/selftests/warnings/warnings.pro
new file mode 100644
index 0000000..9ae22d3
--- /dev/null
+++ b/tests/auto/selftests/warnings/warnings.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+SOURCES += tst_warnings.cpp
+QT = core
+
+mac:CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+