1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the test suite of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL-EXCEPT$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 as published by the Free Software
20** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21** included in the packaging of this file. Please review the following
22** information to ensure the GNU General Public License requirements will
23** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24**
25** $QT_END_LICENSE$
26**
27****************************************************************************/
28
29#include <QCoreApplication>
30#include <QLoggingCategory>
31
32#ifdef Q_CC_GNU
33#define NEVER_INLINE __attribute__((__noinline__))
34#else
35#define NEVER_INLINE
36#endif
37
38struct T {
39 T() { qDebug(msg: "static constructor"); }
40 ~T() { qDebug(msg: "static destructor"); }
41} t;
42
43class MyClass : public QObject
44{
45 Q_OBJECT
46public slots:
47 virtual NEVER_INLINE QString mySlot1();
48private:
49 virtual NEVER_INLINE void myFunction(int a);
50};
51
52QString MyClass::mySlot1()
53{
54 myFunction(a: 34);
55 return QString();
56}
57
58void MyClass::myFunction(int a)
59{
60 qDebug() << "from_a_function" << a;
61}
62
63int main(int argc, char **argv)
64{
65 QCoreApplication app(argc, argv);
66 app.setApplicationName("tst_qlogging");
67
68 qSetMessagePattern(messagePattern: "[%{type}] %{message}");
69
70 qDebug(msg: "qDebug");
71 qInfo(msg: "qInfo");
72 qWarning(msg: "qWarning");
73 qCritical(msg: "qCritical");
74
75 QLoggingCategory cat("category");
76 qCWarning(cat) << "qDebug with category";
77
78 qSetMessagePattern(messagePattern: QString());
79
80 qDebug(msg: "qDebug2");
81
82 MyClass cl;
83 QMetaObject::invokeMethod(obj: &cl, member: "mySlot1");
84
85 return 0;
86}
87
88#include "main.moc"
89

source code of qtbase/tests/auto/corelib/global/qlogging/app/main.cpp