From 3e737a8e8ba0098cbd6b2d99c49c01a393d01d84 Mon Sep 17 00:00:00 2001 From: ameliabarnabyhub Date: Wed, 12 Aug 2026 22:18:07 +0800 Subject: [PATCH] Add --gtest_list_tests_flat for script-friendly test listing Signed-off-by: ameliabarnabyhub --- googletest/test/gtest_unittest.cc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/googletest/test/gtest_unittest.cc b/googletest/test/gtest_unittest.cc index d759f800..288388e1 100644 --- a/googletest/test/gtest_unittest.cc +++ b/googletest/test/gtest_unittest.cc @@ -1626,6 +1626,7 @@ class GTestFlagSaverTest : public Test { GTEST_FLAG_SET(fail_fast, false); GTEST_FLAG_SET(filter, ""); GTEST_FLAG_SET(list_tests, false); + GTEST_FLAG_SET(list_tests_flat, false); GTEST_FLAG_SET(output, ""); GTEST_FLAG_SET(brief, false); GTEST_FLAG_SET(print_time, true); @@ -5574,6 +5575,7 @@ struct Flags { fail_fast(false), filter(""), list_tests(false), + list_tests_flat(false), output(""), brief(false), print_time(true), @@ -5643,6 +5645,14 @@ struct Flags { return flags; } + // Creates a Flags struct where the gtest_list_tests_flat flag has the + // given value. + static Flags ListTestsFlat(bool list_tests_flat) { + Flags flags; + flags.list_tests_flat = list_tests_flat; + return flags; + } + // Creates a Flags struct where the gtest_output flag has the given // value. static Flags Output(const char* output) { @@ -5733,6 +5743,7 @@ struct Flags { bool fail_fast; const char* filter; bool list_tests; + bool list_tests_flat; const char* output; bool brief; bool print_time; @@ -5757,6 +5768,7 @@ class ParseFlagsTest : public Test { GTEST_FLAG_SET(fail_fast, false); GTEST_FLAG_SET(filter, ""); GTEST_FLAG_SET(list_tests, false); + GTEST_FLAG_SET(list_tests_flat, false); GTEST_FLAG_SET(output, ""); GTEST_FLAG_SET(brief, false); GTEST_FLAG_SET(print_time, true); @@ -5791,6 +5803,7 @@ class ParseFlagsTest : public Test { EXPECT_EQ(expected.fail_fast, GTEST_FLAG_GET(fail_fast)); EXPECT_STREQ(expected.filter, GTEST_FLAG_GET(filter).c_str()); EXPECT_EQ(expected.list_tests, GTEST_FLAG_GET(list_tests)); + EXPECT_EQ(expected.list_tests_flat, GTEST_FLAG_GET(list_tests_flat)); EXPECT_STREQ(expected.output, GTEST_FLAG_GET(output).c_str()); EXPECT_EQ(expected.brief, GTEST_FLAG_GET(brief)); EXPECT_EQ(expected.print_time, GTEST_FLAG_GET(print_time)); @@ -6038,6 +6051,15 @@ TEST_F(ParseFlagsTest, ListTestsFalse_F) { GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::ListTests(false), false); } +// Tests having a --gtest_list_tests_flat flag +TEST_F(ParseFlagsTest, ListTestsFlatFlag) { + const char* argv[] = {"foo.exe", "--gtest_list_tests_flat", nullptr}; + + const char* argv2[] = {"foo.exe", nullptr}; + + GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::ListTestsFlat(true), false); +} + // Tests parsing --gtest_output=xml TEST_F(ParseFlagsTest, OutputXml) { const char* argv[] = {"foo.exe", "--gtest_output=xml", nullptr};