From dd2dbd350387378d74ac3441f299c6af47eae78d Mon Sep 17 00:00:00 2001 From: Copilot Date: Tue, 21 Jul 2026 13:58:12 +0200 Subject: [PATCH] test(z): add Qt smoke test for ngltools DTG functions; tidy CMake IF/ENDIF mismatches in nglwidgets and NGLLogger --- Z/src/NGLLogger/CMakeLists.txt | 3 ++- Z/src/ngltools/CMakeLists.txt | 17 ++++++++++++++ Z/src/ngltools/tests/NGLToolsQtSmokeTest.cpp | 24 ++++++++++++++++++++ Z/src/nglwidgets/CMakeLists.txt | 2 +- 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 Z/src/ngltools/tests/NGLToolsQtSmokeTest.cpp diff --git a/Z/src/NGLLogger/CMakeLists.txt b/Z/src/NGLLogger/CMakeLists.txt index 5b8d26897..ce22f3fee 100755 --- a/Z/src/NGLLogger/CMakeLists.txt +++ b/Z/src/NGLLogger/CMakeLists.txt @@ -47,6 +47,7 @@ IF(BUILD_TESTING AND TARGET NGLLogger AND Log4Qt_FOUND) ADD_TEST(NAME test_ngllogger COMMAND $) ELSE() MESSAGE(STATUS "Log4Qt not found; skipping test_ngllogger") -ENDIF(BUILD_TESTING AND TARGET NGLLogger) +ENDIF() + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/log4cxx.props ${CMAKE_BINARY_DIR}/log4cxx.props COPYONLY) diff --git a/Z/src/ngltools/CMakeLists.txt b/Z/src/ngltools/CMakeLists.txt index fa6688a8f..23349e5fb 100755 --- a/Z/src/ngltools/CMakeLists.txt +++ b/Z/src/ngltools/CMakeLists.txt @@ -23,6 +23,23 @@ NGL_TARGET_LINK_LIBRARIES(ngltools PUBLIC Qt5::Core ) + +# Smoke test for ngltools DTG conversion utilities +IF(BUILD_TESTING AND TARGET ngltools) + find_package(Qt6 COMPONENTS Test Core QUIET) + if (Qt6_FOUND) + set(_QTTEST_TARGET Qt6::Test) + set(_QTCORE_TARGET Qt6::Core) + else() + find_package(Qt5 COMPONENTS Test Core REQUIRED) + set(_QTTEST_TARGET Qt5::Test) + set(_QTCORE_TARGET Qt5::Core) + endif() + + add_executable(ngltools_qt_smoke tests/NGLToolsQtSmokeTest.cpp) + target_link_libraries(ngltools_qt_smoke PRIVATE ngltools ${_QTTEST_TARGET} ${_QTCORE_TARGET}) + add_test(NAME NGLToolsQtSmoke COMMAND ngltools_qt_smoke) +ENDIF() NGL_TARGET_COMPILE_DEFINITIONS(ngltools PUBLIC BUILD_BASE_PATH="${CMAKE_BINARY_DIR}") NGL_TARGET_COMPILE_DEFINITIONS(ngltools PUBLIC INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}") diff --git a/Z/src/ngltools/tests/NGLToolsQtSmokeTest.cpp b/Z/src/ngltools/tests/NGLToolsQtSmokeTest.cpp new file mode 100644 index 000000000..7fc28f353 --- /dev/null +++ b/Z/src/ngltools/tests/NGLToolsQtSmokeTest.cpp @@ -0,0 +1,24 @@ +#include +#include +#include + +#include "ngltools_dtg.h" + +class NGLToolsQtSmokeTest : public QObject +{ + Q_OBJECT +private slots: + void testDTG() + { + QDateTime now = QDateTime::currentDateTimeUtc(); + QString s = NGL::toString(now); + QVERIFY(!s.isEmpty()); + bool ok = false; + QDateTime parsed = NGL::fromDTGString(s, &ok); + QVERIFY(ok); + QVERIFY(parsed.isValid()); + } +}; + +QTEST_MAIN(NGLToolsQtSmokeTest) +#include "NGLToolsQtSmokeTest.moc" diff --git a/Z/src/nglwidgets/CMakeLists.txt b/Z/src/nglwidgets/CMakeLists.txt index 36b392b09..271f15a00 100755 --- a/Z/src/nglwidgets/CMakeLists.txt +++ b/Z/src/nglwidgets/CMakeLists.txt @@ -66,4 +66,4 @@ IF(BUILD_TESTING AND TARGET nglwidgets) ADD_EXECUTABLE(test_nglpdfwidget test_nglpdfwidget.cpp) TARGET_LINK_LIBRARIES(test_nglpdfwidget PRIVATE nglwidgets Qt6::Test Qt6::Widgets) ADD_TEST(NAME test_nglpdfwidget COMMAND $) -ENDIF(BUILD_TESTING) +ENDIF()