summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2012-12-06 17:16:56 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-12-11 13:37:57 +0100
commit6694d391316a490674ecb97f64e1c2e82328d2ce (patch)
tree42561ca04078ce0d0f1af1babe39d009c1a4c0e0
parent6dd9cc8aa8f85a00f1c6448eaf1382af23284195 (diff)
centralize headersclean test
so other modules can actually re-use the code without referencing qtbase sources. Change-Id: Id66f07b476e539273dd32455e7642a17d7e5d0ef Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rw-r--r--mkspecs/features/data/headersclean/tst_headersclean.cpp.in (renamed from tests/auto/other/headersclean/tst_headersclean.cpp)4
-rw-r--r--mkspecs/features/qt_headersclean.prf (renamed from tests/auto/other/headersclean/headersclean.pri)24
-rw-r--r--tests/auto/other/headersclean/headersclean.pro4
-rw-r--r--tests/auto/other/headersclean/qt_headersclean_headers.h70
4 files changed, 22 insertions, 80 deletions
diff --git a/tests/auto/other/headersclean/tst_headersclean.cpp b/mkspecs/features/data/headersclean/tst_headersclean.cpp.in
index 91abca4373..1784615dd5 100644
--- a/tests/auto/other/headersclean/tst_headersclean.cpp
+++ b/mkspecs/features/data/headersclean/tst_headersclean.cpp.in
@@ -45,11 +45,11 @@
#define foreach public:;
#define forever public:;
-#include <qt_headersclean_headers.h>
+$${includes}
#include <QtCore/qglobal.h>
int main()
{
- qWarning("This is a compile test only");
+ qWarning(\"This is a compile test only\");
return 0;
}
diff --git a/tests/auto/other/headersclean/headersclean.pri b/mkspecs/features/qt_headersclean.prf
index c56d432a42..4128392997 100644
--- a/tests/auto/other/headersclean/headersclean.pri
+++ b/mkspecs/features/qt_headersclean.prf
@@ -1,9 +1,9 @@
# The headersclean test attempts to ensure all public Qt headers
# abide by various rules.
#
-# To reuse this test outside of the qtbase module,
-# include this .pri and create a qt_headersclean_headers.h which includes
-# the headers you'd like to test.
+# To use this test, create a project which contains nothing else than a
+# QT= line with the modules you want to test (no presence conditionals needed),
+# followed by load(qt_headersclean).
*-g++*: QMAKE_CXXFLAGS += -W -Wall -Wextra -Werror
@@ -33,7 +33,19 @@ QMAKE_CXXFLAGS += -DQT_NO_CAST_TO_ASCII \
-DQT_USE_FAST_OPERATOR_PLUS
TARGET = tst_headersclean
-SOURCES += $$PWD/tst_headersclean.cpp
-# qt_headersclean_headers.h should be alongside the .pro file
-INCLUDEPATH += $$_PRO_FILE_PWD_
+includes =
+for(q, QT) {
+ qn = $$eval(QT.$${q}.name)
+ isEmpty(qn): \
+ QT -= $$q
+ else: \
+ includes += "$${LITERAL_HASH}include <$$qn/$$qn>"
+}
+includes = $$join(includes, $$escape_expand(\\n))
+
+testfile.input = $$PWD/data/headersclean/tst_headersclean.cpp.in
+testfile.output = $$OUT_PWD/tst_headersclean.cpp
+QMAKE_SUBSTITUTES += testfile
+
+SOURCES += $$testfile.output
diff --git a/tests/auto/other/headersclean/headersclean.pro b/tests/auto/other/headersclean/headersclean.pro
index 419c2e97d5..4965064b88 100644
--- a/tests/auto/other/headersclean/headersclean.pro
+++ b/tests/auto/other/headersclean/headersclean.pro
@@ -1,3 +1,3 @@
-QT = core testlib gui widgets
-include(headersclean.pri)
+QT = core concurrent network dbus xml sql testlib gui opengl widgets printsupport platformsupport
+load(qt_headersclean)
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/other/headersclean/qt_headersclean_headers.h b/tests/auto/other/headersclean/qt_headersclean_headers.h
deleted file mode 100644
index cab5770790..0000000000
--- a/tests/auto/other/headersclean/qt_headersclean_headers.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** 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, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, 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.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QT_HEADERSCLEAN_HEADERS
-#define QT_HEADERSCLEAN_HEADERS
-
-/*
- This file should include all the headers to be tested by the headersclean
- test. It may be copied and customized for each module.
-*/
-
-#include <QtCore/QtCore>
-#include <QtConcurrent/QtConcurrent>
-#include <QtTest/QtTest>
-
-#include <QtNetwork/QtNetwork>
-#include <QtXml/QtXml>
-#include <QtSql/QtSql>
-#include <QtGui/QtGui>
-#include <QtWidgets/QtWidgets>
-#include <QtPrintSupport/QtPrintSupport>
-#include <QtPlatformSupport/QtPlatformSupport>
-
-#ifndef QT_NO_OPENGL
-#include <QtOpenGL/QtOpenGL>
-#endif
-
-#if !defined(QT_NO_DBUS) && defined(Q_OS_UNIX)
-#include <QtDBus/QtDBus>
-#endif
-
-#endif