summaryrefslogtreecommitdiffstats
path: root/tests/auto/tools
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-08-31 13:10:18 +0200
committerLiang Qi <liang.qi@qt.io>2017-08-31 14:31:31 +0200
commit112a4af10741409b3d8503cb77852a777b607ce0 (patch)
treefa99f0f37fc1505522fe9368e95484c7732ccda8 /tests/auto/tools
parent29ef0d2bccd1874e20de94485ee05777c3a95c5d (diff)
parente938150412d22e61926fe16791158805b71268bb (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: examples/examples.pro qmake/library/qmakebuiltins.cpp src/corelib/global/qglobal.cpp Re-apply b525ec2 to qrandom.cpp(code movement in 030782e) src/corelib/global/qnamespace.qdoc src/corelib/global/qrandom.cpp src/gui/kernel/qwindow.cpp Re-apply a3d59c7 to QWindowPrivate::setVisible() (code movement in d7a9e08) src/network/ssl/qsslkey_openssl.cpp src/plugins/platforms/android/androidjniinput.cpp src/plugins/platforms/xcb/qxcbconnection.cpp src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/widgets/widgets/qmenu.cpp tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp Change-Id: If7ab427804408877a93cbe02079fca58e568bfd3
Diffstat (limited to 'tests/auto/tools')
-rw-r--r--tests/auto/tools/qmake/testdata/rawString/main.cpp101
-rw-r--r--tests/auto/tools/qmake/testdata/rawString/object2.h54
-rw-r--r--tests/auto/tools/qmake/testdata/rawString/rawString.pro2
3 files changed, 155 insertions, 2 deletions
diff --git a/tests/auto/tools/qmake/testdata/rawString/main.cpp b/tests/auto/tools/qmake/testdata/rawString/main.cpp
index 53a28f7bc0..bc557f39f8 100644
--- a/tests/auto/tools/qmake/testdata/rawString/main.cpp
+++ b/tests/auto/tools/qmake/testdata/rawString/main.cpp
@@ -26,8 +26,107 @@
**
****************************************************************************/
+// macro names that *aren't* string-literal-prefixes:
+#define Ru8 "rue-it"
+#define RL "real life"
+#define Ru "are you ?"
+#define RU "Are You ?"
+#define LLR "double-hockey-sticks"
+#define LUR "Tricky"
+#define LuR "tricky"
+#define Lu8R "l'uber"
+#define UUR "Double-Yew"
+#define ULR "Eweler"
+#define UuR "You ... you-are"
+#define Uu8R "You ... you *ate* our ..."
+#define uuR "water"
+#define uLR "eweler"
+#define uUR "double-Your"
+#define uu8R "totally uber"
+#define u8u8R "rubber-you"
+#define u8LR "Uber left-to-right"
+#define u8UR "Uber Upper-Right"
+#define u8uR "Uber upper-right"
+#define Ru8R "bouncy"
+#define RLR "Marching"
+#define RuR "Rossum's general-purpose workers"
+#define RUR "Rossum's Universal Robots"
+
+static const char monstrosity[] =
+ Ru8"Ru8("
+ RL"RL("
+ Ru"Ru("
+ RU"RU("
+ LLR"LLR("
+ LUR"LUR("
+ LuR"LuR("
+ Lu8R"Lu8R("
+ UUR"UUR("
+ ULR"ULR("
+ UuR"UuR("
+ Uu8R"Uu8R("
+ uuR"uuR("
+ uLR"uLR("
+ uUR"uUR("
+ uu8R"uu8R("
+ u8u8R"u8u8R("
+ u8LR"u8LR("
+ u8UR"u8UR("
+ u8uR"u8uR("
+ Ru8R"Ru8R("
+ RLR"RLR("
+ RuR"RuR("
+ RUR"RUR("
+ "Finally, some content";
+
+#include <moc_object2.cpp>
+
+static const char closure[] =
+ ")RUR"
+ ")RuR"
+ ")RLR"
+ ")Ru8R"
+ ")u8uR"
+ ")u8UR"
+ ")u8LR"
+ ")u8u8R"
+ ")uu8R"
+ ")uUR"
+ ")uLR"
+ ")uuR"
+ ")Uu8R"
+ ")UuR"
+ ")ULR"
+ ")UUR"
+ ")Lu8R"
+ ")LuR"
+ ")LUR"
+ ")LLR"
+ ")RU"
+ ")Ru"
+ ")RL"
+ ")Ru8";
+// If moc got confused, the confusion should now be over
+
+// Real raw strings, not actually leaving us inside any comments:
static const char raw[] = R"blah(lorem " ipsum /*)blah"\
;
+static const wchar_t wider[] = LR"blah(lorem " ipsum /*)blah"\
+;
+static const char32_t UCS4[] = UR"blah(lorem " ipsum /*)blah"\
+;
+static const char16_t UCS2[] = uR"blah(lorem " ipsum /*)blah"\
+;
+static const char utf8[] = u8R"blah(lorem " ipsum /*)blah"\
+;
#include <moc_object1.cpp>
-int main () { return 0; }
+/* Avoid unused variable warnings by silly uses of arrays: */
+#define final(x) x[sizeof(x) - 1] // 0, of course
+int main () {
+ return final(raw)
+ * (final(wider) - final(UCS4))
+ * (final(UCS2) - final(utf8))
+ * (final(monstrosity) - final(closure));
+}
+#undef final
diff --git a/tests/auto/tools/qmake/testdata/rawString/object2.h b/tests/auto/tools/qmake/testdata/rawString/object2.h
new file mode 100644
index 0000000000..2ab77cd3bd
--- /dev/null
+++ b/tests/auto/tools/qmake/testdata/rawString/object2.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** 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 The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/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 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef TEST_QMAKE_RAWSTRING_OBJECT2_H
+#define TEST_QMAKE_RAWSTRING_OBJECT2_H
+
+#define Lu8UR "land"
+inline char opener(int i) {
+ const char text[] = Lu8UR"blah( not a raw string; just juxtaposed";
+ return text[i];
+}
+
+#include <QObject>
+
+class Object2 : public QObject
+{
+ Q_OBJECT
+};
+
+inline char closer(int i) {
+ const char text[] = "pretend to close it, all the same )blah";
+ return text[i];
+}
+
+#endif // TEST_QMAKE_RAWSTRING_OBJECT2_H
diff --git a/tests/auto/tools/qmake/testdata/rawString/rawString.pro b/tests/auto/tools/qmake/testdata/rawString/rawString.pro
index d2d8132ceb..19c81dfe97 100644
--- a/tests/auto/tools/qmake/testdata/rawString/rawString.pro
+++ b/tests/auto/tools/qmake/testdata/rawString/rawString.pro
@@ -1,4 +1,4 @@
DESTDIR = ./
-HEADERS += object1.h
+HEADERS += object1.h object2.h
SOURCES += main.cpp