diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | tests/ECMQtDeclareLoggingCategoryTest/CMakeLists.txt | 42 | ||||
| -rw-r--r-- | tests/ECMQtDeclareLoggingCategoryTest/testmain.cpp | 83 | 
3 files changed, 128 insertions, 0 deletions
| diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 7960154a..8a75ae61 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -85,6 +85,9 @@ if (TARGET Qt5::qmake)      add_test_variant(KDEInstallDirsTest.relative_or_absolute_qt                       KDEInstallDirsTest.relative_or_absolute dummy)  endif () +if (Qt5Core_FOUND) +    add_test_macro(ECMQtDeclareLoggingCategoryTest testmain) +endif()  add_test_macro(FindModules dummy)  add_test_macro(UseFindModules dummy) diff --git a/tests/ECMQtDeclareLoggingCategoryTest/CMakeLists.txt b/tests/ECMQtDeclareLoggingCategoryTest/CMakeLists.txt new file mode 100644 index 00000000..15ece187 --- /dev/null +++ b/tests/ECMQtDeclareLoggingCategoryTest/CMakeLists.txt @@ -0,0 +1,42 @@ +project(ECMQtDeclareLoggingCategoryTest) +cmake_minimum_required(VERSION 2.8.12) +set(ECM_MODULE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../modules") + +set(CMAKE_MODULE_PATH ${ECM_MODULE_DIR}) + +include(ECMQtDeclareLoggingCategory) + +ecm_qt_declare_logging_category( +    sources +    HEADER "log1.h" +    IDENTIFIER "log1" +    CATEGORY_NAME "log.one" +) + +ecm_qt_declare_logging_category( +    sources +    HEADER "log2.h" +    IDENTIFIER "foo::bar::log2" +    CATEGORY_NAME "log.two" +) + +ecm_qt_declare_logging_category( +    sources +    HEADER "${CMAKE_CURRENT_BINARY_DIR}/log3.h" +    IDENTIFIER "log3" +    CATEGORY_NAME "three" +    DEFAULT_SEVERITY Critical +) + +find_package(Qt5Core REQUIRED) + +add_executable(testmain testmain.cpp ${sources}) +target_include_directories(testmain +    PRIVATE +        "${CMAKE_CURRENT_BINARY_DIR}" +) +target_link_libraries(testmain +    PRIVATE +        Qt5::Core +) + 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 <QCoreApplication> + +#include "log1.h" +#include "log2.h" +#include "log3.h" + +#include <iostream> + +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; +} | 
