diff options
| author | Mike Taves <mwtoews@gmail.com> | 2021-12-09 00:45:03 +1300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-09 00:45:03 +1300 |
| commit | 7a9b6566ac02d8c408f4f3758bfa5fcc3e90b552 (patch) | |
| tree | d71d0771cc9f95d5a8ea96bd975bbd4164188813 /test/postinstall/common.cmake | |
| parent | 1b18defb63c7d2420d18e4375348663874247838 (diff) | |
| download | PROJ-7a9b6566ac02d8c408f4f3758bfa5fcc3e90b552.tar.gz PROJ-7a9b6566ac02d8c408f4f3758bfa5fcc3e90b552.zip | |
Refactor post-install suite to test shared and static projlib (#2972)
Diffstat (limited to 'test/postinstall/common.cmake')
| -rw-r--r-- | test/postinstall/common.cmake | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/test/postinstall/common.cmake b/test/postinstall/common.cmake new file mode 100644 index 00000000..3a66444c --- /dev/null +++ b/test/postinstall/common.cmake @@ -0,0 +1,72 @@ +# Common CMake macros for post-install tests + +include(CTest) + +macro(add_test_ldd EXE) + set(EXEPATH ${CMAKE_BINARY_DIR}/${EXE}) + if(APPLE) + set(LDD_CL "otool -L") + set(EXPECTED_LDD_CL_OUT "@rpath/libproj") + elseif(UNIX) + set(LDD_CL "ldd") + set(EXPECTED_LDD_CL_OUT "${CMAKE_PREFIX_PATH}/lib/libproj") + elseif(CMAKE_GENERATOR STREQUAL "MSYS Makefiles") + set(LDD_CL "ldd") + # Convert to Unix-style path + execute_process( + COMMAND cygpath -u ${CMAKE_PREFIX_PATH}/bin/libproj + OUTPUT_VARIABLE EXPECTED_LDD_CL_OUT + OUTPUT_STRIP_TRAILING_WHITESPACE) + endif() + if(LDD_CL) + add_test(NAME test_ldd + COMMAND sh -c "${LDD_CL} ${EXEPATH} | grep proj") + if($ENV{BUILD_MODE} STREQUAL "static") + set_tests_properties(test_ldd PROPERTIES + PASS_REGULAR_EXPRESSION "^$" + FAIL_REGULAR_EXPRESSION "${EXPECTED_LDD_CL_OUT};not found" + ) + else() + set_tests_properties(test_ldd PROPERTIES + PASS_REGULAR_EXPRESSION "${EXPECTED_LDD_CL_OUT}" + FAIL_REGULAR_EXPRESSION "not found" + ) + endif() + else() + add_test(NAME test_ldd COMMAND ${EXEPATH}) + set_tests_properties(test_ldd PROPERTIES SKIP_RETURN_CODE 1) + endif() +endmacro() + +macro(add_test_transform EXE) + set(EXEPATH ${CMAKE_BINARY_DIR}/${EXE}) + add_test(NAME test_transform COMMAND ${EXEPATH} -t) + set(EXPECTED +"easting: 691875.63, northing: 6098907.83, latitude: 55.00, longitude: 12.00") + set_tests_properties(test_transform PROPERTIES + PASS_REGULAR_EXPRESSION "${EXPECTED}" + ) +endmacro() + +macro(add_test_searchpath EXE) + set(EXEPATH ${CMAKE_BINARY_DIR}/${EXE}) + # data directory property not available, so recreate one + get_filename_component(EXPECTED_SEARCHPATH + "${${USE_PROJ_NAME}_DIR}/../../../share/proj" ABSOLUTE) + if(WIN32) + # Match each '/' with either '\' or '/' + string(REPLACE "/" "[\\/]" EXPECTED_SEARCHPATH "${EXPECTED_SEARCHPATH}") + endif() + add_test(NAME test_searchpath COMMAND ${EXEPATH} -s) + set_tests_properties(test_searchpath PROPERTIES + PASS_REGULAR_EXPRESSION "${EXPECTED_SEARCHPATH}" + ) +endmacro() + +macro(add_test_version EXE) + set(EXEPATH ${CMAKE_BINARY_DIR}/${EXE}) + add_test(NAME test_version COMMAND ${EXEPATH} -v) + set_tests_properties(test_version PROPERTIES + PASS_REGULAR_EXPRESSION "${${USE_PROJ_NAME}_VERSION}" + ) +endmacro() |
