aboutsummaryrefslogtreecommitdiff
path: root/test/postinstall/common.cmake
diff options
context:
space:
mode:
authorMike Taves <mwtoews@gmail.com>2021-12-09 00:45:03 +1300
committerGitHub <noreply@github.com>2021-12-09 00:45:03 +1300
commit7a9b6566ac02d8c408f4f3758bfa5fcc3e90b552 (patch)
treed71d0771cc9f95d5a8ea96bd975bbd4164188813 /test/postinstall/common.cmake
parent1b18defb63c7d2420d18e4375348663874247838 (diff)
downloadPROJ-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.cmake72
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()