| 6371 | // instantiated to either char or wchar_t. |
| 6372 | template <typename CharType> |
| 6373 | void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) { |
| 6374 | for (int i = 1; i < *argc; i++) { |
| 6375 | const std::string arg_string = StreamableToString(argv[i]); |
| 6376 | const char* const arg = arg_string.c_str(); |
| 6377 | |
| 6378 | using internal::ParseBoolFlag; |
| 6379 | using internal::ParseInt32Flag; |
| 6380 | using internal::ParseStringFlag; |
| 6381 | |
| 6382 | // Do we see a Google Test flag? |
| 6383 | if (ParseBoolFlag(arg, kAlsoRunDisabledTestsFlag, |
| 6384 | >EST_FLAG(also_run_disabled_tests)) || |
| 6385 | ParseBoolFlag(arg, kBreakOnFailureFlag, |
| 6386 | >EST_FLAG(break_on_failure)) || |
| 6387 | ParseBoolFlag(arg, kCatchExceptionsFlag, |
| 6388 | >EST_FLAG(catch_exceptions)) || |
| 6389 | ParseStringFlag(arg, kColorFlag, >EST_FLAG(color)) || |
| 6390 | ParseStringFlag(arg, kDeathTestStyleFlag, |
| 6391 | >EST_FLAG(death_test_style)) || |
| 6392 | ParseBoolFlag(arg, kDeathTestUseFork, |
| 6393 | >EST_FLAG(death_test_use_fork)) || |
| 6394 | ParseStringFlag(arg, kFilterFlag, >EST_FLAG(filter)) || |
| 6395 | ParseStringFlag(arg, kInternalRunDeathTestFlag, |
| 6396 | >EST_FLAG(internal_run_death_test)) || |
| 6397 | ParseBoolFlag(arg, kListTestsFlag, >EST_FLAG(list_tests)) || |
| 6398 | ParseStringFlag(arg, kOutputFlag, >EST_FLAG(output)) || |
| 6399 | ParseBoolFlag(arg, kPrintTimeFlag, >EST_FLAG(print_time)) || |
| 6400 | ParseInt32Flag(arg, kRandomSeedFlag, >EST_FLAG(random_seed)) || |
| 6401 | ParseInt32Flag(arg, kRepeatFlag, >EST_FLAG(repeat)) || |
| 6402 | ParseBoolFlag(arg, kShuffleFlag, >EST_FLAG(shuffle)) || |
| 6403 | ParseInt32Flag(arg, kStackTraceDepthFlag, |
| 6404 | >EST_FLAG(stack_trace_depth)) || |
| 6405 | ParseStringFlag(arg, kStreamResultToFlag, |
| 6406 | >EST_FLAG(stream_result_to)) || |
| 6407 | ParseBoolFlag(arg, kThrowOnFailureFlag, |
| 6408 | >EST_FLAG(throw_on_failure)) |
| 6409 | ) { |
| 6410 | // Yes. Shift the remainder of the argv list left by one. Note |
| 6411 | // that argv has (*argc + 1) elements, the last one always being |
| 6412 | // NULL. The following loop moves the trailing NULL element as |
| 6413 | // well. |
| 6414 | for (int j = i; j != *argc; j++) { |
| 6415 | argv[j] = argv[j + 1]; |
| 6416 | } |
| 6417 | |
| 6418 | // Decrements the argument count. |
| 6419 | (*argc)--; |
| 6420 | |
| 6421 | // We also need to decrement the iterator as we just removed |
| 6422 | // an element. |
| 6423 | i--; |
| 6424 | } else if (arg_string == "--help" || arg_string == "-h" || |
| 6425 | arg_string == "-?" || arg_string == "/?" || |
| 6426 | HasGoogleTestFlagPrefix(arg)) { |
| 6427 | // Both help flag and unrecognized Google Test flags (excluding |
| 6428 | // internal ones) trigger help display. |
| 6429 | g_help_flag = true; |
| 6430 | } |
no test coverage detected