From 6694d391316a490674ecb97f64e1c2e82328d2ce Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 6 Dec 2012 17:16:56 +0100 Subject: [PATCH] centralize headersclean test so other modules can actually re-use the code without referencing qtbase sources. Change-Id: Id66f07b476e539273dd32455e7642a17d7e5d0ef Reviewed-by: Thiago Macieira Reviewed-by: Joerg Bornemann --- .../data/headersclean/tst_headersclean.cpp.in | 4 +- .../features/qt_headersclean.prf | 24 ++++++-- tests/auto/other/headersclean/headersclean.pro | 4 +- .../other/headersclean/qt_headersclean_headers.h | 70 ---------------------- 4 files changed, 22 insertions(+), 80 deletions(-) rename tests/auto/other/headersclean/tst_headersclean.cpp => mkspecs/features/data/headersclean/tst_headersclean.cpp.in (96%) rename tests/auto/other/headersclean/headersclean.pri => mkspecs/features/qt_headersclean.prf (70%) delete mode 100644 tests/auto/other/headersclean/qt_headersclean_headers.h diff --git a/tests/auto/other/headersclean/tst_headersclean.cpp b/mkspecs/features/data/headersclean/tst_headersclean.cpp.in similarity index 96% rename from tests/auto/other/headersclean/tst_headersclean.cpp rename to mkspecs/features/data/headersclean/tst_headersclean.cpp.in index 91abca4..1784615 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 +$${includes} #include 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 similarity index 70% rename from tests/auto/other/headersclean/headersclean.pri rename to mkspecs/features/qt_headersclean.prf index c56d432..4128392 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 419c2e9..4965064 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 cab5770..0000000 --- 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 -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#ifndef QT_NO_OPENGL -#include -#endif - -#if !defined(QT_NO_DBUS) && defined(Q_OS_UNIX) -#include -#endif - -#endif -- 2.7.4