I want to make another try to figure out what's wrong with this, because I like GetParamNameForTest, but if I can't figure it out I'll decide it's too fragile and remove the whole thing.
The root cause is that in a debug build, the compiler insists on choosing
template <typename T>
void PrintTo(const T& value, ::std::ostream* os) {
Defined in third_party/googletest/src/googletest/include/gtest/gtest-printers.h, with T as chrome_cleaner::ExecutionMode (an enum class defined in components/chrome_cleaner/public/constants.h) even when
void PrintTo(const chrome_cleaner::ExecutionMode& mode, ::std::ostream* os) {
Is defined in chrome/chrome_cleaner/test/test_name_helper.h
But only in debug mode. Release is fine.
Comment 1 by vakh@chromium.org
, Aug 10