summaryrefslogtreecommitdiffstats
path: root/Tests/Testing
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-12-07 22:36:24 (GMT)
committerBrad King <brad.king@kitware.com>2010-12-15 19:53:33 (GMT)
commit45e1953c4037d4492668651ae3bbfd6a4a875bc1 (patch)
tree37d90c289495eaeb53aa1d13b18dcbeb93859523 /Tests/Testing
parent4091bca4ecf4a7f9c2099a7d34e125494de60e1c (diff)
downloadCMake-45e1953c4037d4492668651ae3bbfd6a4a875bc1.zip
CMake-45e1953c4037d4492668651ae3bbfd6a4a875bc1.tar.gz
CMake-45e1953c4037d4492668651ae3bbfd6a4a875bc1.tar.bz2
Factor per-config sample targets out of 'Testing' test
Put the source files, build rules, and test scripts for these targets under Tests/PerConfig and refer to it from Tests/Testing as a subdirectory. The targets and scripts will be useful in other tests.
Diffstat (limited to 'Tests/Testing')
-rw-r--r--Tests/Testing/CMakeLists.txt34
-rw-r--r--Tests/Testing/driver.cmake40
-rw-r--r--Tests/Testing/pcShared.c5
-rw-r--r--Tests/Testing/pcShared.h16
-rw-r--r--Tests/Testing/pcStatic.c4
-rw-r--r--Tests/Testing/perconfig.c8
6 files changed, 3 insertions, 104 deletions
diff --git a/Tests/Testing/CMakeLists.txt b/Tests/Testing/CMakeLists.txt
index f857407..815b52b 100644
--- a/Tests/Testing/CMakeLists.txt
+++ b/Tests/Testing/CMakeLists.txt
@@ -53,35 +53,7 @@ ADD_TEST(testing.1 ${Testing_BINARY_DIR}/bin/testing)
#
ADD_SUBDIRECTORY(Sub/Sub2)
-# Per-config target name test.
-ADD_LIBRARY(pcStatic STATIC pcStatic.c)
-SET_PROPERTY(TARGET pcStatic PROPERTY RELEASE_POSTFIX -opt)
-SET_PROPERTY(TARGET pcStatic PROPERTY DEBUG_POSTFIX -dbg)
-ADD_LIBRARY(pcShared SHARED pcShared.c)
-SET_PROPERTY(TARGET pcShared PROPERTY RELEASE_POSTFIX -opt)
-SET_PROPERTY(TARGET pcShared PROPERTY DEBUG_POSTFIX -dbg)
-SET_PROPERTY(TARGET pcShared PROPERTY VERSION 1.2)
-SET_PROPERTY(TARGET pcShared PROPERTY SOVERSION 3)
-IF(NOT WIN32)
- SET(soname_file -DpcShared_soname_file=$<TARGET_SONAME_FILE:pcShared>)
-ENDIF()
-ADD_EXECUTABLE(perconfig perconfig.c)
-TARGET_LINK_LIBRARIES(perconfig pcStatic pcShared)
-SET_PROPERTY(TARGET perconfig PROPERTY RELEASE_POSTFIX -opt)
-SET_PROPERTY(TARGET perconfig PROPERTY DEBUG_POSTFIX -dbg)
+# Per-config target name and generator expressions.
+ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../PerConfig PerConfig)
ADD_TEST(NAME testing.perconfig COMMAND perconfig)
-
-# Test using a driver script with generator expressions.
-ADD_TEST(NAME testing.driver
- COMMAND ${CMAKE_COMMAND}
- -Dconfiguration=$<CONFIGURATION>
- -Dperconfig_file_dir=$<TARGET_FILE_DIR:perconfig>
- -Dperconfig_file_name=$<TARGET_FILE_NAME:perconfig>
- -Dperconfig_file=$<TARGET_FILE:perconfig>
- -DpcStatic_file=$<TARGET_FILE:pcStatic>
- -DpcStatic_linker_file=$<TARGET_LINKER_FILE:pcStatic>
- -DpcShared_file=$<TARGET_FILE:pcShared>
- -DpcShared_linker_file=$<TARGET_LINKER_FILE:pcShared>
- ${soname_file}
- -P ${Testing_SOURCE_DIR}/driver.cmake
- )
+ADD_TEST(NAME testing.driver COMMAND ${PerConfig_COMMAND})
diff --git a/Tests/Testing/driver.cmake b/Tests/Testing/driver.cmake
deleted file mode 100644
index 4a93acc..0000000
--- a/Tests/Testing/driver.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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()
diff --git a/Tests/Testing/pcShared.c b/Tests/Testing/pcShared.c
deleted file mode 100644
index b08fadc..0000000
--- a/Tests/Testing/pcShared.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "pcShared.h"
-const char* pcShared(void)
-{
- return "INFO:symbol[pcShared]";
-}
diff --git a/Tests/Testing/pcShared.h b/Tests/Testing/pcShared.h
deleted file mode 100644
index 59a6ef4..0000000
--- a/Tests/Testing/pcShared.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef pcShared_h
-#define pcShared_h
-
-#ifdef _WIN32
-# ifdef pcShared_EXPORTS
-# define PC_EXPORT __declspec(dllexport)
-# else
-# define PC_EXPORT __declspec(dllimport)
-# endif
-#else
-# define PC_EXPORT
-#endif
-
-PC_EXPORT const char* pcShared(void);
-
-#endif
diff --git a/Tests/Testing/pcStatic.c b/Tests/Testing/pcStatic.c
deleted file mode 100644
index 7e1bf51..0000000
--- a/Tests/Testing/pcStatic.c
+++ /dev/null
@@ -1,4 +0,0 @@
-const char* pcStatic(void)
-{
- return "INFO:symbol[pcStatic]";
-}
diff --git a/Tests/Testing/perconfig.c b/Tests/Testing/perconfig.c
deleted file mode 100644
index d942d45..0000000
--- a/Tests/Testing/perconfig.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "pcShared.h"
-extern const char* pcStatic(void);
-int main()
-{
- pcStatic();
- pcShared();
- return 0;
-}