[Cmake-commits] CMake branch, next, updated. v2.8.12.1-7185-g556a055
Brad King
brad.king at kitware.com
Mon Jan 20 13:49:58 EST 2014
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 556a05531f1b324a0c4ee117a0f252a2135365c1 (commit)
via d4ca30ae150ea83c91bb75527a4152ce87e289e5 (commit)
via 392a6553f9fe9908d5d7c363ad013003d965e5e0 (commit)
from 27164dcb470b88130bc50d0395899dcef6e8265d (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=556a05531f1b324a0c4ee117a0f252a2135365c1
commit 556a05531f1b324a0c4ee117a0f252a2135365c1
Merge: 27164dc d4ca30a
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon Jan 20 13:49:57 2014 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Jan 20 13:49:57 2014 -0500
Merge topic 'improve-Tests-RunCMake' into next
d4ca30ae Tests/RunCMake: Add function to run a specified command-line
392a6553 Tests/RunCMake: Move documentation to a README.rst
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d4ca30ae150ea83c91bb75527a4152ce87e289e5
commit d4ca30ae150ea83c91bb75527a4152ce87e289e5
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon Jan 20 13:46:51 2014 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Mon Jan 20 13:46:51 2014 -0500
Tests/RunCMake: Add function to run a specified command-line
Add a 'run_cmake_command' function that can be used by tests to run a
given command-line and check the results rather than always running a
CMake configuration process. This can be used in the future to test
'cmake -E' for example.
diff --git a/Tests/RunCMake/README.rst b/Tests/RunCMake/README.rst
index d4159a5..536cff2 100644
--- a/Tests/RunCMake/README.rst
+++ b/Tests/RunCMake/README.rst
@@ -16,6 +16,12 @@ but do not actually build anything. To add a test:
where ``SubTest1`` through ``SubTestN`` are sub-test names each
corresponding to an independent CMake run and project configuration.
+ One may also add calls of the form::
+
+ run_cmake_command(SubTestI ${CMAKE_COMMAND} ...)
+
+ to fully customize the test case command-line.
+
4. Create file ``<Test>/CMakeLists.txt`` in the directory containing::
cmake_minimum_required(...)
diff --git a/Tests/RunCMake/RunCMake.cmake b/Tests/RunCMake/RunCMake.cmake
index 5c7c05c..1d1c523 100644
--- a/Tests/RunCMake/RunCMake.cmake
+++ b/Tests/RunCMake/RunCMake.cmake
@@ -39,17 +39,27 @@ function(run_cmake test)
if(APPLE)
list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0025=NEW)
endif()
- execute_process(
- COMMAND ${CMAKE_COMMAND} "${RunCMake_TEST_SOURCE_DIR}"
- -G "${RunCMake_GENERATOR}"
- -T "${RunCMake_GENERATOR_TOOLSET}"
- -DRunCMake_TEST=${test}
- ${RunCMake_TEST_OPTIONS}
- WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}"
- OUTPUT_VARIABLE actual_stdout
- ERROR_VARIABLE actual_stderr
- RESULT_VARIABLE actual_result
- )
+ if(RunCMake_TEST_COMMAND)
+ execute_process(
+ COMMAND ${RunCMake_TEST_COMMAND}
+ WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}"
+ OUTPUT_VARIABLE actual_stdout
+ ERROR_VARIABLE actual_stderr
+ RESULT_VARIABLE actual_result
+ )
+ else()
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} "${RunCMake_TEST_SOURCE_DIR}"
+ -G "${RunCMake_GENERATOR}"
+ -T "${RunCMake_GENERATOR_TOOLSET}"
+ -DRunCMake_TEST=${test}
+ ${RunCMake_TEST_OPTIONS}
+ WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}"
+ OUTPUT_VARIABLE actual_stdout
+ ERROR_VARIABLE actual_stderr
+ RESULT_VARIABLE actual_result
+ )
+ endif()
set(msg "")
if(NOT "${actual_result}" STREQUAL "${expect_result}")
set(msg "${msg}Result is [${actual_result}], not [${expect_result}].\n")
@@ -86,3 +96,8 @@ function(run_cmake test)
message(STATUS "${test} - PASSED")
endif()
endfunction()
+
+function(run_cmake_command test)
+ set(RunCMake_TEST_COMMAND "${ARGN}")
+ run_cmake(${test})
+endfunction()
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=392a6553f9fe9908d5d7c363ad013003d965e5e0
commit 392a6553f9fe9908d5d7c363ad013003d965e5e0
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon Jan 20 13:44:27 2014 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Mon Jan 20 13:46:24 2014 -0500
Tests/RunCMake: Move documentation to a README.rst
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 1c23bcd..fc730a7 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -1,39 +1,4 @@
-# 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
-# <SubTest>-check.cmake = Custom result check
-# Note that trailing newlines will be stripped from actual and expected test
-# output before matching against the stdout and stderr expressions.
-# The code in <SubTest>-check.cmake may use variables
-# RunCMake_TEST_SOURCE_DIR = Top of test source tree
-# RunCMake_TEST_BINARY_DIR = Top of test binary tree
-# and an failure must store a message in RunCMake_TEST_FAILED.
+# See adjacent README.rst for documentation of this test infrastructure.
macro(add_RunCMake_test test)
add_test(RunCMake.${test} ${CMAKE_CMAKE_COMMAND}
diff --git a/Tests/RunCMake/README.rst b/Tests/RunCMake/README.rst
new file mode 100644
index 0000000..d4159a5
--- /dev/null
+++ b/Tests/RunCMake/README.rst
@@ -0,0 +1,51 @@
+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, say ``<Test>/``.
+
+2. In ``./CMakeLists.txt`` call ``add_RunCMake_test`` and pass the
+ test directory name ``<Test>``.
+
+3. Create script ``<Test>/RunCMakeTest.cmake`` in the directory containing::
+
+ include(RunCMake)
+ run_cmake(SubTest1)
+ ...
+ run_cmake(SubTestN)
+
+ where ``SubTest1`` through ``SubTestN`` are sub-test names each
+ corresponding to an independent CMake run and project configuration.
+
+4. Create file ``<Test>/CMakeLists.txt`` 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.
+
+5. Create a ``<Test>/<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
+ ``<SubTest>-check.cmake``
+ Custom result check.
+
+ Note that trailing newlines will be stripped from actual and expected
+ test output before matching against the stdout and stderr expressions.
+ The code in ``<SubTest>-check.cmake`` may use variables
+
+ ``RunCMake_TEST_SOURCE_DIR``
+ Top of test source tree
+ ``RunCMake_TEST_BINARY_DIR``
+ Top of test binary tree
+
+ and an failure must store a message in ``RunCMake_TEST_FAILED``.
-----------------------------------------------------------------------
Summary of changes:
Tests/RunCMake/CMakeLists.txt | 37 +-------------------------
Tests/RunCMake/README.rst | 57 +++++++++++++++++++++++++++++++++++++++++
Tests/RunCMake/RunCMake.cmake | 37 ++++++++++++++++++--------
3 files changed, 84 insertions(+), 47 deletions(-)
create mode 100644 Tests/RunCMake/README.rst
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list