From 3df62357ab54be772d421c2dd0767c56b5b5247c Mon Sep 17 00:00:00 2001 From: KirtiRamchandani Date: Mon, 1 Jun 2026 15:31:36 +0530 Subject: [PATCH] Strip help flag during flag parsing --- googletest/src/gtest.cc | 9 ++++++--- googletest/test/gtest_unittest.cc | 9 +++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc index ac90786a0..5c52b8093 100644 --- a/googletest/src/gtest.cc +++ b/googletest/src/gtest.cc @@ -6868,9 +6868,12 @@ void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) { LoadFlagsFromFile(flagfile_value); remove_flag = true; #endif // GTEST_USE_OWN_FLAGFILE_FLAG_ && GTEST_HAS_FILE_SYSTEM - } else if (arg_string == "--help" || HasGoogleTestFlagPrefix(arg)) { - // Both help flag and unrecognized Google Test flags (excluding - // internal ones) trigger help display. + } else if (arg_string == "--help") { + g_help_flag = true; + remove_flag = true; + } else if (HasGoogleTestFlagPrefix(arg)) { + // Unrecognized Google Test flags (excluding internal ones) trigger help + // display, but remain available for other flag parsers. g_help_flag = true; } diff --git a/googletest/test/gtest_unittest.cc b/googletest/test/gtest_unittest.cc index 8ce64d386..5de8f854f 100644 --- a/googletest/test/gtest_unittest.cc +++ b/googletest/test/gtest_unittest.cc @@ -5942,6 +5942,15 @@ TEST_F(ParseFlagsTest, UnrecognizedFlag) { GTEST_TEST_PARSING_FLAGS_(argv, argv2, flags, false); } +// Tests having a --help flag on the command line. +TEST_F(ParseFlagsTest, HelpFlag) { + const char* argv[] = {"foo.exe", "--help", "bar", nullptr}; + + const char* argv2[] = {"foo.exe", "bar", nullptr}; + + GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags(), true); +} + // Tests having a --gtest_list_tests flag TEST_F(ParseFlagsTest, ListTestsFlag) { const char* argv[] = {"foo.exe", "--gtest_list_tests", nullptr};