| 6073 | // instantiated to either char or wchar_t. |
| 6074 | template <typename CharType> |
| 6075 | void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) { |
| 6076 | for (int i = 1; i < *argc; i++) { |
| 6077 | const String arg_string = StreamableToString(argv[i]); |
| 6078 | const char* const arg = arg_string.c_str(); |
| 6079 | |
| 6080 | using internal::ParseBoolFlag; |
| 6081 | using internal::ParseInt32Flag; |
| 6082 | using internal::ParseStringFlag; |
| 6083 | |
| 6084 | // Do we see a Google Test flag? |
| 6085 | if (ParseBoolFlag(arg, kAlsoRunDisabledTestsFlag, |
| 6086 | >EST_FLAG(also_run_disabled_tests)) || |
| 6087 | ParseBoolFlag(arg, kBreakOnFailureFlag, |
| 6088 | >EST_FLAG(break_on_failure)) || |
| 6089 | ParseBoolFlag(arg, kCatchExceptionsFlag, |
| 6090 | >EST_FLAG(catch_exceptions)) || |
| 6091 | ParseStringFlag(arg, kColorFlag, >EST_FLAG(color)) || |
| 6092 | ParseStringFlag(arg, kDeathTestStyleFlag, |
| 6093 | >EST_FLAG(death_test_style)) || |
| 6094 | ParseBoolFlag(arg, kDeathTestUseFork, |
| 6095 | >EST_FLAG(death_test_use_fork)) || |
| 6096 | ParseStringFlag(arg, kFilterFlag, >EST_FLAG(filter)) || |
| 6097 | ParseStringFlag(arg, kInternalRunDeathTestFlag, |
| 6098 | >EST_FLAG(internal_run_death_test)) || |
| 6099 | ParseBoolFlag(arg, kListTestsFlag, >EST_FLAG(list_tests)) || |
| 6100 | ParseStringFlag(arg, kOutputFlag, >EST_FLAG(output)) || |
| 6101 | ParseBoolFlag(arg, kPrintTimeFlag, >EST_FLAG(print_time)) || |
| 6102 | ParseInt32Flag(arg, kRandomSeedFlag, >EST_FLAG(random_seed)) || |
| 6103 | ParseInt32Flag(arg, kRepeatFlag, >EST_FLAG(repeat)) || |
| 6104 | ParseBoolFlag(arg, kShuffleFlag, >EST_FLAG(shuffle)) || |
| 6105 | ParseInt32Flag(arg, kStackTraceDepthFlag, |
| 6106 | >EST_FLAG(stack_trace_depth)) || |
| 6107 | ParseStringFlag(arg, kStreamResultToFlag, |
| 6108 | >EST_FLAG(stream_result_to)) || |
| 6109 | ParseBoolFlag(arg, kThrowOnFailureFlag, |
| 6110 | >EST_FLAG(throw_on_failure)) |
| 6111 | ) { |
| 6112 | // Yes. Shift the remainder of the argv list left by one. Note |
| 6113 | // that argv has (*argc + 1) elements, the last one always being |
| 6114 | // NULL. The following loop moves the trailing NULL element as |
| 6115 | // well. |
| 6116 | for (int j = i; j != *argc; j++) { |
| 6117 | argv[j] = argv[j + 1]; |
| 6118 | } |
| 6119 | |
| 6120 | // Decrements the argument count. |
| 6121 | (*argc)--; |
| 6122 | |
| 6123 | // We also need to decrement the iterator as we just removed |
| 6124 | // an element. |
| 6125 | i--; |
| 6126 | } else if (arg_string == "--help" || arg_string == "-h" || |
| 6127 | arg_string == "-?" || arg_string == "/?" || |
| 6128 | HasGoogleTestFlagPrefix(arg)) { |
| 6129 | // Both help flag and unrecognized Google Test flags (excluding |
| 6130 | // internal ones) trigger help display. |
| 6131 | g_help_flag = true; |
| 6132 | } |
no test coverage detected