summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/GoogleTest/timeout_test.cpp
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2018-03-14 13:16:36 (GMT)
committerBrad King <brad.king@kitware.com>2018-03-15 11:36:42 (GMT)
commit96fdde26bbbc969944e556ad649191cd21f46990 (patch)
tree0304a27601c4392c7f0a88527c4b0c6fc37d8cc0 /Tests/RunCMake/GoogleTest/timeout_test.cpp
parentc1e087a9d3af74299d7681c9f9de59e5977a1539 (diff)
downloadCMake-96fdde26bbbc969944e556ad649191cd21f46990.zip
CMake-96fdde26bbbc969944e556ad649191cd21f46990.tar.gz
CMake-96fdde26bbbc969944e556ad649191cd21f46990.tar.bz2
GoogleTest: Rename TIMEOUT parameter to avoid clash
In gtest_discover_tests(), the TIMEOUT keyword was making it impossible to set the TIMEOUT test property via the PROPERTIES keyword. This would be a frequent case, but it doesn't complain and instead silently does something different to what would normally be expected. The TIMEOUT keyword has been renamed to DISCOVERY_TIMEOUT, thereby removing the clash. This is a breaking change. 3.10.1 and 3.10.2 were the only versions that supported the TIMEOUT keyword and uses of it were likely not working as intended. Fixes: #17801
Diffstat (limited to 'Tests/RunCMake/GoogleTest/timeout_test.cpp')
-rw-r--r--Tests/RunCMake/GoogleTest/timeout_test.cpp30
1 files changed, 27 insertions, 3 deletions
diff --git a/Tests/RunCMake/GoogleTest/timeout_test.cpp b/Tests/RunCMake/GoogleTest/timeout_test.cpp
index a8e5c1c..9162dcf 100644
--- a/Tests/RunCMake/GoogleTest/timeout_test.cpp
+++ b/Tests/RunCMake/GoogleTest/timeout_test.cpp
@@ -4,12 +4,36 @@
#include <unistd.h>
#endif
-int main()
+#include <iostream>
+#include <string>
+
+void sleepFor(unsigned seconds)
{
#if defined(_WIN32)
- Sleep(10000);
+ Sleep(seconds * 1000);
#else
- sleep(10);
+ sleep(seconds);
+#endif
+}
+
+int main(int argc, char** argv)
+{
+ // Note: GoogleTest.cmake doesn't actually depend on Google Test as such;
+ // it only requires that we produce output in the expected format when
+ // invoked with --gtest_list_tests. Thus, we fake that here. This allows us
+ // to test the module without actually needing Google Test.
+ if (argc > 1 && std::string(argv[1]) == "--gtest_list_tests") {
+ std::cout << "timeout." << std::endl;
+ std::cout << " case" << std::endl;
+#ifdef discoverySleepSec
+ sleepFor(discoverySleepSec);
+#endif
+ return 0;
+ }
+
+#ifdef sleepSec
+ sleepFor(sleepSec);
#endif
+
return 0;
}