From 9bffa7a202cad3a29103f3e9a8b50b9a61277310 Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Wed, 29 Jul 2015 22:46:44 +0200 Subject: Add macro to generate logging category declarations for Qt5. This makes life a bit easier for developers who use the categorised logging in Qt5 in the common case - rather than creating two new files, and remembering to put in the #ifdef for the default verbosity settings in Qt 5.4, they can just add a couple of lines to their CMakeLists.txt. REVIEW: 124595 --- tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp (limited to 'tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp') diff --git a/tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp b/tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp new file mode 100644 index 00000000..a06614a1 --- /dev/null +++ b/tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp @@ -0,0 +1,83 @@ +#include + +#include "log1.h" +#include "log2.h" +#include "log3.h" + +#include + +int main(int argc, char **argv) { + QCoreApplication qapp(argc, argv); + + bool success = true; + + // NB: we cannot test against QtInfoMsg, as that (a) does not exist before + // Qt 5.5, and (b) has incorrect semantics in Qt 5.5, in that it is + // treated as more severe than QtCriticalMsg. + + if (log1().categoryName() != QLatin1String("log.one")) { + qWarning("log1 category was \"%s\", expected \"log.one\"", log1().categoryName()); + success = false; + } +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) + if (!log1().isDebugEnabled()) { + qWarning("log1 debug messages were not enabled"); + success = false; + } +#else + if (log1().isDebugEnabled()) { + qWarning("log1 debug messages were enabled"); + success = false; + } + if (!log1().isWarningEnabled()) { + qWarning("log1 warning messages were not enabled"); + success = false; + } +#endif + + if (foo::bar::log2().categoryName() != QLatin1String("log.two")) { + qWarning("log2 category was \"%s\", expected \"log.two\"", foo::bar::log2().categoryName()); + success = false; + } +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) + if (!foo::bar::log2().isDebugEnabled()) { + qWarning("log2 debug messages were not enabled"); + success = false; + } +#else + if (foo::bar::log2().isDebugEnabled()) { + qWarning("log2 debug messages were enabled"); + success = false; + } + if (!foo::bar::log2().isWarningEnabled()) { + qWarning("log2 warning messages were not enabled"); + success = false; + } +#endif + + if (log3().categoryName() != QLatin1String("three")) { + qWarning("log3 category was \"%s\", expected \"three\"", log3().categoryName()); + success = false; + } +#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) + if (!log3().isDebugEnabled()) { + qWarning("log3 debug messages were not enabled"); + success = false; + } +#else + if (log3().isDebugEnabled()) { + qWarning("log3 debug messages were enabled"); + success = false; + } + if (log3().isWarningEnabled()) { + qWarning("log3 warning messages were enabled"); + success = false; + } + if (!log3().isCriticalEnabled()) { + qWarning("log3 critical messages were not enabled"); + success = false; + } +#endif + + return success ? 0 : 1; +} -- cgit v1.2.1 From 8e20caf11dbabdf191415589e99ea1b773caedd0 Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Wed, 19 Aug 2015 22:05:22 +0100 Subject: Add a license to one of the C++ test files. --- tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp') diff --git a/tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp b/tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp index a06614a1..4abcd527 100644 --- a/tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp +++ b/tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp @@ -1,3 +1,28 @@ +/* + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + #include #include "log1.h" -- cgit v1.2.1