summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/VSSolution
diff options
context:
space:
mode:
authorTaylor Braun-Jones <taylor@braun-jones.org>2016-03-21 18:34:34 (GMT)
committerBrad King <brad.king@kitware.com>2016-03-22 16:41:30 (GMT)
commitc05ea48545f04dee8666094b0731366b64dfc9ad (patch)
tree88c0b7a47d4de7c5ac5ce4262f31ba61e09a9958 /Tests/RunCMake/VSSolution
parent78ec04613063653008f221eed644f1c2566fd900 (diff)
downloadCMake-c05ea48545f04dee8666094b0731366b64dfc9ad.zip
CMake-c05ea48545f04dee8666094b0731366b64dfc9ad.tar.gz
CMake-c05ea48545f04dee8666094b0731366b64dfc9ad.tar.bz2
VS: Improve unit test macros
Change `getFirstProject` macro to more flexible version `getProjectNames`
Diffstat (limited to 'Tests/RunCMake/VSSolution')
-rw-r--r--Tests/RunCMake/VSSolution/StartupProject-check.cmake3
-rw-r--r--Tests/RunCMake/VSSolution/StartupProjectMissing-check.cmake3
-rw-r--r--Tests/RunCMake/VSSolution/solution_parsing.cmake15
3 files changed, 12 insertions, 9 deletions
diff --git a/Tests/RunCMake/VSSolution/StartupProject-check.cmake b/Tests/RunCMake/VSSolution/StartupProject-check.cmake
index 352bbd5..f36aab2 100644
--- a/Tests/RunCMake/VSSolution/StartupProject-check.cmake
+++ b/Tests/RunCMake/VSSolution/StartupProject-check.cmake
@@ -1,4 +1,5 @@
-getFirstProject(first_project StartupProject)
+getProjectNames(projects)
+list(GET projects 0 first_project)
if(NOT first_project STREQUAL "TestStartup")
error("TestStartup is not the startup project")
endif()
diff --git a/Tests/RunCMake/VSSolution/StartupProjectMissing-check.cmake b/Tests/RunCMake/VSSolution/StartupProjectMissing-check.cmake
index 95fede7..b1017dd 100644
--- a/Tests/RunCMake/VSSolution/StartupProjectMissing-check.cmake
+++ b/Tests/RunCMake/VSSolution/StartupProjectMissing-check.cmake
@@ -1,4 +1,5 @@
-getFirstProject(first_project StartupProjectMissing)
+getProjectNames(projects)
+list(GET projects 0 first_project)
if(NOT first_project STREQUAL "ALL_BUILD")
error("ALL_BUILD is not the startup project")
endif()
diff --git a/Tests/RunCMake/VSSolution/solution_parsing.cmake b/Tests/RunCMake/VSSolution/solution_parsing.cmake
index 001b584..4e5bb59 100644
--- a/Tests/RunCMake/VSSolution/solution_parsing.cmake
+++ b/Tests/RunCMake/VSSolution/solution_parsing.cmake
@@ -50,17 +50,18 @@ macro(parseGlobalSections arg_out_pre arg_out_post testName)
endmacro()
-macro(getFirstProject arg_out_first_project testName)
- set(${arg_out_first_project} "")
- set(sln "${RunCMake_TEST_BINARY_DIR}/${testName}.sln")
+macro(getProjectNames arg_out_projects)
+ set(${arg_out_projects} "")
+ set(sln "${RunCMake_TEST_BINARY_DIR}/${test}.sln")
if(NOT EXISTS "${sln}")
error("Expected solution file ${sln} does not exist")
endif()
file(STRINGS "${sln}" project_lines REGEX "^Project\\(")
- list(GET project_lines 0 first_project)
- string(REGEX REPLACE ".* = \"" "" first_project "${first_project}")
- string(REGEX REPLACE "\", .*" "" first_project "${first_project}")
- set(${arg_out_first_project} "${first_project}")
+ foreach(project_line IN LISTS project_lines)
+ string(REGEX REPLACE ".* = \"" "" project_line "${project_line}")
+ string(REGEX REPLACE "\", .*" "" project_line "${project_line}")
+ list(APPEND ${arg_out_projects} "${project_line}")
+ endforeach()
endmacro()