summaryrefslogtreecommitdiffstats
path: root/Modules/GoogleTest.cmake
Commit message (Collapse)AuthorAgeFilesLines
* GoogleTest: gtest_add_tests() fails if any source file is emptyAlessandro2018-09-101-1/+1
| | | | Fixes #18321
* GoogleTest: Ensure policy settings allow use of IN_LISTCraig Scott2018-07-251-0/+7
| | | | | | | | | If policy settings at the time the GoogleTest module is included are such that CMP0057 is unset or set to OLD, the use of IN_LIST with if() will lead to an error. Therefore, explicitly specify the policy settings for the whole file to ensure the function implementations have access to the required CMake features. Fixes: #18198
* GoogleTest: Rename TIMEOUT parameter to avoid clashCraig Scott2018-03-151-5/+16
| | | | | | | | | | | | | | | 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
* GoogleTest: Add timeout to discoveryMatthew Woehlke2017-12-061-1/+13
| | | | | | | | | | Add a TIMEOUT option to gtest_discover_tests. This provides a work-around in case a test goes out to lunch, rather than causing the build to simply hang. (Although this is still a problem with the user's project, hanging the build is not cool, especially in the case of automatically running CI builds. It is much preferred that the build should actively fail in this case, and it is trivially easy for us to implement that.)
* GoogleTest: Fix multiple discovery on same targetMatthew Woehlke2017-11-211-2/+25
| | | | | | | | | | | | | According to the documentation, tests can be discovered for a target multiple times by using a different prefix and/or suffix to ensure name uniqueness. However, while this worked for gtest_add_tests, it did not work with gtest_discover_tests because the generated file that sets up the tests was named based only on the target name, and so subsequent discovery from the same target would clobber earlier discovery. Fix this by introducing a counter that records how many times discovery has been used on a target, and use this to generate unique names of the generated test list files.
* Add dynamic test discovery for for Google TestMatthew Woehlke2017-07-271-16/+200
| | | | | | | | | | | | | | | | | | Add a new gtest_discover_tests function to GoogleTest.cmake, implementing dynamic test discovery (i.e. tests are discovered by actually running the test executable and asking for the list of available tests, which is used to dynamically declare the tests) rather than the source-parsing approach used by gtest_add_tests. Compared to the source-parsing approach, this has the advantage of being robust against users declaring tests in unusual ways, and much better support for advanced features such as parameterized tests. A unit test, modeled after the TEST_INCLUDE_DIR[S] test, is also included. Note that the unit test does not actually require that Google Test is available. The new functionality does not actually depend on Google Test as such; it only requires that the test executable lists tests in the expected format when invoked with --gtest_list_tests, which the unit test can fake readily.
* GoogleTest: Add support for disabled testsChuck Atkins2017-06-051-8/+38
| | | | Fixes: #10612
* GoogleTest: Expand capabilities of gtest_add_tests()Craig Scott2017-05-151-26/+149
| | | | | | | | Now has keyword-based arguments (old syntax form is still supported). Discovered tests can have a prefix and/or suffix added to the test names and the list of discovered tests is available to the caller. The working dir can also be set and the dependency on the source files is now optional instead of mandatory.
* GoogleTest: Add module to contain gtest_add_tests independentlyBradley Lowekamp2017-02-071-0/+73
Extract the `gtest_add_tests` macro from `FindGTest` into a separate module. GTest or GoogleTest can be used by a project in a several different ways, including installed libraries in the system, from an ExternalProject, or adding the GTest source directory as a sub directory of the project. As not all of these uses are supported by the FindGTest module the useful `gtest_add_tests` macro is separated to easily enable reuse. Issue: #14151