summaryrefslogtreecommitdiff
path: root/Tests/CPackWiXGenerator/RunCPackVerifyResult.cmake
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2013-08-13 07:48:01 -0400
committerAnas Nashif <anas.nashif@intel.com>2013-08-13 07:48:01 -0400
commit297c63fa65327491a2b50e521b661c5835a19fe4 (patch)
treecf30d58014e240eb5e4417727d8f137cdbe75828 /Tests/CPackWiXGenerator/RunCPackVerifyResult.cmake
parentef8aa19c33e83ff019595fd7f8fdc29c35c336a3 (diff)
downloadcmake-297c63fa65327491a2b50e521b661c5835a19fe4.tar.gz
cmake-297c63fa65327491a2b50e521b661c5835a19fe4.tar.bz2
cmake-297c63fa65327491a2b50e521b661c5835a19fe4.zip
Imported Upstream version 2.8.11.2upstream/2.8.11.2sandbox/pcoval/previous/upstream
Diffstat (limited to 'Tests/CPackWiXGenerator/RunCPackVerifyResult.cmake')
-rw-r--r--Tests/CPackWiXGenerator/RunCPackVerifyResult.cmake72
1 files changed, 72 insertions, 0 deletions
diff --git a/Tests/CPackWiXGenerator/RunCPackVerifyResult.cmake b/Tests/CPackWiXGenerator/RunCPackVerifyResult.cmake
new file mode 100644
index 000000000..30e33cf22
--- /dev/null
+++ b/Tests/CPackWiXGenerator/RunCPackVerifyResult.cmake
@@ -0,0 +1,72 @@
+message(STATUS "=============================================================")
+message(STATUS "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)")
+message(STATUS "")
+
+if(NOT CPackWiXGenerator_BINARY_DIR)
+ message(FATAL_ERROR "CPackWiXGenerator_BINARY_DIR not set")
+endif()
+
+message(STATUS "CMAKE_COMMAND: ${CMAKE_COMMAND}")
+message(STATUS "CMAKE_CPACK_COMMAND: ${CMAKE_CPACK_COMMAND}")
+message(STATUS "CPackWiXGenerator_BINARY_DIR: ${CPackWiXGenerator_BINARY_DIR}")
+
+execute_process(COMMAND "${CMAKE_CPACK_COMMAND}"
+ RESULT_VARIABLE CPack_result
+ OUTPUT_VARIABLE CPack_output
+ ERROR_VARIABLE CPack_error
+ WORKING_DIRECTORY "${CPackWiXGenerator_BINARY_DIR}")
+
+if(CPack_result)
+ message(FATAL_ERROR "CPack execution went wrong!, CPack_output=${CPack_output}, CPack_error=${CPack_error}")
+else ()
+ message(STATUS "CPack_output=${CPack_output}")
+endif()
+
+set(expected_file_mask "*.msi")
+file(GLOB installer_file "${expected_file_mask}")
+
+message(STATUS "installer_file='${installer_file}'")
+message(STATUS "expected_file_mask='${expected_file_mask}'")
+
+if(NOT installer_file)
+ message(FATAL_ERROR "installer_file does not exist.")
+endif()
+
+function(run_wix_command command)
+ file(TO_CMAKE_PATH "$ENV{WIX}" WIX_ROOT)
+ set(WIX_PROGRAM "${WIX_ROOT}/bin/${command}.exe")
+
+ if(NOT EXISTS "${WIX_PROGRAM}")
+ message(FATAL_ERROR "Failed to find WiX Tool: ${WIX_PROGRAM}")
+ endif()
+
+ message(STATUS "Running WiX Tool: ${command} ${ARGN}")
+
+ execute_process(COMMAND "${WIX_PROGRAM}" ${ARGN}
+ RESULT_VARIABLE WIX_result
+ OUTPUT_VARIABLE WIX_output
+ ERROR_VARIABLE WIX_output
+ WORKING_DIRECTORY "${CPackWiXGenerator_BINARY_DIR}")
+
+ message(STATUS "${command} Output: \n${WIX_output}")
+
+ if(WIX_result)
+ message(FATAL_ERROR "WiX ${command} failed: ${WIX_result}")
+ endif()
+endfunction()
+
+file(GLOB WXS_SOURCE_FILES
+ "${CPackWiXGenerator_BINARY_DIR}/_CPack_Packages/*/WIX/*.wxs")
+
+if(NOT WXS_SOURCE_FILES)
+ message(FATAL_ERROR "Failed finding WiX source files to validate.")
+endif()
+
+foreach(WXS_SOURCE_FILE IN LISTS WXS_SOURCE_FILES)
+ run_wix_command(wixcop "${WXS_SOURCE_FILE}")
+endforeach()
+
+# error SMOK1076 : ICE61: This product should remove only older
+# versions of itself. The Maximum version is not less
+# than the current product. (1.0.0 1.0.0)
+run_wix_command(smoke -nologo -wx -sw1076 "${installer_file}")