1/****************************************************************************
2**
3** Copyright (C) 2020 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// This test is for "release" mode, with -DQT_NO_DEBUG -DQT_NO_DEBUG_OUTPUT
30#ifndef QT_NO_DEBUG
31#define QT_NO_DEBUG
32#endif
33#ifndef QT_NO_DEBUG_OUTPUT
34#define QT_NO_DEBUG_OUTPUT
35#endif
36
37#include <QtCore/QtCore>
38#include <QtCore/QtDebug>
39#include <QtCore/QLoggingCategory>
40#include <QtTest/QtTest>
41
42class tst_QNoDebug: public QObject
43{
44 Q_OBJECT
45private slots:
46 void noDebugOutput() const;
47 void streaming() const;
48};
49
50void tst_QNoDebug::noDebugOutput() const
51{
52 QLoggingCategory cat("custom");
53 // should do nothing
54 qDebug() << "foo";
55 qCDebug(cat) << "foo";
56 qCDebug(cat, "foo");
57
58 // qWarning still works, though
59 QTest::ignoreMessage(type: QtWarningMsg, message: "bar");
60 QTest::ignoreMessage(type: QtWarningMsg, message: "custom-bar");
61 qWarning() << "bar";
62 qCWarning(cat) << "custom-bar";
63}
64
65void tst_QNoDebug::streaming() const
66{
67 QDateTime dt(QDate(1,2,3),QTime(4,5,6));
68 const QByteArray debugString = dt.toString(format: u"yyyy-MM-dd HH:mm:ss.zzz t").toLocal8Bit();
69 const QByteArray message = "QDateTime(" + debugString + " Qt::LocalTime)";
70 QTest::ignoreMessage(type: QtWarningMsg, message: message.constData());
71 qWarning() << dt;
72}
73
74QTEST_MAIN(tst_QNoDebug);
75#include "tst_qnodebug.moc"
76

source code of qtbase/tests/auto/corelib/io/qnodebug/tst_qnodebug.cpp