This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  0ac1b0beaaed6eb468d84d95ae3880709e98cdfd (commit)
       via  55b2aa884cdb3df9a32152ee1df60e708d2c5ec9 (commit)
       via  eb33000d75e0e41a2412db9a75597dbee6bfdad6 (commit)
       via  42a81e7119fab94afcb0c87f93c314af1689e1f7 (commit)
      from  a948b62ff8c0f72f89f2638222986d782cba47f1 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0ac1b0beaaed6eb468d84d95ae3880709e98cdfd
commit 0ac1b0beaaed6eb468d84d95ae3880709e98cdfd
Merge: a948b62 55b2aa8
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Mon Mar 12 09:40:42 2012 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Mon Mar 12 09:40:42 2012 -0400

    Merge topic 'test-RunCMake' into next
    
    55b2aa8 Use generalized RunCMake test infrastrucure for build_command test
    eb33000 Use generalized RunCMake test infrastrucure for find_package test
    42a81e7 Add stronger infrastructure for CMake-only tests


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=55b2aa884cdb3df9a32152ee1df60e708d2c5ec9
commit 55b2aa884cdb3df9a32152ee1df60e708d2c5ec9
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Fri Mar 9 16:47:19 2012 -0500
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Mar 12 09:33:21 2012 -0400

    Use generalized RunCMake test infrastrucure for build_command test
    
    The CMakeCommands.build_command test performs output/error checking
    so move it over to RunCMake to re-use the generalized infrastrucure.
    This is the only test left using Tests/CMakeCommands/CMakeLists.txt
    so remove it.

diff --git a/Tests/CMakeCommands/CMakeLists.txt 
b/Tests/CMakeCommands/CMakeLists.txt
deleted file mode 100644
index e9e4020..0000000
--- a/Tests/CMakeCommands/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-macro(add_CMakeCommands_test test)
-  add_test(CMakeCommands.${test} ${CMAKE_CMAKE_COMMAND}
-    -DCMake_SOURCE_DIR=${CMake_SOURCE_DIR} # TODO: Remove
-    -Ddir=${CMAKE_CURRENT_BINARY_DIR}/${test}
-    -Dgen=${CMAKE_TEST_GENERATOR}
-    -P "${CMAKE_CURRENT_SOURCE_DIR}/${test}/test.cmake"
-    )
-endmacro()
-
-add_CMakeCommands_test(build_command)
diff --git a/Tests/CMakeCommands/build_command/test.cmake 
b/Tests/CMakeCommands/build_command/test.cmake
deleted file mode 100644
index 55d9359..0000000
--- a/Tests/CMakeCommands/build_command/test.cmake
+++ /dev/null
@@ -1,86 +0,0 @@
-if(NOT DEFINED CMake_SOURCE_DIR)
-  message(FATAL_ERROR "CMake_SOURCE_DIR not defined")
-endif()
-
-if(NOT DEFINED dir)
-  message(FATAL_ERROR "dir not defined")
-endif()
-
-if(NOT DEFINED gen)
-  message(FATAL_ERROR "gen not defined")
-endif()
-
-message(STATUS "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)")
-
-# Run cmake:
-#
-function(run_cmake build_dir extra_args expected_result expected_output 
expected_error)
-  message(STATUS "run_cmake build_dir='${build_dir}' 
extra_args='${extra_args}'")
-
-  # Ensure build_dir exists:
-  #
-  execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${build_dir})
-
-  # Run cmake:
-  #
-  execute_process(COMMAND ${CMAKE_COMMAND}
-    ${extra_args}
-    -G ${gen} ${CMake_SOURCE_DIR}/Tests/CMakeCommands/build_command
-    RESULT_VARIABLE result
-    OUTPUT_VARIABLE stdout
-    ERROR_VARIABLE stderr
-    WORKING_DIRECTORY ${build_dir}
-    )
-
-  message(STATUS "result='${result}'")
-  message(STATUS "stdout='${stdout}'")
-  message(STATUS "stderr='${stderr}'")
-  message(STATUS "")
-
-  # Verify result and output match expectations:
-  #
-  if("0" STREQUAL "${expected_result}")
-    if(NOT "${result}" STREQUAL "0")
-      message(FATAL_ERROR
-        "error: result='${result}' is non-zero and different than 
expected_result='${expected_result}'")
-    endif()
-  else()
-    if("${result}" STREQUAL "0")
-      message(FATAL_ERROR
-        "error: result='${result}' is zero and different than 
expected_result='${expected_result}'")
-    endif()
-  endif()
-
-  foreach(e ${expected_output})
-    if(NOT stdout MATCHES "${e}")
-      message(FATAL_ERROR
-        "error: stdout does not match expected_output item e='${e}'")
-    else()
-      message(STATUS "info: stdout matches '${e}'")
-    endif()
-  endforeach()
-
-  foreach(e ${expected_error})
-    if(NOT stderr MATCHES "${e}")
-      message(FATAL_ERROR
-        "error: stderr does not match expected_error item e='${e}'")
-    else()
-      message(STATUS "info: stderr matches '${e}'")
-    endif()
-  endforeach()
-
-  message(STATUS "result, stdout and stderr match all expectations: test 
passes")
-  message(STATUS "")
-endfunction()
-
-
-# Expect this case to succeed:
-run_cmake("${dir}/b1" "" 0
-  "Build files have been written to:"
-  "skipping cases 1, 2 and 3 because TEST_ERROR_CONDITIONS is OFF")
-
-
-# Expect this one to fail:
-run_cmake("${dir}/b2" "-DTEST_ERROR_CONDITIONS:BOOL=ON" 1
-  "Configuring incomplete, errors occurred!"
-  "build_command requires at least one argument naming a CMake 
variable;build_command unknown argument ")
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 0eb4859..cf4dc44 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -53,7 +53,6 @@ IF(BUILD_TESTING)
 
   ADD_SUBDIRECTORY(CMakeLib)
   ADD_SUBDIRECTORY(CMakeOnly)
-  ADD_SUBDIRECTORY(CMakeCommands)
   ADD_SUBDIRECTORY(RunCMake)
 
   ADD_SUBDIRECTORY(FindPackageModeMakefileTest)
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 2dbb08e..63fc9f8 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -40,4 +40,5 @@ macro(add_RunCMake_test test)
     )
 endmacro()
 
+add_RunCMake_test(build_command)
 add_RunCMake_test(find_package)
diff --git a/Tests/CMakeCommands/build_command/CMakeLists.txt 
b/Tests/RunCMake/build_command/CMakeLists.txt
similarity index 96%
rename from Tests/CMakeCommands/build_command/CMakeLists.txt
rename to Tests/RunCMake/build_command/CMakeLists.txt
index 990ac90..0fbb948 100644
--- a/Tests/CMakeCommands/build_command/CMakeLists.txt
+++ b/Tests/RunCMake/build_command/CMakeLists.txt
@@ -1,3 +1,7 @@
+cmake_minimum_required(VERSION 2.8)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
+
 # This CMakeLists file is *sometimes expected* to result in a configure error.
 #
 # expect this to succeed:
@@ -12,12 +16,9 @@
 # ...even purposefully calling it with known-bad argument lists to cover
 # error handling code.
 #
-cmake_minimum_required(VERSION 2.8)
-project(test_build_command)
 
 set(cmd "initial")
 
-message("CTEST_FULL_OUTPUT")
 message("0. begin")
 
 if(TEST_ERROR_CONDITIONS)
diff --git a/Tests/RunCMake/build_command/ErrorsOFF-stderr.txt 
b/Tests/RunCMake/build_command/ErrorsOFF-stderr.txt
new file mode 100644
index 0000000..331885b
--- /dev/null
+++ b/Tests/RunCMake/build_command/ErrorsOFF-stderr.txt
@@ -0,0 +1 @@
+skipping cases 1, 2 and 3 because TEST_ERROR_CONDITIONS is OFF
diff --git a/Tests/RunCMake/build_command/ErrorsOFF-stdout.txt 
b/Tests/RunCMake/build_command/ErrorsOFF-stdout.txt
new file mode 100644
index 0000000..cf66a9d
--- /dev/null
+++ b/Tests/RunCMake/build_command/ErrorsOFF-stdout.txt
@@ -0,0 +1 @@
+Build files have been written to:
diff --git a/Tests/RunCMake/build_command/ErrorsOFF.cmake 
b/Tests/RunCMake/build_command/ErrorsOFF.cmake
new file mode 100644
index 0000000..a243fab
--- /dev/null
+++ b/Tests/RunCMake/build_command/ErrorsOFF.cmake
@@ -0,0 +1 @@
+set(TEST_ERROR_CONDITIONS OFF)
diff --git a/Tests/RunCMake/build_command/ErrorsON-result.txt 
b/Tests/RunCMake/build_command/ErrorsON-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/build_command/ErrorsON-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/build_command/ErrorsON-stderr.txt 
b/Tests/RunCMake/build_command/ErrorsON-stderr.txt
new file mode 100644
index 0000000..0be7475
--- /dev/null
+++ b/Tests/RunCMake/build_command/ErrorsON-stderr.txt
@@ -0,0 +1,12 @@
+CMake Error at CMakeLists.txt:[0-9]+ \(build_command\):
+  build_command requires at least one argument naming a CMake variable
+
++
+1. cmd='initial'
+CMake Error at CMakeLists.txt:[0-9]+ \(build_command\):
+  build_command unknown argument "BOGUS"
+
++
+2. cmd='initial'
+CMake Error at CMakeLists.txt:[0-9]+ \(build_command\):
+  build_command unknown argument "STUFF"
diff --git a/Tests/RunCMake/build_command/ErrorsON-stdout.txt 
b/Tests/RunCMake/build_command/ErrorsON-stdout.txt
new file mode 100644
index 0000000..841dd0d
--- /dev/null
+++ b/Tests/RunCMake/build_command/ErrorsON-stdout.txt
@@ -0,0 +1 @@
+Configuring incomplete, errors occurred!
diff --git a/Tests/RunCMake/build_command/ErrorsON.cmake 
b/Tests/RunCMake/build_command/ErrorsON.cmake
new file mode 100644
index 0000000..27814bf
--- /dev/null
+++ b/Tests/RunCMake/build_command/ErrorsON.cmake
@@ -0,0 +1 @@
+set(TEST_ERROR_CONDITIONS ON)
diff --git a/Tests/RunCMake/build_command/RunCMakeTest.cmake 
b/Tests/RunCMake/build_command/RunCMakeTest.cmake
new file mode 100644
index 0000000..4525c57
--- /dev/null
+++ b/Tests/RunCMake/build_command/RunCMakeTest.cmake
@@ -0,0 +1,4 @@
+include(RunCMake)
+
+run_cmake(ErrorsOFF)
+run_cmake(ErrorsON)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eb33000d75e0e41a2412db9a75597dbee6bfdad6
commit eb33000d75e0e41a2412db9a75597dbee6bfdad6
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Fri Mar 9 16:34:09 2012 -0500
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Mar 12 09:33:21 2012 -0400

    Use generalized RunCMake test infrastrucure for find_package test

diff --git a/Tests/CMakeCommands/CMakeLists.txt 
b/Tests/CMakeCommands/CMakeLists.txt
index aa400d0..e9e4020 100644
--- a/Tests/CMakeCommands/CMakeLists.txt
+++ b/Tests/CMakeCommands/CMakeLists.txt
@@ -8,4 +8,3 @@ macro(add_CMakeCommands_test test)
 endmacro()
 
 add_CMakeCommands_test(build_command)
-add_CMakeCommands_test(find_package)
diff --git a/Tests/CMakeCommands/find_package/CMakeLists.txt 
b/Tests/CMakeCommands/find_package/CMakeLists.txt
deleted file mode 100644
index c2deed0..0000000
--- a/Tests/CMakeCommands/find_package/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-project(${TEST} NONE)
-include(${TEST}.cmake)
diff --git a/Tests/CMakeCommands/find_package/test.cmake 
b/Tests/CMakeCommands/find_package/test.cmake
deleted file mode 100644
index dd1072e..0000000
--- a/Tests/CMakeCommands/find_package/test.cmake
+++ /dev/null
@@ -1,80 +0,0 @@
-if(NOT DEFINED dir)
-  message(FATAL_ERROR "dir not defined")
-endif()
-
-if(NOT DEFINED gen)
-  message(FATAL_ERROR "gen not defined")
-endif()
-
-# TODO: Generalize this for other tests.
-function(run_test test)
-  set(top_src "${CMAKE_CURRENT_LIST_DIR}")
-  set(top_bin "${dir}")
-  if(EXISTS ${top_src}/${test}-result.txt)
-    file(READ ${top_src}/${test}-result.txt expect_result)
-    string(REGEX REPLACE "\n+$" "" expect_result "${expect_result}")
-  else()
-    set(expect_result 0)
-  endif()
-  foreach(o out err)
-    if(EXISTS ${top_src}/${test}-std${o}.txt)
-      file(READ ${top_src}/${test}-std${o}.txt expect_std${o})
-      string(REGEX REPLACE "\n+$" "" expect_std${o} "${expect_std${o}}")
-    else()
-      unset(expect_std${o})
-    endif()
-  endforeach()
-  set(source_dir "${top_src}")
-  set(binary_dir "${top_bin}/${test}-build")
-  file(REMOVE_RECURSE "${binary_dir}")
-  file(MAKE_DIRECTORY "${binary_dir}")
-  execute_process(
-    COMMAND ${CMAKE_COMMAND} "${source_dir}" -G "${gen}" -DTEST=${test}
-    WORKING_DIRECTORY "${binary_dir}"
-    OUTPUT_VARIABLE actual_stdout
-    ERROR_VARIABLE actual_stderr
-    RESULT_VARIABLE actual_result
-    )
-  set(msg "")
-  if(NOT "${actual_result}" STREQUAL "${expect_result}")
-    set(msg "${msg}Result is [${actual_result}], not [${expect_result}].\n")
-  endif()
-  foreach(o out err)
-    string(REGEX REPLACE "\n+$" "" actual_std${o} "${actual_std${o}}")
-    set(expect_${o} "")
-    if(DEFINED expect_std${o})
-      if(NOT "${actual_std${o}}" MATCHES "${expect_std${o}}")
-        string(REGEX REPLACE "\n" "\n expect-${o}> " expect_${o}
-          " expect-${o}> ${expect_std${o}}")
-        set(expect_${o} "Expected std${o} to match:\n${expect_${o}}\n")
-        set(msg "${msg}std${o} does not match that expected.\n")
-      endif()
-    endif()
-  endforeach()
-  if(msg)
-    string(REGEX REPLACE "\n" "\n actual-out> " actual_out " actual-out> 
${actual_stdout}")
-    string(REGEX REPLACE "\n" "\n actual-err> " actual_err " actual-err> 
${actual_stderr}")
-    message(SEND_ERROR "${test} - FAILED:\n"
-      "${msg}"
-      "${expect_out}"
-      "Actual stdout:\n${actual_out}\n"
-      "${expect_err}"
-      "Actual stderr:\n${actual_err}\n"
-      )
-  else()
-    message(STATUS "${test} - PASSED")
-  endif()
-endfunction()
-
-run_test(MissingNormal)
-run_test(MissingNormalRequired)
-run_test(MissingNormalVersion)
-run_test(MissingNormalWarnNoModuleOld)
-run_test(MissingNormalWarnNoModuleNew)
-run_test(MissingModule)
-run_test(MissingModuleRequired)
-run_test(MissingConfig)
-run_test(MissingConfigOneName)
-run_test(MissingConfigRequired)
-run_test(MissingConfigVersion)
-run_test(MixedModeOptions)
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 5f10bd7..2dbb08e 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -39,3 +39,5 @@ macro(add_RunCMake_test test)
     -P "${CMAKE_CURRENT_SOURCE_DIR}/${test}/RunCMakeTest.cmake"
     )
 endmacro()
+
+add_RunCMake_test(find_package)
diff --git a/Tests/RunCMake/find_package/CMakeLists.txt 
b/Tests/RunCMake/find_package/CMakeLists.txt
new file mode 100644
index 0000000..e8db6b0
--- /dev/null
+++ b/Tests/RunCMake/find_package/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/CMakeCommands/find_package/MissingConfig-stderr.txt 
b/Tests/RunCMake/find_package/MissingConfig-stderr.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingConfig-stderr.txt
rename to Tests/RunCMake/find_package/MissingConfig-stderr.txt
diff --git a/Tests/CMakeCommands/find_package/MissingConfig.cmake 
b/Tests/RunCMake/find_package/MissingConfig.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingConfig.cmake
rename to Tests/RunCMake/find_package/MissingConfig.cmake
diff --git a/Tests/CMakeCommands/find_package/MissingConfigOneName-stderr.txt 
b/Tests/RunCMake/find_package/MissingConfigOneName-stderr.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingConfigOneName-stderr.txt
rename to Tests/RunCMake/find_package/MissingConfigOneName-stderr.txt
diff --git a/Tests/CMakeCommands/find_package/MissingConfigOneName.cmake 
b/Tests/RunCMake/find_package/MissingConfigOneName.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingConfigOneName.cmake
rename to Tests/RunCMake/find_package/MissingConfigOneName.cmake
diff --git a/Tests/CMakeCommands/find_package/MissingConfigRequired-result.txt 
b/Tests/RunCMake/find_package/MissingConfigRequired-result.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingConfigRequired-result.txt
rename to Tests/RunCMake/find_package/MissingConfigRequired-result.txt
diff --git a/Tests/CMakeCommands/find_package/MissingConfigRequired-stderr.txt 
b/Tests/RunCMake/find_package/MissingConfigRequired-stderr.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingConfigRequired-stderr.txt
rename to Tests/RunCMake/find_package/MissingConfigRequired-stderr.txt
diff --git a/Tests/CMakeCommands/find_package/MissingConfigRequired.cmake 
b/Tests/RunCMake/find_package/MissingConfigRequired.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingConfigRequired.cmake
rename to Tests/RunCMake/find_package/MissingConfigRequired.cmake
diff --git a/Tests/CMakeCommands/find_package/MissingConfigVersion-stderr.txt 
b/Tests/RunCMake/find_package/MissingConfigVersion-stderr.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingConfigVersion-stderr.txt
rename to Tests/RunCMake/find_package/MissingConfigVersion-stderr.txt
diff --git a/Tests/CMakeCommands/find_package/MissingConfigVersion.cmake 
b/Tests/RunCMake/find_package/MissingConfigVersion.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingConfigVersion.cmake
rename to Tests/RunCMake/find_package/MissingConfigVersion.cmake
diff --git a/Tests/CMakeCommands/find_package/MissingModule-stderr.txt 
b/Tests/RunCMake/find_package/MissingModule-stderr.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingModule-stderr.txt
rename to Tests/RunCMake/find_package/MissingModule-stderr.txt
diff --git a/Tests/CMakeCommands/find_package/MissingModule.cmake 
b/Tests/RunCMake/find_package/MissingModule.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingModule.cmake
rename to Tests/RunCMake/find_package/MissingModule.cmake
diff --git a/Tests/CMakeCommands/find_package/MissingModuleRequired-result.txt 
b/Tests/RunCMake/find_package/MissingModuleRequired-result.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingModuleRequired-result.txt
rename to Tests/RunCMake/find_package/MissingModuleRequired-result.txt
diff --git a/Tests/CMakeCommands/find_package/MissingModuleRequired-stderr.txt 
b/Tests/RunCMake/find_package/MissingModuleRequired-stderr.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingModuleRequired-stderr.txt
rename to Tests/RunCMake/find_package/MissingModuleRequired-stderr.txt
diff --git a/Tests/CMakeCommands/find_package/MissingModuleRequired.cmake 
b/Tests/RunCMake/find_package/MissingModuleRequired.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingModuleRequired.cmake
rename to Tests/RunCMake/find_package/MissingModuleRequired.cmake
diff --git a/Tests/CMakeCommands/find_package/MissingNormal-stderr.txt 
b/Tests/RunCMake/find_package/MissingNormal-stderr.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingNormal-stderr.txt
rename to Tests/RunCMake/find_package/MissingNormal-stderr.txt
diff --git a/Tests/CMakeCommands/find_package/MissingNormal.cmake 
b/Tests/RunCMake/find_package/MissingNormal.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingNormal.cmake
rename to Tests/RunCMake/find_package/MissingNormal.cmake
diff --git a/Tests/CMakeCommands/find_package/MissingNormalRequired-result.txt 
b/Tests/RunCMake/find_package/MissingNormalRequired-result.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingNormalRequired-result.txt
rename to Tests/RunCMake/find_package/MissingNormalRequired-result.txt
diff --git a/Tests/CMakeCommands/find_package/MissingNormalRequired-stderr.txt 
b/Tests/RunCMake/find_package/MissingNormalRequired-stderr.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingNormalRequired-stderr.txt
rename to Tests/RunCMake/find_package/MissingNormalRequired-stderr.txt
diff --git a/Tests/CMakeCommands/find_package/MissingNormalRequired.cmake 
b/Tests/RunCMake/find_package/MissingNormalRequired.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingNormalRequired.cmake
rename to Tests/RunCMake/find_package/MissingNormalRequired.cmake
diff --git a/Tests/CMakeCommands/find_package/MissingNormalVersion-stderr.txt 
b/Tests/RunCMake/find_package/MissingNormalVersion-stderr.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingNormalVersion-stderr.txt
rename to Tests/RunCMake/find_package/MissingNormalVersion-stderr.txt
diff --git a/Tests/CMakeCommands/find_package/MissingNormalVersion.cmake 
b/Tests/RunCMake/find_package/MissingNormalVersion.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingNormalVersion.cmake
rename to Tests/RunCMake/find_package/MissingNormalVersion.cmake
diff --git 
a/Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleNew-stderr.txt 
b/Tests/RunCMake/find_package/MissingNormalWarnNoModuleNew-stderr.txt
similarity index 100%
rename from 
Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleNew-stderr.txt
rename to Tests/RunCMake/find_package/MissingNormalWarnNoModuleNew-stderr.txt
diff --git 
a/Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleNew.cmake 
b/Tests/RunCMake/find_package/MissingNormalWarnNoModuleNew.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleNew.cmake
rename to Tests/RunCMake/find_package/MissingNormalWarnNoModuleNew.cmake
diff --git 
a/Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleOld-stderr.txt 
b/Tests/RunCMake/find_package/MissingNormalWarnNoModuleOld-stderr.txt
similarity index 100%
rename from 
Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleOld-stderr.txt
rename to Tests/RunCMake/find_package/MissingNormalWarnNoModuleOld-stderr.txt
diff --git 
a/Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleOld.cmake 
b/Tests/RunCMake/find_package/MissingNormalWarnNoModuleOld.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleOld.cmake
rename to Tests/RunCMake/find_package/MissingNormalWarnNoModuleOld.cmake
diff --git a/Tests/CMakeCommands/find_package/MixedModeOptions-result.txt 
b/Tests/RunCMake/find_package/MixedModeOptions-result.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MixedModeOptions-result.txt
rename to Tests/RunCMake/find_package/MixedModeOptions-result.txt
diff --git a/Tests/CMakeCommands/find_package/MixedModeOptions-stderr.txt 
b/Tests/RunCMake/find_package/MixedModeOptions-stderr.txt
similarity index 100%
rename from Tests/CMakeCommands/find_package/MixedModeOptions-stderr.txt
rename to Tests/RunCMake/find_package/MixedModeOptions-stderr.txt
diff --git a/Tests/CMakeCommands/find_package/MixedModeOptions.cmake 
b/Tests/RunCMake/find_package/MixedModeOptions.cmake
similarity index 100%
rename from Tests/CMakeCommands/find_package/MixedModeOptions.cmake
rename to Tests/RunCMake/find_package/MixedModeOptions.cmake
diff --git a/Tests/RunCMake/find_package/RunCMakeTest.cmake 
b/Tests/RunCMake/find_package/RunCMakeTest.cmake
new file mode 100644
index 0000000..ba57f99
--- /dev/null
+++ b/Tests/RunCMake/find_package/RunCMakeTest.cmake
@@ -0,0 +1,14 @@
+include(RunCMake)
+
+run_cmake(MissingNormal)
+run_cmake(MissingNormalRequired)
+run_cmake(MissingNormalVersion)
+run_cmake(MissingNormalWarnNoModuleOld)
+run_cmake(MissingNormalWarnNoModuleNew)
+run_cmake(MissingModule)
+run_cmake(MissingModuleRequired)
+run_cmake(MissingConfig)
+run_cmake(MissingConfigOneName)
+run_cmake(MissingConfigRequired)
+run_cmake(MissingConfigVersion)
+run_cmake(MixedModeOptions)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=42a81e7119fab94afcb0c87f93c314af1689e1f7
commit 42a81e7119fab94afcb0c87f93c314af1689e1f7
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Fri Mar 9 16:24:43 2012 -0500
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Mar 12 09:33:21 2012 -0400

    Add stronger infrastructure for CMake-only tests
    
    The CMakeOnly directory added by commit 9a20abf0 (Add infrastructure for
    CMake-only tests, 2012-01-11) was sufficient only for tests that always
    run CMake to successfully configure a project.  Later commit eeaaffcb
    (find_package: Test error and warning messages in failure cases,
    2012-02-28) added a sample test that covers failure cases.
    
    Generalize the above to create new "RunCMake" test infrastructure that
    can run CMake multiple times for a single project with different
    variations and check for expected result/stdout/stderr.  Allow for both
    successful and failing CMake project configuration cases.  This will be
    useful to test error messages and failure behavior.

diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 07a6c36..0eb4859 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -54,6 +54,7 @@ IF(BUILD_TESTING)
   ADD_SUBDIRECTORY(CMakeLib)
   ADD_SUBDIRECTORY(CMakeOnly)
   ADD_SUBDIRECTORY(CMakeCommands)
+  ADD_SUBDIRECTORY(RunCMake)
 
   ADD_SUBDIRECTORY(FindPackageModeMakefileTest)
 
diff --git a/Tests/README b/Tests/README
index 9b0f5c1..8b2fda8 100644
--- a/Tests/README
+++ b/Tests/README
@@ -16,10 +16,15 @@ your test to the test runs.
 This includes tests that will build something using try_compile() and friends,
 but nothing that expects add_executable(), add_library(), or add_test() to run.
 
-If this matches your test you should put it into the Tests/CMakeOnly/ 
directory.
-Create a subdirectory named like your test and write the CMakeLists.txt you
-need into that subdirectory. Use the add_CMakeOnly_test() macro from
-Tests/CMakeOnly/CMakeLists.txt to add your test to the test runs.
+If the test configures the project only once and it must succeed then put it
+into the Tests/CMakeOnly/ directory.  Create a subdirectory named like your
+test and write the CMakeLists.txt you need into that subdirectory. Use the
+add_CMakeOnly_test() macro from Tests/CMakeOnly/CMakeLists.txt to add your
+test to the test runs.
+
+If the test configures the project with multiple variations and verifies
+success or failure each time then put it into the Tests/RunCMake/ directory.
+Read the instructions in Tests/RunCMake/CMakeLists.txt to add a test.
 
 3. If you are testing something from the Modules directory
 
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
new file mode 100644
index 0000000..5f10bd7
--- /dev/null
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -0,0 +1,41 @@
+# This directory contains tests that run CMake to configure a project
+# but do not actually build anything.  To add a test:
+#
+# 1.) Add a subdirectory named for the test.
+#
+# 2.) Call add_RunCMake_test and pass the test directory name.
+#
+# 3.) Create a RunCMakeTest.cmake script in the directory containing
+#   include(RunCMake)
+#   run_cmake(SubTest1)
+#   ...
+#   run_cmake(SubTestN)
+# where SubTest1..SubTestN are sub-test names each corresponding to
+# an independent CMake run and project configuration.
+#
+# 3.) Create a CMakeLists.txt file in the directory containing
+#   cmake_minimum_required(...)
+#   project(${RunCMake_TEST} NONE) # or languages needed
+#   include(${RunCMake_TEST}.cmake)
+# where "${RunCMake_TEST}" is literal.  A value for RunCMake_TEST
+# will be passed to CMake by the run_cmake macro when running each
+# sub-test.
+#
+# 4.) Create a <SubTest>.cmake file for each sub-test named above
+# containing the actual test code.  Optionally create files
+# containing expected test results:
+#   <SubTest>-result.txt = Process result expected if not "0"
+#   <SubTest>-stdout.txt = Regex matching expected stdout content
+#   <SubTest>-stderr.txt = Regex matching expected stderr content
+# Note that trailing newlines will be stripped from actual test
+# output before matching against the stdout and stderr expressions.
+
+macro(add_RunCMake_test test)
+  add_test(RunCMake.${test} ${CMAKE_CMAKE_COMMAND}
+    -DCMAKE_MODULE_PATH=${CMAKE_CURRENT_SOURCE_DIR}
+    -DRunCMake_GENERATOR=${CMAKE_TEST_GENERATOR}
+    -DRunCMake_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/${test}
+    -DRunCMake_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}/${test}
+    -P "${CMAKE_CURRENT_SOURCE_DIR}/${test}/RunCMakeTest.cmake"
+    )
+endmacro()
diff --git a/Tests/RunCMake/RunCMake.cmake b/Tests/RunCMake/RunCMake.cmake
new file mode 100644
index 0000000..2639463
--- /dev/null
+++ b/Tests/RunCMake/RunCMake.cmake
@@ -0,0 +1,69 @@
+foreach(arg
+    RunCMake_GENERATOR
+    RunCMake_SOURCE_DIR
+    RunCMake_BINARY_DIR
+    )
+  if(NOT DEFINED ${arg})
+    message(FATAL_ERROR "${arg} not given!")
+  endif()
+endforeach()
+
+function(run_cmake test)
+  set(top_src "${RunCMake_SOURCE_DIR}")
+  set(top_bin "${RunCMake_BINARY_DIR}")
+  if(EXISTS ${top_src}/${test}-result.txt)
+    file(READ ${top_src}/${test}-result.txt expect_result)
+    string(REGEX REPLACE "\n+$" "" expect_result "${expect_result}")
+  else()
+    set(expect_result 0)
+  endif()
+  foreach(o out err)
+    if(EXISTS ${top_src}/${test}-std${o}.txt)
+      file(READ ${top_src}/${test}-std${o}.txt expect_std${o})
+      string(REGEX REPLACE "\n+$" "" expect_std${o} "${expect_std${o}}")
+    else()
+      unset(expect_std${o})
+    endif()
+  endforeach()
+  set(source_dir "${top_src}")
+  set(binary_dir "${top_bin}/${test}-build")
+  file(REMOVE_RECURSE "${binary_dir}")
+  file(MAKE_DIRECTORY "${binary_dir}")
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} "${source_dir}"
+              -G "${RunCMake_GENERATOR}" -DRunCMake_TEST=${test}
+    WORKING_DIRECTORY "${binary_dir}"
+    OUTPUT_VARIABLE actual_stdout
+    ERROR_VARIABLE actual_stderr
+    RESULT_VARIABLE actual_result
+    )
+  set(msg "")
+  if(NOT "${actual_result}" STREQUAL "${expect_result}")
+    set(msg "${msg}Result is [${actual_result}], not [${expect_result}].\n")
+  endif()
+  foreach(o out err)
+    string(REGEX REPLACE "\n+$" "" actual_std${o} "${actual_std${o}}")
+    set(expect_${o} "")
+    if(DEFINED expect_std${o})
+      if(NOT "${actual_std${o}}" MATCHES "${expect_std${o}}")
+        string(REGEX REPLACE "\n" "\n expect-${o}> " expect_${o}
+          " expect-${o}> ${expect_std${o}}")
+        set(expect_${o} "Expected std${o} to match:\n${expect_${o}}\n")
+        set(msg "${msg}std${o} does not match that expected.\n")
+      endif()
+    endif()
+  endforeach()
+  if(msg)
+    string(REGEX REPLACE "\n" "\n actual-out> " actual_out " actual-out> 
${actual_stdout}")
+    string(REGEX REPLACE "\n" "\n actual-err> " actual_err " actual-err> 
${actual_stderr}")
+    message(SEND_ERROR "${test} - FAILED:\n"
+      "${msg}"
+      "${expect_out}"
+      "Actual stdout:\n${actual_out}\n"
+      "${expect_err}"
+      "Actual stderr:\n${actual_err}\n"
+      )
+  else()
+    message(STATUS "${test} - PASSED")
+  endif()
+endfunction()

-----------------------------------------------------------------------

Summary of changes:
 Tests/CMakeCommands/CMakeLists.txt                 |   11 ---
 Tests/CMakeCommands/build_command/test.cmake       |   86 --------------------
 Tests/CMakeCommands/find_package/CMakeLists.txt    |    3 -
 Tests/CMakeLists.txt                               |    2 +-
 Tests/README                                       |   13 ++-
 Tests/RunCMake/CMakeLists.txt                      |   44 ++++++++++
 .../test.cmake => RunCMake/RunCMake.cmake}         |   39 +++------
 .../build_command/CMakeLists.txt                   |    7 +-
 Tests/RunCMake/build_command/ErrorsOFF-stderr.txt  |    1 +
 Tests/RunCMake/build_command/ErrorsOFF-stdout.txt  |    1 +
 Tests/RunCMake/build_command/ErrorsOFF.cmake       |    1 +
 .../build_command/ErrorsON-result.txt}             |    0
 Tests/RunCMake/build_command/ErrorsON-stderr.txt   |   12 +++
 Tests/RunCMake/build_command/ErrorsON-stdout.txt   |    1 +
 Tests/RunCMake/build_command/ErrorsON.cmake        |    1 +
 Tests/RunCMake/build_command/RunCMakeTest.cmake    |    4 +
 Tests/RunCMake/find_package/CMakeLists.txt         |    3 +
 .../find_package/MissingConfig-stderr.txt          |    0
 .../find_package/MissingConfig.cmake               |    0
 .../find_package/MissingConfigOneName-stderr.txt   |    0
 .../find_package/MissingConfigOneName.cmake        |    0
 .../find_package/MissingConfigRequired-result.txt  |    0
 .../find_package/MissingConfigRequired-stderr.txt  |    0
 .../find_package/MissingConfigRequired.cmake       |    0
 .../find_package/MissingConfigVersion-stderr.txt   |    0
 .../find_package/MissingConfigVersion.cmake        |    0
 .../find_package/MissingModule-stderr.txt          |    0
 .../find_package/MissingModule.cmake               |    0
 .../find_package/MissingModuleRequired-result.txt  |    0
 .../find_package/MissingModuleRequired-stderr.txt  |    0
 .../find_package/MissingModuleRequired.cmake       |    0
 .../find_package/MissingNormal-stderr.txt          |    0
 .../find_package/MissingNormal.cmake               |    0
 .../find_package/MissingNormalRequired-result.txt  |    0
 .../find_package/MissingNormalRequired-stderr.txt  |    0
 .../find_package/MissingNormalRequired.cmake       |    0
 .../find_package/MissingNormalVersion-stderr.txt   |    0
 .../find_package/MissingNormalVersion.cmake        |    0
 .../MissingNormalWarnNoModuleNew-stderr.txt        |    0
 .../MissingNormalWarnNoModuleNew.cmake             |    0
 .../MissingNormalWarnNoModuleOld-stderr.txt        |    0
 .../MissingNormalWarnNoModuleOld.cmake             |    0
 .../find_package/MixedModeOptions-result.txt       |    0
 .../find_package/MixedModeOptions-stderr.txt       |    0
 .../find_package/MixedModeOptions.cmake            |    0
 Tests/RunCMake/find_package/RunCMakeTest.cmake     |   14 +++
 46 files changed, 110 insertions(+), 133 deletions(-)
 delete mode 100644 Tests/CMakeCommands/CMakeLists.txt
 delete mode 100644 Tests/CMakeCommands/build_command/test.cmake
 delete mode 100644 Tests/CMakeCommands/find_package/CMakeLists.txt
 create mode 100644 Tests/RunCMake/CMakeLists.txt
 rename Tests/{CMakeCommands/find_package/test.cmake => 
RunCMake/RunCMake.cmake} (73%)
 rename Tests/{CMakeCommands => RunCMake}/build_command/CMakeLists.txt (96%)
 create mode 100644 Tests/RunCMake/build_command/ErrorsOFF-stderr.txt
 create mode 100644 Tests/RunCMake/build_command/ErrorsOFF-stdout.txt
 create mode 100644 Tests/RunCMake/build_command/ErrorsOFF.cmake
 copy Tests/{CMakeCommands/find_package/MissingConfigRequired-result.txt => 
RunCMake/build_command/ErrorsON-result.txt} (100%)
 create mode 100644 Tests/RunCMake/build_command/ErrorsON-stderr.txt
 create mode 100644 Tests/RunCMake/build_command/ErrorsON-stdout.txt
 create mode 100644 Tests/RunCMake/build_command/ErrorsON.cmake
 create mode 100644 Tests/RunCMake/build_command/RunCMakeTest.cmake
 create mode 100644 Tests/RunCMake/find_package/CMakeLists.txt
 rename Tests/{CMakeCommands => RunCMake}/find_package/MissingConfig-stderr.txt 
(100%)
 rename Tests/{CMakeCommands => RunCMake}/find_package/MissingConfig.cmake 
(100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingConfigOneName-stderr.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingConfigOneName.cmake (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingConfigRequired-result.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingConfigRequired-stderr.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingConfigRequired.cmake (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingConfigVersion-stderr.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingConfigVersion.cmake (100%)
 rename Tests/{CMakeCommands => RunCMake}/find_package/MissingModule-stderr.txt 
(100%)
 rename Tests/{CMakeCommands => RunCMake}/find_package/MissingModule.cmake 
(100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingModuleRequired-result.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingModuleRequired-stderr.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingModuleRequired.cmake (100%)
 rename Tests/{CMakeCommands => RunCMake}/find_package/MissingNormal-stderr.txt 
(100%)
 rename Tests/{CMakeCommands => RunCMake}/find_package/MissingNormal.cmake 
(100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingNormalRequired-result.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingNormalRequired-stderr.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingNormalRequired.cmake (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingNormalVersion-stderr.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingNormalVersion.cmake (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingNormalWarnNoModuleNew-stderr.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingNormalWarnNoModuleNew.cmake (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingNormalWarnNoModuleOld-stderr.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MissingNormalWarnNoModuleOld.cmake (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MixedModeOptions-result.txt (100%)
 rename Tests/{CMakeCommands => 
RunCMake}/find_package/MixedModeOptions-stderr.txt (100%)
 rename Tests/{CMakeCommands => RunCMake}/find_package/MixedModeOptions.cmake 
(100%)
 create mode 100644 Tests/RunCMake/find_package/RunCMakeTest.cmake


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits

Reply via email to