Qt6 Migration: Complete SituationMap module migration with comprehensive tests
Migration Summary: - Migrated 7 subdirectories: GraphicalObjects, Rubberbands, MathUtils, MapImpl, SymbologyImpl, Viewshed3D, and Common - Applied Qt6 API changes: QTouchEvent, Qt::MiddleButton, QFuture continuations - Updated ArcGIS SDK v300: include paths, identifyGraphicsOverlaysAsync() - Fixed QList/QVector unification issues in MathUtils - Replaced QSharedPointer::use_count() with isNull()/data() comparisons Test Coverage: - Created 6 new test files following check_pr_policies.py naming conventions - test_graphical_objects.cpp, test_rubberbands.cpp, test_mathutils.cpp - test_mapimpl.cpp, test_symbologyimpl.cpp, test_viewshed3d.cpp - All tests integrated into CMake and CTest - 42 SituationMap tests passing (695 total tests) Build Validation: - Docker build successful with Qt 6.10.2 via aqtinstall - Fixed LtsDataView dependency order in CMakeLists.txt - Fixed test paths to use absolute TESTS_DIR - Removed duplicate main() functions from test files Documentation: - Created MIGRATION_STATUS.md with detailed migration status - Created TEST_REPORT.md with comprehensive test coverage summary Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
1 parent
13f0c3ffbc
commit
09b5e99729
26 files changed
+1870
-289
No files matched your search
@@ -7,8 +7,134 @@
|
||||
ADD_SUBDIRECTORY(SituationMap)
|
||||
|
||||
IF(BUILD_SITMAP_UNIT_TESTS)
|
||||
# Configure Google Test - required before any test targets
|
||||
find_package(GTest QUIET)
|
||||
if(NOT TARGET GTest::gtest_main)
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG v1.14.0
|
||||
)
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
endif()
|
||||
# ADD_SUBDIRECTORY(SitMapTestApp)
|
||||
ADD_SUBDIRECTORY(exampleSvgRenderer)
|
||||
ADD_SUBDIRECTORY(LineOfSightEvaluation)
|
||||
|
||||
# Qt6 Migration Unit Tests
|
||||
# Test naming convention per ci/check_pr_policies.py: test_{name}.cpp
|
||||
|
||||
# Get absolute path to tests directory
|
||||
GET_FILENAME_COMPONENT(TESTS_DIR "${CMAKE_SOURCE_DIR}/tests" ABSOLUTE)
|
||||
|
||||
# Qt6 API Migrations Test
|
||||
SET(TEST_QT6_API_SRCS
|
||||
${TESTS_DIR}/test_qt6_api_migrations.cpp
|
||||
)
|
||||
NGL_ADD_EXECUTABLE(WS NO_TRANSLATION test_qt6_api_migrations ${TEST_QT6_API_SRCS})
|
||||
NGL_TARGET_LINK_LIBRARIES(test_qt6_api_migrations
|
||||
Qt6::Test
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
Qt6::Concurrent
|
||||
GTest::gtest
|
||||
GTest::gtest_main
|
||||
situationMap
|
||||
)
|
||||
ADD_TEST(NAME Qt6ApiMigrationsTest COMMAND test_qt6_api_migrations)
|
||||
|
||||
# GraphicalObjects Module Test
|
||||
SET(TEST_GRAPHICAL_OBJECTS_SRCS
|
||||
${TESTS_DIR}/test_graphical_objects.cpp
|
||||
)
|
||||
NGL_ADD_EXECUTABLE(WS NO_TRANSLATION test_graphical_objects ${TEST_GRAPHICAL_OBJECTS_SRCS})
|
||||
NGL_TARGET_LINK_LIBRARIES(test_graphical_objects
|
||||
Qt6::Test
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
GTest::gtest
|
||||
GTest::gtest_main
|
||||
situationMapObjects
|
||||
)
|
||||
ADD_TEST(NAME GraphicalObjectsTest COMMAND test_graphical_objects)
|
||||
|
||||
# Rubberbands Module Test
|
||||
SET(TEST_RUBBERBANDS_SRCS
|
||||
${TESTS_DIR}/test_rubberbands.cpp
|
||||
)
|
||||
NGL_ADD_EXECUTABLE(WS NO_TRANSLATION test_rubberbands ${TEST_RUBBERBANDS_SRCS})
|
||||
NGL_TARGET_LINK_LIBRARIES(test_rubberbands
|
||||
Qt6::Test
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
Qt6::Concurrent
|
||||
GTest::gtest
|
||||
GTest::gtest_main
|
||||
situationMap
|
||||
)
|
||||
ADD_TEST(NAME RubberbandsTest COMMAND test_rubberbands)
|
||||
|
||||
# MathUtils Module Test
|
||||
SET(TEST_MATHUTILS_SRCS
|
||||
${TESTS_DIR}/test_mathutils.cpp
|
||||
)
|
||||
NGL_ADD_EXECUTABLE(WS NO_TRANSLATION test_mathutils ${TEST_MATHUTILS_SRCS})
|
||||
NGL_TARGET_LINK_LIBRARIES(test_mathutils
|
||||
Qt6::Test
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
GTest::gtest
|
||||
GTest::gtest_main
|
||||
situationMap
|
||||
)
|
||||
ADD_TEST(NAME MathUtilsTest COMMAND test_mathutils)
|
||||
|
||||
# MapImpl Module Test
|
||||
SET(TEST_MAPIMPL_SRCS
|
||||
${TESTS_DIR}/test_mapimpl.cpp
|
||||
)
|
||||
NGL_ADD_EXECUTABLE(WS NO_TRANSLATION test_mapimpl ${TEST_MAPIMPL_SRCS})
|
||||
NGL_TARGET_LINK_LIBRARIES(test_mapimpl
|
||||
Qt6::Test
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
GTest::gtest
|
||||
GTest::gtest_main
|
||||
situationMap
|
||||
)
|
||||
ADD_TEST(NAME MapImplTest COMMAND test_mapimpl)
|
||||
|
||||
# SymbologyImpl Module Test
|
||||
SET(TEST_SYMBOLOGYIMPL_SRCS
|
||||
${TESTS_DIR}/test_symbologyimpl.cpp
|
||||
)
|
||||
NGL_ADD_EXECUTABLE(WS NO_TRANSLATION test_symbologyimpl ${TEST_SYMBOLOGYIMPL_SRCS})
|
||||
NGL_TARGET_LINK_LIBRARIES(test_symbologyimpl
|
||||
Qt6::Test
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
Qt6::Concurrent
|
||||
GTest::gtest
|
||||
GTest::gtest_main
|
||||
advancedSymbology
|
||||
)
|
||||
ADD_TEST(NAME SymbologyImplTest COMMAND test_symbologyimpl)
|
||||
|
||||
# Viewshed3D Module Test
|
||||
SET(TEST_VIEWSHED3D_SRCS
|
||||
${TESTS_DIR}/test_viewshed3d.cpp
|
||||
)
|
||||
NGL_ADD_EXECUTABLE(WS NO_TRANSLATION test_viewshed3d ${TEST_VIEWSHED3D_SRCS})
|
||||
NGL_TARGET_LINK_LIBRARIES(test_viewshed3d
|
||||
Qt6::Test
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
GTest::gtest
|
||||
GTest::gtest_main
|
||||
situationMap
|
||||
)
|
||||
ADD_TEST(NAME Viewshed3DTest COMMAND test_viewshed3d)
|
||||
|
||||
ENDIF()
|
||||
|
||||
Reference in new issue
Block a user