diff options
author | Brad King <brad.king@kitware.com> | 2009-08-11 13:56:02 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-08-11 13:56:02 (GMT) |
commit | 875c478b64de0e0986394e2d642254f7943ec588 (patch) | |
tree | 6d0f976715e3434f2f0d08c87eaf59e6e1c80070 /Tests/Testing/driver.cmake | |
parent | d2e1f2b4d6d87c171464b5dc41b00b609c90bf26 (diff) | |
download | CMake-875c478b64de0e0986394e2d642254f7943ec588.zip CMake-875c478b64de0e0986394e2d642254f7943ec588.tar.gz CMake-875c478b64de0e0986394e2d642254f7943ec588.tar.bz2 |
Test add_test() generator expressions
This teaches the 'testing' test to try generator expressions in
arguments to add_test(NAME). This test case mimics a common use-case of
passing executables to test driver scripts. We excercise the syntax for
per-configuration target file names.
Diffstat (limited to 'Tests/Testing/driver.cmake')
-rw-r--r-- | Tests/Testing/driver.cmake | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Tests/Testing/driver.cmake b/Tests/Testing/driver.cmake new file mode 100644 index 0000000..4a93acc --- /dev/null +++ b/Tests/Testing/driver.cmake @@ -0,0 +1,40 @@ +# Print values for human reference. +foreach(v + configuration + perconfig_file_dir + perconfig_file_name + perconfig_file + pcStatic_file + pcStatic_linker_file + pcShared_file + pcShared_linker_file + pcShared_soname_file + ) + message("${v}=${${v}}") +endforeach() + +# Verify that file names match as expected. +set(pc_file_components ${perconfig_file_dir}/${perconfig_file_name}) +if(NOT "${pc_file_components}" STREQUAL "${perconfig_file}") + message(SEND_ERROR + "File components ${pc_file_components} do not match ${perconfig_file}") +endif() +if(NOT "${pcStatic_file}" STREQUAL "${pcStatic_linker_file}") + message(SEND_ERROR + "pcStatic_file does not match pcStatic_linker_file:\n" + " ${pcStatic_file}\n" + " ${pcStatic_linker_file}\n" + ) +endif() + +# Verify that the implementation files are named correctly. +foreach(lib pcStatic pcShared) + file(STRINGS "${${lib}_file}" info LIMIT_COUNT 1 REGEX "INFO:[^[]*\\[") + if(NOT "${info}" MATCHES ".*INFO:symbol\\[${lib}\\].*") + message(SEND_ERROR "No INFO:symbol[${lib}] found in:\n ${${lib}_file}") + endif() +endforeach() +execute_process(COMMAND ${perconfig_file} RESULT_VARIABLE result) +if(result) + message(SEND_ERROR "Error running:\n ${perconfig_file}\n(${result})") +endif() |