Strip help flag during flag parsing

This commit is contained in:
KirtiRamchandani 2026-06-01 15:31:36 +05:30
parent a721f1b20c
commit 3df62357ab
2 changed files with 15 additions and 3 deletions

View File

@ -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;
}

View File

@ -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};