I’m currently writing some unit tests for some debug line error handling code I’m working on (see e.g. https://reviews.llvm.org/D44382), and I just ran into an annoying disabled feature in gtest, specifically the “Combine” feature for use in combinatorially generating parameterised tests. A FIXME comment in ProfileData\CoverageMappingTest.cpp suggests that I’m not the only one to have tried and discovered that they cannot use this feature. The problem is that the version of googletest (v 1.8.0, released in Aug 2016) in the LLVM tree requires TR1 tuple support for this feature, which is not really supported in recent compilers, and has been explicitly disabled in our googletest CMakeLists.txt, thus disabling “Combine”.
I did a bit of looking around, and v 1.8.0 is indeed the last officially tagged release of googletest. However, there has been a lot of development on the framework since that point, including a fix to enable use of Combine with std::tuple-supporting compilers. There have been a number of issue raised on the googletest issue tracker (see e.g. https://github.com/google/googletest/issues/1467 or https://github.com/google/googletest/issues/1079) asking about a 1.9.0 release, and there has been zero response from anybody answering the query of when/if it will happen. In the meantime, the last release gets older and crustier…
I’d therefore like to propose something that might be seen as slightly controversial: update to use ToT googletest (or at least some reasonably recent version of master), at least until a new release is created.