summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml15
-rw-r--r--Modules/GoogleTestAddTests.cmake13
-rw-r--r--Source/CMakeVersion.cmake2
-rw-r--r--Source/cmGlobalVisualStudio10Generator.cxx41
-rw-r--r--Source/cmVisualStudio10TargetGenerator.cxx11
-rw-r--r--Source/cmVisualStudioSlnData.cxx48
-rw-r--r--Source/cmVisualStudioSlnData.h40
-rw-r--r--Source/cmVisualStudioSlnParser.cxx48
-rw-r--r--Tests/CMakeLists.txt245
-rw-r--r--Tests/ExternalProject/CMakeLists.txt135
-rw-r--r--Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change-typed-stdout.txt12
-rw-r--r--Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt20
-rw-r--r--Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt20
-rw-r--r--Tests/RunCMake/GoogleTest/GoogleTest-test4-stdout.txt20
-rw-r--r--Tests/RunCMake/GoogleTest/fake_gtest.cpp8
15 files changed, 396 insertions, 282 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bb2e49f..c811092 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -921,6 +921,21 @@ t:windows-clang13.0-gnu-ninja:
CMAKE_CI_BUILD_NAME: windows_clang13.0_gnu_ninja
CMAKE_CI_JOB_NIGHTLY: "true"
+t:windows-clang13.0-gnu-nmake:
+ extends:
+ - .windows_clang_nmake
+ - .cmake_test_windows_clang
+ - .windows_tags_concurrent
+ - .cmake_junit_artifacts
+ - .run_dependent
+ dependencies:
+ - t:windows-vs2022-x64-ninja
+ needs:
+ - t:windows-vs2022-x64-ninja
+ variables:
+ CMAKE_CI_BUILD_NAME: windows_clang13.0_gnu_nmake
+ CMAKE_CI_JOB_NIGHTLY: "true"
+
t:windows-msvc-v71-nmake:
extends:
- .windows_msvc_v71_nmake
diff --git a/Modules/GoogleTestAddTests.cmake b/Modules/GoogleTestAddTests.cmake
index a10b5d0..cef2e8a 100644
--- a/Modules/GoogleTestAddTests.cmake
+++ b/Modules/GoogleTestAddTests.cmake
@@ -135,10 +135,17 @@ function(gtest_discover_tests_impl)
if(NOT line MATCHES "^ ")
# Module; remove trailing '.' to get just the name...
string(REGEX REPLACE "\\.( *#.*)?$" "" suite "${line}")
- if(line MATCHES "#" AND NOT _NO_PRETTY_TYPES)
- string(REGEX REPLACE "/[0-9]\\.+ +#.*= +" "/" pretty_suite "${line}")
+ if(line MATCHES "#")
+ string(REGEX REPLACE "/.*" "" pretty_suite "${line}")
+ if(NOT _NO_PRETTY_TYPES)
+ string(REGEX REPLACE ".*/[0-9]+[ .#]+TypeParam = (.*)" "\\1" type_parameter "${line}")
+ else()
+ string(REGEX REPLACE ".*/([0-9]+)[ .#]+TypeParam = .*" "\\1" type_parameter "${line}")
+ endif()
+ set(test_name_template "@prefix@@pretty_suite@.@pretty_test@<@type_parameter@>@suffix@")
else()
set(pretty_suite "${suite}")
+ set(test_name_template "@prefix@@pretty_suite@.@pretty_test@@suffix@")
endif()
string(REGEX REPLACE "^DISABLED_" "" pretty_suite "${pretty_suite}")
else()
@@ -156,7 +163,7 @@ function(gtest_discover_tests_impl)
unset(TEST_XML_OUTPUT_PARAM)
endif()
- set(testname "${prefix}${pretty_suite}.${pretty_test}${suffix}")
+ string(CONFIGURE "${test_name_template}" testname)
# sanitize test name for further processing downstream
# unescape []
if(open_sb)
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index bd32d16..4c6e831 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,7 +1,7 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 23)
-set(CMake_VERSION_PATCH 20220207)
+set(CMake_VERSION_PATCH 20220209)
#set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx
index a52c831..a96f6f0 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -1134,7 +1134,7 @@ cmGlobalVisualStudio10Generator::GenerateBuildCommand(
slnFile += ".sln";
cmVisualStudioSlnParser parser;
if (parser.ParseFile(slnFile, slnData,
- cmVisualStudioSlnParser::DataGroupProjects)) {
+ cmVisualStudioSlnParser::DataGroupAll)) {
std::vector<cmSlnProjectEntry> slnProjects = slnData.GetProjects();
for (cmSlnProjectEntry const& project : slnProjects) {
if (useDevEnv) {
@@ -1170,15 +1170,17 @@ cmGlobalVisualStudio10Generator::GenerateBuildCommand(
GeneratedMakeCommand makeCommand;
makeCommand.RequiresOutputForward = requiresOutputForward;
makeCommand.Add(makeProgramSelected);
+ cm::optional<cmSlnProjectEntry> proj = cm::nullopt;
if (tname == "clean") {
- makeCommand.Add(std::string(projectName) + ".sln");
+ makeCommand.Add(cmStrCat(projectName, ".sln"));
makeCommand.Add("/t:Clean");
} else {
std::string targetProject = cmStrCat(tname, ".vcxproj");
+ proj = slnData.GetProjectByName(tname);
if (targetProject.find('/') == std::string::npos) {
// it might be in a subdir
- if (cmSlnProjectEntry const* proj = slnData.GetProjectByName(tname)) {
+ if (proj) {
targetProject = proj->GetRelativePath();
cmSystemTools::ConvertToUnixSlashes(targetProject);
}
@@ -1243,22 +1245,33 @@ cmGlobalVisualStudio10Generator::GenerateBuildCommand(
}
}
- std::string configArg = "/p:Configuration=";
- if (!config.empty()) {
- configArg += config;
- } else {
- configArg += "Debug";
+ std::string plainConfig = config;
+ if (config.empty()) {
+ plainConfig = "Debug";
}
- makeCommand.Add(configArg);
- makeCommand.Add(std::string("/p:Platform=") + this->GetPlatformName());
- makeCommand.Add(std::string("/p:VisualStudioVersion=") +
- this->GetIDEVersion());
+
+ std::string platform = GetPlatformName();
+ if (proj) {
+ std::string extension =
+ cmSystemTools::GetFilenameLastExtension(proj->GetRelativePath());
+ extension = cmSystemTools::LowerCase(extension);
+ if (extension.compare(".csproj") == 0) {
+ // Use correct platform name
+ platform =
+ slnData.GetConfigurationTarget(tname, plainConfig, platform);
+ }
+ }
+
+ makeCommand.Add(cmStrCat("/p:Configuration=", plainConfig));
+ makeCommand.Add(cmStrCat("/p:Platform=", platform));
+ makeCommand.Add(
+ cmStrCat("/p:VisualStudioVersion=", this->GetIDEVersion()));
if (jobs != cmake::NO_BUILD_PARALLEL_LEVEL) {
if (jobs == cmake::DEFAULT_BUILD_PARALLEL_LEVEL) {
makeCommand.Add("/m");
} else {
- makeCommand.Add(std::string("/m:") + std::to_string(jobs));
+ makeCommand.Add(cmStrCat("/m:", std::to_string(jobs)));
}
// Having msbuild.exe and cl.exe using multiple jobs is discouraged
makeCommand.Add("/p:CL_MPCount=1");
@@ -1266,7 +1279,7 @@ cmGlobalVisualStudio10Generator::GenerateBuildCommand(
// Respect the verbosity: 'n' normal will show build commands
// 'm' minimal only the build step's title
- makeCommand.Add(std::string("/v:") + ((verbose) ? "n" : "m"));
+ makeCommand.Add(cmStrCat("/v:", ((verbose) ? "n" : "m")));
makeCommand.Add(makeOptions.begin(), makeOptions.end());
makeCommands.emplace_back(std::move(makeCommand));
}
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 7b197fa..8ffb664 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -926,6 +926,17 @@ void cmVisualStudio10TargetGenerator::WriteSdkStyleProjectFile(
e1.Element("OutputType", outputType);
}
+ for (const std::string& config : this->Configurations) {
+ Elem e1(e0, "PropertyGroup");
+ e1.Attribute("Condition", "'$(Configuration)' == '" + config + "'");
+ e1.SetHasElements();
+ this->WriteEvents(e1, config);
+
+ std::string outDir = this->GeneratorTarget->GetDirectory(config) + "/";
+ ConvertToWindowsSlash(outDir);
+ e1.Element("OutputPath", outDir);
+ }
+
this->WriteDotNetDocumentationFile(e0);
this->WriteAllSources(e0);
this->WriteDotNetReferences(e0);
diff --git a/Source/cmVisualStudioSlnData.cxx b/Source/cmVisualStudioSlnData.cxx
index 8d4b658..2a6dfc4 100644
--- a/Source/cmVisualStudioSlnData.cxx
+++ b/Source/cmVisualStudioSlnData.cxx
@@ -5,24 +5,39 @@
#include <cstddef>
#include <utility>
-const cmSlnProjectEntry* cmSlnData::GetProjectByGUID(
+#include "cmSystemTools.h"
+
+void cmSlnProjectEntry::AddProjectConfiguration(
+ const std::string& solutionConfiguration,
+ const std::string& projectConfiguration)
+{
+ projectConfigurationMap[solutionConfiguration] = projectConfiguration;
+}
+
+std::string cmSlnProjectEntry::GetProjectConfiguration(
+ const std::string& solutionConfiguration)
+{
+ return projectConfigurationMap[solutionConfiguration];
+}
+
+const cm::optional<cmSlnProjectEntry> cmSlnData::GetProjectByGUID(
const std::string& projectGUID) const
{
ProjectStorage::const_iterator it(ProjectsByGUID.find(projectGUID));
if (it != ProjectsByGUID.end())
- return &it->second;
+ return it->second;
else
- return NULL;
+ return cm::nullopt;
}
-const cmSlnProjectEntry* cmSlnData::GetProjectByName(
+const cm::optional<cmSlnProjectEntry> cmSlnData::GetProjectByName(
const std::string& projectName) const
{
ProjectStringIndex::const_iterator it(ProjectNameIndex.find(projectName));
if (it != ProjectNameIndex.end())
- return &it->second->second;
+ return it->second->second;
else
- return NULL;
+ return cm::nullopt;
}
std::vector<cmSlnProjectEntry> cmSlnData::GetProjects() const
@@ -50,3 +65,24 @@ cmSlnProjectEntry* cmSlnData::AddProject(
ProjectNameIndex[projectName] = it;
return &it->second;
}
+
+std::string cmSlnData::GetConfigurationTarget(
+ const std::string& projectName, const std::string& solutionConfiguration,
+ const std::string& platformName)
+{
+ std::string solutionTarget = solutionConfiguration + "|" + platformName;
+ cm::optional<cmSlnProjectEntry> project = GetProjectByName(projectName);
+ if (!project)
+ return platformName;
+
+ std::string projectTarget = project->GetProjectConfiguration(solutionTarget);
+ if (projectTarget.empty())
+ return platformName;
+
+ std::vector<std::string> targetElements =
+ cmSystemTools::SplitString(projectTarget, '|');
+ if (targetElements.size() != 2)
+ return platformName;
+
+ return targetElements[1];
+}
diff --git a/Source/cmVisualStudioSlnData.h b/Source/cmVisualStudioSlnData.h
index b217bd8..100dd9b 100644
--- a/Source/cmVisualStudioSlnData.h
+++ b/Source/cmVisualStudioSlnData.h
@@ -8,6 +8,8 @@
#include <string>
#include <vector>
+#include <cm/optional>
+
class cmSlnProjectEntry
{
public:
@@ -24,17 +26,40 @@ public:
std::string GetName() const { return Name; }
std::string GetRelativePath() const { return RelativePath; }
+ void AddProjectConfiguration(const std::string& solutionConfiguration,
+ const std::string& projectConfiguration);
+
+ std::string GetProjectConfiguration(
+ const std::string& solutionConfiguration);
+
private:
std::string Guid, Name, RelativePath;
+ std::map<std::string, std::string> projectConfigurationMap;
};
class cmSlnData
{
public:
- const cmSlnProjectEntry* GetProjectByGUID(
+ std::string GetVisualStudioVersion() const { return visualStudioVersion; }
+ void SetVisualStudioVersion(const std::string& version)
+ {
+ visualStudioVersion = version;
+ }
+
+ std::string GetMinimumVisualStudioVersion() const
+ {
+ return minimumVisualStudioVersion;
+ }
+
+ void SetMinimumVisualStudioVersion(const std::string& version)
+ {
+ minimumVisualStudioVersion = version;
+ }
+
+ const cm::optional<cmSlnProjectEntry> GetProjectByGUID(
const std::string& projectGUID) const;
- const cmSlnProjectEntry* GetProjectByName(
+ const cm::optional<cmSlnProjectEntry> GetProjectByName(
const std::string& projectName) const;
std::vector<cmSlnProjectEntry> GetProjects() const;
@@ -43,9 +68,20 @@ public:
const std::string& projectName,
const std::string& projectRelativePath);
+ void AddConfiguration(const std::string& configuration)
+ {
+ solutionConfigurations.push_back(configuration);
+ }
+
+ std::string GetConfigurationTarget(const std::string& projectName,
+ const std::string& solutionConfiguration,
+ const std::string& platformName);
+
private:
+ std::string visualStudioVersion, minimumVisualStudioVersion;
using ProjectStorage = std::map<std::string, cmSlnProjectEntry>;
ProjectStorage ProjectsByGUID;
using ProjectStringIndex = std::map<std::string, ProjectStorage::iterator>;
ProjectStringIndex ProjectNameIndex;
+ std::vector<std::string> solutionConfigurations;
};
diff --git a/Source/cmVisualStudioSlnParser.cxx b/Source/cmVisualStudioSlnParser.cxx
index d900a95..feab895 100644
--- a/Source/cmVisualStudioSlnParser.cxx
+++ b/Source/cmVisualStudioSlnParser.cxx
@@ -11,6 +11,7 @@
#include "cmsys/FStream.hxx"
#include "cmStringAlgorithms.h"
+#include "cmSystemTools.h"
#include "cmVisualStudioSlnData.h"
namespace {
@@ -219,9 +220,14 @@ bool cmVisualStudioSlnParser::State::Process(
this->Stack.push(FileStateProject);
} else
this->IgnoreUntilTag("EndProject");
- } else if (line.GetTag().compare("Global") == 0)
+ } else if (line.GetTag().compare("Global") == 0) {
+
this->Stack.push(FileStateGlobal);
- else {
+ } else if (line.GetTag().compare("VisualStudioVersion") == 0) {
+ output.SetVisualStudioVersion(line.GetValue(0));
+ } else if (line.GetTag().compare("MinimumVisualStudioVersion") == 0) {
+ output.SetMinimumVisualStudioVersion(line.GetValue(0));
+ } else {
result.SetError(ResultErrorInputStructure, this->GetCurrentLine());
return false;
}
@@ -289,10 +295,9 @@ bool cmVisualStudioSlnParser::State::Process(
case FileStateSolutionConfigurations:
if (line.GetTag().compare("EndGlobalSection") == 0)
this->Stack.pop();
- else if (line.IsKeyValuePair())
- // implement configuration storing here, once needed
- ;
- else {
+ else if (line.IsKeyValuePair()) {
+ output.AddConfiguration(line.GetValue(0));
+ } else {
result.SetError(ResultErrorInputStructure, this->GetCurrentLine());
return false;
}
@@ -300,10 +305,30 @@ bool cmVisualStudioSlnParser::State::Process(
case FileStateProjectConfigurations:
if (line.GetTag().compare("EndGlobalSection") == 0)
this->Stack.pop();
- else if (line.IsKeyValuePair())
- // implement configuration storing here, once needed
- ;
- else {
+ else if (line.IsKeyValuePair()) {
+ std::vector<std::string> tagElements =
+ cmSystemTools::SplitString(line.GetTag(), '.');
+ if (tagElements.size() != 3 && tagElements.size() != 4) {
+ result.SetError(ResultErrorInputStructure, this->GetCurrentLine());
+ return false;
+ }
+
+ std::string guid = tagElements[0];
+ std::string solutionConfiguration = tagElements[1];
+ std::string activeBuild = tagElements[2];
+ cm::optional<cmSlnProjectEntry> projectEntry =
+ output.GetProjectByGUID(guid);
+
+ if (!projectEntry) {
+ result.SetError(ResultErrorInputStructure, this->GetCurrentLine());
+ return false;
+ }
+
+ if (activeBuild.compare("ActiveCfg") == 0) {
+ projectEntry->AddProjectConfiguration(solutionConfiguration,
+ line.GetValue(0));
+ }
+ } else {
result.SetError(ResultErrorInputStructure, this->GetCurrentLine());
return false;
}
@@ -454,8 +479,7 @@ bool cmVisualStudioSlnParser::GetParseHadBOM() const
bool cmVisualStudioSlnParser::IsDataGroupSetSupported(
DataGroupSet dataGroups) const
{
- return (dataGroups & DataGroupProjects) == dataGroups;
- // only supporting DataGroupProjects for now
+ return (dataGroups & DataGroupProjects) != 0;
}
bool cmVisualStudioSlnParser::ParseImpl(std::istream& input, cmSlnData& output,
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index fa6cd96..8ebe5ed 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -294,26 +294,6 @@ if(BUILD_TESTING)
mark_as_advanced(CTEST_TEST_CTEST)
endif ()
- # Should tests that use CVS be run?
- #
- set(do_cvs_tests 0)
-
- if(EXISTS ${CMAKE_ROOT}/Modules/FindCVS.cmake)
- find_package(CVS QUIET)
- else()
- find_program(CVS_EXECUTABLE NAMES cvs)
- endif()
-
- if(CVS_EXECUTABLE)
- set(do_cvs_tests 1)
- endif()
-
- if(do_cvs_tests AND NOT UNIX)
- if("${CVS_EXECUTABLE}" MATCHES "cygwin")
- set(do_cvs_tests 0)
- endif()
- endif()
-
# Should CPack tests be run? By default, yes, but...
#
# Disable packaging test on Apple 10.3 and below. PackageMaker starts
@@ -1574,6 +1554,12 @@ if(BUILD_TESTING)
ADD_TEST_MACRO(FindMatlab.targets_checks ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>)
endif()
+ set(ExternalProject_BUILD_OPTIONS "")
+ foreach(vcs CVS SVN GIT HG)
+ if(DEFINED CMake_TEST_ExternalProject_${vcs})
+ list(APPEND ExternalProject_BUILD_OPTIONS -DEP_TEST_${vcs}=${CMake_TEST_ExternalProject_${vcs}})
+ endif()
+ endforeach()
add_test(ExternalProject ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/ExternalProject"
@@ -1582,6 +1568,7 @@ if(BUILD_TESTING)
--build-project ExternalProjectTest
--build-exe-dir "${CMake_BINARY_DIR}/Tests/ExternalProject"
--force-new-ctest-process
+ --build-options ${ExternalProject_BUILD_OPTIONS}
--test-command ${CMAKE_CTEST_COMMAND} -V
)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ExternalProject")
@@ -2562,9 +2549,8 @@ if(BUILD_TESTING)
# -S "${CMake_BINARY_DIR}/Tests/CTestScriptMode/CTestTestScriptMode.cmake"
# )
- set(CTEST_TEST_UPDATE 1)
- if(CTEST_TEST_UPDATE)
- # Test CTest Update with Subversion
+ # Test CTest Update with Subversion
+ if(NOT DEFINED CMake_TEST_CTestUpdate_SVN OR CMake_TEST_CTestUpdate_SVN)
find_package(Subversion QUIET)
if(Subversion_FOUND)
get_filename_component(_Subversion_BIN_DIR
@@ -2577,129 +2563,134 @@ if(BUILD_TESTING)
set(Subversion_FOUND FALSE)
endif()
endif()
- if(Subversion_FOUND)
- set(CTestUpdateSVN_DIR "CTest UpdateSVN")
- configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateSVN.cmake.in"
- "${CMake_BINARY_DIR}/Tests/CTestUpdateSVN.cmake" @ONLY)
- add_test(CTest.UpdateSVN ${CMAKE_CMAKE_COMMAND}
- -P "${CMake_BINARY_DIR}/Tests/CTestUpdateSVN.cmake"
- )
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateSVN_DIR}")
+ endif()
+ if(NOT DEFINED CMake_TEST_CTestUpdate_SVN AND Subversion_FOUND)
+ set(CMake_TEST_CTestUpdate_SVN 1)
+ endif()
+ if(CMake_TEST_CTestUpdate_SVN)
+ if(NOT Subversion_FOUND)
+ message(FATAL_ERROR "CMake_TEST_CTestUpdate_SVN enabled but Subversion is not found.")
endif()
+ set(CTestUpdateSVN_DIR "CTest UpdateSVN")
+ configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateSVN.cmake.in"
+ "${CMake_BINARY_DIR}/Tests/CTestUpdateSVN.cmake" @ONLY)
+ add_test(CTest.UpdateSVN ${CMAKE_CMAKE_COMMAND}
+ -P "${CMake_BINARY_DIR}/Tests/CTestUpdateSVN.cmake"
+ )
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateSVN_DIR}")
+ endif()
- # Test CTest Update with CVS
- if(EXISTS ${CMAKE_ROOT}/Modules/FindCVS.cmake)
- find_package(CVS QUIET)
- else()
- find_program(CVS_EXECUTABLE NAMES cvs)
- set(CVS_FOUND ${CVS_EXECUTABLE})
- endif()
- set(CTEST_TEST_UPDATE_CVS ${CVS_FOUND})
- if(CTEST_TEST_UPDATE_CVS AND NOT UNIX)
- if("${CVS_EXECUTABLE}" MATCHES "cygwin")
- message(STATUS "No CTest.UpdateCVS test with cygwin cvs.exe outside cygwin!")
- set(CTEST_TEST_UPDATE_CVS 0)
- endif()
- endif()
- if(CTEST_TEST_UPDATE_CVS)
- set(CTestUpdateCVS_DIR "CTest UpdateCVS")
- configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateCVS.cmake.in"
- "${CMake_BINARY_DIR}/Tests/CTestUpdateCVS.cmake" @ONLY)
- add_test(CTest.UpdateCVS ${CMAKE_CMAKE_COMMAND}
- -P "${CMake_BINARY_DIR}/Tests/CTestUpdateCVS.cmake"
- )
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateCVS_DIR}")
+ # Test CTest Update with CVS
+ if(NOT DEFINED CMake_TEST_CTestUpdate_CVS OR CMake_TEST_CTestUpdate_CVS)
+ find_program(CVS_EXECUTABLE NAMES cvs)
+ mark_as_advanced(CVS_EXECUTABLE)
+ endif()
+ if(NOT DEFINED CMake_TEST_CTestUpdate_CVS AND CVS_EXECUTABLE
+ AND (UNIX OR NOT "${CVS_EXECUTABLE}" MATCHES "cygwin"))
+ set(CMake_TEST_CTestUpdate_CVS 1)
+ endif()
+ if(CMake_TEST_CTestUpdate_CVS)
+ if(NOT CVS_EXECUTABLE)
+ message(FATAL_ERROR "CMake_TEST_CTestUpdate_CVS enabled but CVS_EXECUTABLE is not found.")
endif()
+ set(CTestUpdateCVS_DIR "CTest UpdateCVS")
+ configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateCVS.cmake.in"
+ "${CMake_BINARY_DIR}/Tests/CTestUpdateCVS.cmake" @ONLY)
+ add_test(CTest.UpdateCVS ${CMAKE_CMAKE_COMMAND}
+ -P "${CMake_BINARY_DIR}/Tests/CTestUpdateCVS.cmake"
+ )
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateCVS_DIR}")
+ endif()
- # Test CTest Update with BZR
+ # Test CTest Update with BZR
+ if(CMake_TEST_CTestUpdate_BZR)
find_program(BZR_EXECUTABLE NAMES bzr)
mark_as_advanced(BZR_EXECUTABLE)
- set(CTEST_TEST_UPDATE_BZR 0)
- if(BZR_EXECUTABLE)
- if(NOT "${BZR_EXECUTABLE}" MATCHES "cygwin" OR UNIX)
- set(CTEST_TEST_UPDATE_BZR 1)
- endif()
- endif()
- if(CTEST_TEST_UPDATE_BZR)
- # Check if xmloutput plugin is there
- execute_process(COMMAND ${BZR_EXECUTABLE} xmlplugins RESULT_VARIABLE xmlplugres
- OUTPUT_QUIET ERROR_QUIET)
- if( NOT ${xmlplugres} )
- set(CTestUpdateBZR_DIR "CTest UpdateBZR")
- configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateBZR.cmake.in"
- "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR.cmake" @ONLY)
- add_test(CTest.UpdateBZR ${CMAKE_CMAKE_COMMAND}
- -P "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR.cmake"
- )
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateBZR_DIR}")
- set(CTestUpdateBZR_DIR "CTest UpdateBZR_CLocale")
- configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateBZR.cmake.in"
- "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR_CLocale.cmake" @ONLY)
- add_test(CTest.UpdateBZR.CLocale ${CMAKE_CMAKE_COMMAND}
- -P "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR_CLocale.cmake"
- )
- set_tests_properties(CTest.UpdateBZR.CLocale PROPERTIES ENVIRONMENT LC_ALL=C)
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateBZR_DIR}")
- endif()
- endif()
+ if(NOT BZR_EXECUTABLE)
+ message(FATAL_ERROR "CMake_TEST_CTestUpdate_BZR enabled but BZR_EXECUTABLE is not found.")
+ endif()
+ set(CTestUpdateBZR_DIR "CTest UpdateBZR")
+ configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateBZR.cmake.in"
+ "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR.cmake" @ONLY)
+ add_test(CTest.UpdateBZR ${CMAKE_CMAKE_COMMAND}
+ -P "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR.cmake"
+ )
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateBZR_DIR}")
+ set(CTestUpdateBZR_DIR "CTest UpdateBZR_CLocale")
+ configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateBZR.cmake.in"
+ "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR_CLocale.cmake" @ONLY)
+ add_test(CTest.UpdateBZR.CLocale ${CMAKE_CMAKE_COMMAND}
+ -P "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR_CLocale.cmake"
+ )
+ set_tests_properties(CTest.UpdateBZR.CLocale PROPERTIES ENVIRONMENT LC_ALL=C)
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateBZR_DIR}")
+ endif()
- # Test CTest Update with GIT
+ # Test CTest Update with GIT
+ if(NOT DEFINED CMake_TEST_CTestUpdate_GIT OR CMake_TEST_CTestUpdate_GIT)
find_program(GIT_EXECUTABLE NAMES git)
mark_as_advanced(GIT_EXECUTABLE)
- set(CTEST_TEST_UPDATE_GIT 0)
- if(GIT_EXECUTABLE)
- if(NOT "${GIT_EXECUTABLE}" MATCHES "cygwin" OR UNIX)
- set(CTEST_TEST_UPDATE_GIT 1)
- endif()
- endif()
- if(CTEST_TEST_UPDATE_GIT)
- set(CTestUpdateGIT_DIR "CTest UpdateGIT")
- configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateGIT.cmake.in"
- "${CMake_BINARY_DIR}/Tests/CTestUpdateGIT.cmake" @ONLY)
- add_test(CTest.UpdateGIT ${CMAKE_CMAKE_COMMAND}
- -P "${CMake_BINARY_DIR}/Tests/CTestUpdateGIT.cmake"
- )
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateGIT_DIR}")
+ endif()
+ if(NOT DEFINED CMake_TEST_CTestUpdate_GIT AND GIT_EXECUTABLE
+ AND (UNIX OR NOT "${GIT_EXECUTABLE}" MATCHES "cygwin"))
+ set(CMake_TEST_CTestUpdate_GIT 1)
+ endif()
+ if(CMake_TEST_CTestUpdate_GIT)
+ if(NOT GIT_EXECUTABLE)
+ message(FATAL_ERROR "CMake_TEST_CTestUpdate_GIT enabled but GIT_EXECUTABLE is not found.")
endif()
+ set(CTestUpdateGIT_DIR "CTest UpdateGIT")
+ configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateGIT.cmake.in"
+ "${CMake_BINARY_DIR}/Tests/CTestUpdateGIT.cmake" @ONLY)
+ add_test(CTest.UpdateGIT ${CMAKE_CMAKE_COMMAND}
+ -P "${CMake_BINARY_DIR}/Tests/CTestUpdateGIT.cmake"
+ )
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateGIT_DIR}")
+ endif()
- # Test CTest Update with HG
+ # Test CTest Update with HG
+ if(NOT DEFINED CMake_TEST_CTestUpdate_HG OR CMake_TEST_CTestUpdate_HG)
find_program(HG_EXECUTABLE NAMES hg)
mark_as_advanced(HG_EXECUTABLE)
- set(CTEST_TEST_UPDATE_HG 0)
- if(HG_EXECUTABLE)
- if(NOT "${HG_EXECUTABLE}" MATCHES "cygwin" OR UNIX)
- set(CTEST_TEST_UPDATE_HG 1)
- endif()
- endif()
- if(CTEST_TEST_UPDATE_HG)
- set(CTestUpdateHG_DIR "CTest UpdateHG")
- configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateHG.cmake.in"
- "${CMake_BINARY_DIR}/Tests/CTestUpdateHG.cmake" @ONLY)
- add_test(CTest.UpdateHG ${CMAKE_CMAKE_COMMAND}
- -P "${CMake_BINARY_DIR}/Tests/CTestUpdateHG.cmake"
- )
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateHG_DIR}")
+ endif()
+ if(NOT DEFINED CMake_TEST_CTestUpdate_HG AND HG_EXECUTABLE
+ AND (UNIX OR NOT "${HG_EXECUTABLE}" MATCHES "cygwin"))
+ set(CMake_TEST_CTestUpdate_HG 1)
+ endif()
+ if(CMake_TEST_CTestUpdate_HG)
+ if(NOT HG_EXECUTABLE)
+ message(FATAL_ERROR "CMake_TEST_CTestUpdate_HG enabled but HG_EXECUTABLE is not found.")
endif()
+ set(CTestUpdateHG_DIR "CTest UpdateHG")
+ configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateHG.cmake.in"
+ "${CMake_BINARY_DIR}/Tests/CTestUpdateHG.cmake" @ONLY)
+ add_test(CTest.UpdateHG ${CMAKE_CMAKE_COMMAND}
+ -P "${CMake_BINARY_DIR}/Tests/CTestUpdateHG.cmake"
+ )
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateHG_DIR}")
+ endif()
- # Test CTest Update with P4
+ # Test CTest Update with P4
+ if(NOT DEFINED CMake_TEST_CTestUpdate_P4 OR CMake_TEST_CTestUpdate_P4)
find_program(P4_EXECUTABLE NAMES p4)
find_program(P4D_EXECUTABLE NAMES p4d)
mark_as_advanced(P4_EXECUTABLE P4D_EXECUTABLE)
- set(CTEST_TEST_UPDATE_P4 0)
- if(P4_EXECUTABLE AND P4D_EXECUTABLE)
- if(NOT "${P4_EXECUTABLE};${P4D_EXECUTABLE}" MATCHES "cygwin" OR UNIX)
- set(CTEST_TEST_UPDATE_P4 1)
- endif()
- endif()
- if(CTEST_TEST_UPDATE_P4)
- set(CTestUpdateP4_DIR "CTest UpdateP4")
- configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateP4.cmake.in"
- "${CMake_BINARY_DIR}/Tests/CTestUpdateP4.cmake" @ONLY)
- add_test(CTest.UpdateP4 ${CMAKE_CMAKE_COMMAND}
- -P "${CMake_BINARY_DIR}/Tests/CTestUpdateP4.cmake"
- )
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateP4_DIR}")
+ endif()
+ if(NOT DEFINED CMake_TEST_CTestUpdate_P4 AND P4_EXECUTABLE AND P4D_EXECUTABLE
+ AND (UNIX OR NOT "${P4_EXECUTABLE};${P4D_EXECUTABLE}" MATCHES "cygwin"))
+ set(CMake_TEST_CTestUpdate_P4 1)
+ endif()
+ if(CMake_TEST_CTestUpdate_P4)
+ if(NOT P4_EXECUTABLE OR NOT P4D_EXECUTABLE)
+ message(FATAL_ERROR "CMake_TEST_CTestUpdate_HG enabled but P4_EXECUTABLE and P4D_EXECUTABLE are not both not found.")
endif()
+ set(CTestUpdateP4_DIR "CTest UpdateP4")
+ configure_file("${CMake_SOURCE_DIR}/Tests/CTestUpdateP4.cmake.in"
+ "${CMake_BINARY_DIR}/Tests/CTestUpdateP4.cmake" @ONLY)
+ add_test(CTest.UpdateP4 ${CMAKE_CMAKE_COMMAND}
+ -P "${CMake_BINARY_DIR}/Tests/CTestUpdateP4.cmake"
+ )
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateP4_DIR}")
endif()
configure_file(
diff --git a/Tests/ExternalProject/CMakeLists.txt b/Tests/ExternalProject/CMakeLists.txt
index 8a85045..e4c6c66 100644
--- a/Tests/ExternalProject/CMakeLists.txt
+++ b/Tests/ExternalProject/CMakeLists.txt
@@ -8,10 +8,50 @@ include(ExternalProject)
# Test ExternalProject, especially with checkouts from VCS
-find_package(CVS)
-find_package(Subversion)
-find_package(Git)
-find_package(Hg)
+if(NOT DEFINED EP_TEST_CVS OR EP_TEST_CVS)
+ find_package(CVS)
+endif()
+if(NOT DEFINED EP_TEST_CVS AND CVS_FOUND AND (UNIX OR NOT "${CVS_EXECUTABLE}" MATCHES "cygwin"))
+ set(EP_TEST_CVS 1)
+endif()
+
+if(NOT DEFINED EP_TEST_SVN OR EP_TEST_SVN)
+ find_package(Subversion)
+ if(Subversion_FOUND AND Subversion_VERSION_SVN VERSION_LESS 1.2)
+ message(STATUS "No ExternalProject svn tests with svn client less than version 1.2")
+ set(Subversion_FOUND 0)
+ endif()
+ # Only do svn tests in cygwin/cygwin or not-cygwin/not-cygwin arrangements:
+ if(Subversion_FOUND AND CMAKE_CURRENT_BINARY_DIR MATCHES "cygdrive/" AND NOT "${Subversion_SVN_EXECUTABLE}" MATCHES "cygwin")
+ message(STATUS "No ExternalProject svn tests with non-cygwin svn client in a /cygdrive based build")
+ set(Subversion_FOUND 0)
+ endif()
+endif()
+if(NOT DEFINED EP_TEST_SVN AND Subversion_FOUND)
+ set(EP_TEST_SVN 1)
+endif()
+
+if(NOT DEFINED EP_TEST_GIT OR EP_TEST_GIT)
+ find_package(Git)
+endif()
+if(NOT DEFINED EP_TEST_GIT AND Git_FOUND)
+ message(STATUS "GIT_VERSION_STRING='${GIT_VERSION_STRING}'")
+ if(NOT "${GIT_VERSION_STRING}" VERSION_LESS 1.6.5)
+ set(EP_TEST_GIT 1)
+ endif()
+endif()
+
+if(NOT DEFINED EP_TEST_HG OR EP_TEST_HG)
+ find_package(Hg)
+endif()
+if(NOT DEFINED EP_TEST_HG AND Hg_FOUND)
+ set(EP_TEST_HG 1)
+endif()
+
+message(STATUS "EP_TEST_CVS='${EP_TEST_CVS}' CVS_EXECUTABLE='${CVS_EXECUTABLE}'")
+message(STATUS "EP_TEST_SVN='${EP_TEST_SVN}' Subversion_SVN_EXECUTABLE='${Subversion_SVN_EXECUTABLE}'")
+message(STATUS "EP_TEST_GIT='${EP_TEST_GIT}' GIT_EXECUTABLE='${GIT_EXECUTABLE}'")
+message(STATUS "EP_TEST_HG='${EP_TEST_HG}' HG_EXECUTABLE='${HG_EXECUTABLE}'")
option(ExternalProjectTest_USE_FOLDERS "Enable folder grouping in IDEs." ON)
if(ExternalProjectTest_USE_FOLDERS)
@@ -115,20 +155,7 @@ ExternalProject_Add(${proj}
# CVS-based tests:
#
-set(do_cvs_tests 0)
-
-if(CVS_EXECUTABLE)
- set(do_cvs_tests 1)
-endif()
-
-if(do_cvs_tests AND NOT UNIX)
- if("${CVS_EXECUTABLE}" MATCHES "cygwin")
- message(STATUS "No ExternalProject cvs tests with cygwin cvs.exe outside cygwin!")
- set(do_cvs_tests 0)
- endif()
-endif()
-
-if(do_cvs_tests)
+if(EP_TEST_CVS)
# Unzip/untar the CVS repository in our source folder so that other
# projects below may use it to test CVS args of ExternalProject_Add
#
@@ -207,32 +234,7 @@ endif()
# SVN-based tests:
#
-set(do_svn_tests 0)
-
-if(Subversion_SVN_EXECUTABLE)
- set(do_svn_tests 1)
-endif()
-
-# Only do svn tests with svn >= version 1.2
-#
-if(do_svn_tests)
- if(Subversion_VERSION_SVN VERSION_LESS 1.2)
- message(STATUS "No ExternalProject svn tests with svn client less than version 1.2")
- set(do_svn_tests 0)
- endif()
-endif()
-
-# Only do svn tests in cygwin/cygwin or not-cygwin/not-cygwin arrangements:
-#
-if(do_svn_tests)
- if(CMAKE_CURRENT_BINARY_DIR MATCHES "cygdrive/" AND
- NOT "${Subversion_SVN_EXECUTABLE}" MATCHES "cygwin")
- message(STATUS "No ExternalProject svn tests with non-cygwin svn client in a /cygdrive based build")
- set(do_svn_tests 0)
- endif()
-endif()
-
-if(do_svn_tests)
+if(EP_TEST_SVN)
# Unzip/untar the SVN repository in our source folder so that other
# projects below may use it to test SVN args of ExternalProject_Add
#
@@ -292,22 +294,7 @@ if(do_svn_tests)
set_property(TARGET ${proj} PROPERTY FOLDER "SVN")
endif()
-
-set(do_git_tests 0)
-
-if(GIT_EXECUTABLE)
- set(do_git_tests 1)
-
- message(STATUS "GIT_VERSION_STRING='${GIT_VERSION_STRING}'")
-
- if("${GIT_VERSION_STRING}" VERSION_LESS 1.6.5)
- message(STATUS "No ExternalProject git tests with git client less than version 1.6.5")
- set(do_git_tests 0)
- endif()
-endif()
-
-
-if(do_git_tests)
+if(EP_TEST_GIT)
set(local_git_repo "../../LocalRepositories/GIT")
# Unzip/untar the git repository in our source folder so that other
@@ -554,20 +541,7 @@ if(do_git_tests)
endif()
-set(do_hg_tests 0)
-
-if(HG_EXECUTABLE)
- set(do_hg_tests 1)
-endif()
-
-if(do_hg_tests AND NOT UNIX)
- if("${HG_EXECUTABLE}" MATCHES "cygwin")
- message(STATUS "No ExternalProject hg tests with cygwin hg outside cygwin!")
- set(do_hg_tests 0)
- endif()
-endif()
-
-if(do_hg_tests)
+if(EP_TEST_HG)
set(local_hg_repo "../../LocalRepositories/HG")
# Unzip/untar the hg repository in our source folder so that other
@@ -642,7 +616,7 @@ enable_testing()
#
# BuildTree tests:
#
-if(do_cvs_tests)
+if(EP_TEST_CVS)
add_test(TutorialStep1-CVS-20090626-BuildTreeTest
"${binary_base}/TutorialStep1-CVS-20090626/Tutorial" 4)
@@ -653,7 +627,7 @@ if(do_cvs_tests)
"${binary_base}/TutorialStep1-CVS-HEAD/Tutorial" 81)
endif()
-if(do_svn_tests)
+if(EP_TEST_SVN)
add_test(TutorialStep1-SVN-20090626-BuildTreeTest
"${binary_base}/TutorialStep1-SVN-20090626/Tutorial" 100)
@@ -664,7 +638,7 @@ if(do_svn_tests)
"${binary_base}/TutorialStep1-SVN-trunk/Tutorial" 98)
endif()
-if(do_git_tests)
+if(EP_TEST_GIT)
add_test(TutorialStep1-GIT-byhash
${CMAKE_COMMAND} -P "${binary_base}/TutorialStep1-GIT-byhash/example.cmake")
@@ -686,13 +660,6 @@ if(do_git_tests)
endif()
endif()
-
-message(STATUS "do_cvs_tests='${do_cvs_tests}'")
-message(STATUS "do_svn_tests='${do_svn_tests}'")
-message(STATUS "do_git_tests='${do_git_tests}' GIT_EXECUTABLE='${GIT_EXECUTABLE}'")
-message(STATUS "do_hg_tests='${do_hg_tests}' HG_EXECUTABLE='${HG_EXECUTABLE}'")
-
-
# Test if log works when the first arguments of *_COMMAND is "COMMAND".
set(proj ExternalProject-no-log)
set(download_cmd "")
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change-typed-stdout.txt b/Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change-typed-stdout.txt
index fe8f273..c4545ca 100644
--- a/Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change-typed-stdout.txt
+++ b/Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change-typed-stdout.txt
@@ -1,7 +1,9 @@
Test project .*/Tests/RunCMake/GoogleTest/GoogleTest-discovery-arg-change
- Test #1: typed/short\.case
- Test #2: typed/float\.case
- Test #3: ns\.typed/short\.case
- Test #4: ns\.typed/float\.case
+ Test #[0-9]+: typed\.case<short>
+ Test #[0-9]+: typed\.case<float>
+ Test #[0-9]+: typed\.case<char>
+ Test #[0-9]+: ns\.typed\.case<short>
+ Test #[0-9]+: ns\.typed\.case<float>
+ Test #[0-9]+: ns\.typed\.case<char>
-Total Tests: 4
+Total Tests: [0-9]+
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt b/Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt
index 01b39c3..c462042 100644
--- a/Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt
+++ b/Tests/RunCMake/GoogleTest/GoogleTest-test1-stdout.txt
@@ -19,14 +19,18 @@ Test project .*
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:disabled\.case!1 \.+\*+Not Run \(Disabled\) +[0-9.]+ sec
*Start +[0-9]+: TEST:DISABLEDnotreally\.case!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:DISABLEDnotreally\.case!1 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:typed/short\.case!1
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/short\.case!1 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:typed/float\.case!1
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/float\.case!1 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:ns\.typed/short\.case!1
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/short\.case!1 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:ns\.typed/float\.case!1
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/float\.case!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:typed\.case<short>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<short>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:typed\.case<float>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<float>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:typed\.case<char>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<char>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.typed\.case<short>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<short>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.typed\.case<float>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<float>!1 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.typed\.case<char>!1
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<char>!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:value/test\.case/1!1
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:value/test\.case/1!1 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:value/test\.case/"foo"!1
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt b/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt
index 796e20c..8cdd1a0 100644
--- a/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt
+++ b/Tests/RunCMake/GoogleTest/GoogleTest-test2-stdout.txt
@@ -19,14 +19,18 @@ Test project .*
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:disabled\.case!2 \.+\*+Not Run \(Disabled\) +[0-9.]+ sec
*Start +[0-9]+: TEST:DISABLEDnotreally\.case!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:DISABLEDnotreally\.case!2 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:typed/short\.case!2
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/short\.case!2 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:typed/float\.case!2
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/float\.case!2 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:ns\.typed/short\.case!2
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/short\.case!2 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:ns\.typed/float\.case!2
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/float\.case!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:typed\.case<short>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<short>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:typed\.case<float>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<float>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:typed\.case<char>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<char>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.typed\.case<short>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<short>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.typed\.case<float>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<float>!2 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.typed\.case<char>!2
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<char>!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:value/test\.case/1!2
*[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:value/test\.case/1!2 \.+ +Passed +[0-9.]+ sec
*Start +[0-9]+: TEST:value/test\.case/"foo"!2
diff --git a/Tests/RunCMake/GoogleTest/GoogleTest-test4-stdout.txt b/Tests/RunCMake/GoogleTest/GoogleTest-test4-stdout.txt
index 0f7dde7..b0f70e7 100644
--- a/Tests/RunCMake/GoogleTest/GoogleTest-test4-stdout.txt
+++ b/Tests/RunCMake/GoogleTest/GoogleTest-test4-stdout.txt
@@ -1,12 +1,16 @@
Test project .*
- *Start +[0-9]+: TEST:typed/short\.case!4
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/short\.case!4 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:typed/float\.case!4
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed/float\.case!4 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:ns\.typed/short\.case!4
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/short\.case!4 \.+ +Passed +[0-9.]+ sec
- *Start +[0-9]+: TEST:ns\.typed/float\.case!4
- *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed/float\.case!4 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:typed\.case<short>!4
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<short>!4 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:typed\.case<float>!4
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<float>!4 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:typed\.case<char>!4
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:typed\.case<char>!4 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.typed\.case<short>!4
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<short>!4 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.typed\.case<float>!4
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<float>!4 \.+ +Passed +[0-9.]+ sec
+ *Start +[0-9]+: TEST:ns\.typed\.case<char>!4
+ *[0-9]+/[0-9]+ +Test +#[0-9]+: TEST:ns\.typed\.case<char>!4 \.+ +Passed +[0-9.]+ sec
100% tests passed, 0 tests failed out of [0-9]+
diff --git a/Tests/RunCMake/GoogleTest/fake_gtest.cpp b/Tests/RunCMake/GoogleTest/fake_gtest.cpp
index 183e106..e6f74aa 100644
--- a/Tests/RunCMake/GoogleTest/fake_gtest.cpp
+++ b/Tests/RunCMake/GoogleTest/fake_gtest.cpp
@@ -36,11 +36,11 @@ int main(int argc, char** argv)
if (!is_basic_only) {
const char* typed_suite_names[] = { "typed", "ns.typed" };
for (size_t i = 0; i < ARRAY_SIZE(typed_suite_names); i++) {
- std::cout << typed_suite_names[i] << "/0. # TypeParam = short"
- << std::endl;
+ std::cout << typed_suite_names[i] << "/0. # TypeParam = short\n";
std::cout << " case" << std::endl;
- std::cout << typed_suite_names[i] << "/1. # TypeParam = float"
- << std::endl;
+ std::cout << typed_suite_names[i] << "/1. # TypeParam = float\n";
+ std::cout << " case" << std::endl;
+ std::cout << typed_suite_names[i] << "/42. # TypeParam = char\n";
std::cout << " case" << std::endl;
}
}