Browse Source

Tests: Fix RunCMake.CPack test infrastructure after logical conflict

The changes in commit d9cec8ad (CPack/RPM: Generate source rpm (SRPM)
packages on demand, 2016-09-19) logically conflict with the
infrastructure updates in commit 4682b42b (Tests: Add subtest support to
RunCMake/CPack infrastructure, 2016-09-13).  Integrate the two changes
so they work together.
Domen Vrankar 9 years ago
parent
commit
cb851a7c12
1 changed files with 17 additions and 70 deletions
  1. 17 70
      Tests/RunCMake/CPack/CPackTestHelpers.cmake

+ 17 - 70
Tests/RunCMake/CPack/CPackTestHelpers.cmake

@@ -1,72 +1,6 @@
 cmake_policy(SET CMP0057 NEW)
-function(run_cpack_test_common_for_merge_ TEST_NAME types build source)
-  if(TEST_TYPE IN_LIST types)
-    set(RunCMake_TEST_NO_CLEAN TRUE)
-    set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${TEST_NAME}-build")
-
-     # TODO this should be executed only once per ctest run (not per generator)
-    file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
-    file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
-
-    if(EXISTS "${RunCMake_SOURCE_DIR}/${TEST_TYPE}/${TEST_NAME}-Prerequirements.cmake")
-      include("${RunCMake_SOURCE_DIR}/${TEST_TYPE}/${TEST_NAME}-Prerequirements.cmake")
-
-      set(FOUND_PREREQUIREMENTS false)
-      get_test_prerequirements("FOUND_PREREQUIREMENTS"
-          "${TEST_CONFIG_DIR}/${type}_config.cmake")
-
-      # skip the test if prerequirements are not met
-      if(NOT FOUND_PREREQUIREMENTS)
-        message(STATUS "${TEST_NAME} - SKIPPED")
-        return()
-      endif()
-    endif()
-
-    # execute cmake
-    set(RunCMake_TEST_OPTIONS "-DGENERATOR_TYPE=${TEST_TYPE}")
-    run_cmake(${TEST_NAME})
-
-    # execute optional build step
-    if(build)
-      run_cmake_command(${TEST_NAME}-Build "${CMAKE_COMMAND}" --build "${RunCMake_TEST_BINARY_DIR}")
-    endif()
-
-    if(source)
-      set(pack_params_ -G ${TEST_TYPE} --config ./CPackSourceConfig.cmake)
-      FILE(APPEND ${RunCMake_TEST_BINARY_DIR}/CPackSourceConfig.cmake
-        "\nset(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS \"-DRunCMake_TEST:STRING=${TEST_NAME}\")")
-    else()
-      unset(pack_params_)
-    endif()
 
-    # execute cpack
-    execute_process(
-      COMMAND ${CMAKE_CPACK_COMMAND} ${pack_params_}
-      WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}"
-      RESULT_VARIABLE "result_"
-      OUTPUT_FILE "${RunCMake_TEST_BINARY_DIR}/test_output.txt"
-      ERROR_FILE "${RunCMake_TEST_BINARY_DIR}/test_error.txt"
-      )
-
-    # verify result
-    run_cmake_command(
-      ${TEST_TYPE}/${TEST_NAME}
-      "${CMAKE_COMMAND}"
-        -DRunCMake_TEST=${TEST_NAME}
-        -DGENERATOR_TYPE=${TEST_TYPE}
-        -DPACKAGING_RESULT=${result_}
-        "-Dsrc_dir=${RunCMake_SOURCE_DIR}"
-        "-Dbin_dir=${RunCMake_TEST_BINARY_DIR}"
-        "-Dconfig_file=${config_file}"
-        -P "${RunCMake_SOURCE_DIR}/VerifyResult.cmake"
-      )
-  endif()
-endfunction()
-function(run_cpack_source_test TEST_NAME types)
-  run_cpack_test_common_for_merge_("${TEST_NAME}" "${types}" false true)
-endfunction()
-
-function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX)
+function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX source)
   if(TEST_TYPE IN_LIST types)
     set(RunCMake_TEST_NO_CLEAN TRUE)
     set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${TEST_NAME}-build")
@@ -106,10 +40,19 @@ function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX)
       run_cmake_command(${full_test_name_}-Build "${CMAKE_COMMAND}" --build "${RunCMake_TEST_BINARY_DIR}")
     endif()
 
+    if(source)
+      set(pack_params_ -G ${TEST_TYPE} --config ./CPackSourceConfig.cmake)
+      FILE(APPEND ${RunCMake_TEST_BINARY_DIR}/CPackSourceConfig.cmake
+        "\nset(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS \"-DRunCMake_TEST:STRING=${full_test_name_}\ -DRunCMake_TEST_FILE_PREFIX:STRING=${TEST_NAME}\")")
+    else()
+      unset(pack_params_)
+    endif()
+
     # execute cpack
     execute_process(
-      COMMAND "${CMAKE_CPACK_COMMAND}"
+      COMMAND ${CMAKE_CPACK_COMMAND} ${pack_params_}
       WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}"
+      RESULT_VARIABLE "result_"
       OUTPUT_FILE "${RunCMake_TEST_BINARY_DIR}/test_output.txt"
       ERROR_FILE "${RunCMake_TEST_BINARY_DIR}/test_error.txt"
       )
@@ -139,11 +82,15 @@ function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX)
 endfunction()
 
 function(run_cpack_test TEST_NAME types build)
-  run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "")
+  run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "" false)
+endfunction()
+
+function(run_cpack_source_test TEST_NAME types build)
+  run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "" true)
 endfunction()
 
 function(run_cpack_test_subtests TEST_NAME SUBTEST_SUFFIXES types build)
   foreach(suffix_ IN LISTS SUBTEST_SUFFIXES)
-    run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "${suffix_}")
+    run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "${suffix_}" false)
   endforeach()
 endfunction()