| 6803 | // instantiated to either char or wchar_t. |
| 6804 | template <typename CharType> |
| 6805 | void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) { |
| 6806 | for (int i = 1; i < *argc; i++) { |
| 6807 | const std::string arg_string = StreamableToString(argv[i]); |
| 6808 | const char* const arg = arg_string.c_str(); |
| 6809 | |
| 6810 | using internal::ParseBoolFlag; |
| 6811 | using internal::ParseInt32Flag; |
| 6812 | using internal::ParseStringFlag; |
| 6813 | |
| 6814 | // Do we see a Google Test flag? |
| 6815 | if (ParseBoolFlag(arg, kAlsoRunDisabledTestsFlag, |
| 6816 | >EST_FLAG(also_run_disabled_tests)) || |
| 6817 | ParseBoolFlag(arg, kBreakOnFailureFlag, |
| 6818 | >EST_FLAG(break_on_failure)) || |
| 6819 | ParseBoolFlag(arg, kCatchExceptionsFlag, |
| 6820 | >EST_FLAG(catch_exceptions)) || |
| 6821 | ParseStringFlag(arg, kColorFlag, >EST_FLAG(color)) || |
| 6822 | ParseStringFlag(arg, kDeathTestStyleFlag, |
| 6823 | >EST_FLAG(death_test_style)) || |
| 6824 | ParseBoolFlag(arg, kDeathTestUseFork, |
| 6825 | >EST_FLAG(death_test_use_fork)) || |
| 6826 | ParseStringFlag(arg, kFilterFlag, >EST_FLAG(filter)) || |
| 6827 | ParseStringFlag(arg, kInternalRunDeathTestFlag, |
| 6828 | >EST_FLAG(internal_run_death_test)) || |
| 6829 | ParseBoolFlag(arg, kListTestsFlag, >EST_FLAG(list_tests)) || |
| 6830 | ParseStringFlag(arg, kOutputFlag, >EST_FLAG(output)) || |
| 6831 | ParseBoolFlag(arg, kPrintTimeFlag, >EST_FLAG(print_time)) || |
| 6832 | ParseInt32Flag(arg, kRandomSeedFlag, >EST_FLAG(random_seed)) || |
| 6833 | ParseInt32Flag(arg, kRepeatFlag, >EST_FLAG(repeat)) || |
| 6834 | ParseBoolFlag(arg, kShuffleFlag, >EST_FLAG(shuffle)) || |
| 6835 | ParseInt32Flag(arg, kStackTraceDepthFlag, |
| 6836 | >EST_FLAG(stack_trace_depth)) || |
| 6837 | ParseStringFlag(arg, kStreamResultToFlag, |
| 6838 | >EST_FLAG(stream_result_to)) || |
| 6839 | ParseBoolFlag(arg, kThrowOnFailureFlag, |
| 6840 | >EST_FLAG(throw_on_failure)) |
| 6841 | ) { |
| 6842 | // Yes. Shift the remainder of the argv list left by one. Note |
| 6843 | // that argv has (*argc + 1) elements, the last one always being |
| 6844 | // NULL. The following loop moves the trailing NULL element as |
| 6845 | // well. |
| 6846 | for (int j = i; j != *argc; j++) { |
| 6847 | argv[j] = argv[j + 1]; |
| 6848 | } |
| 6849 | |
| 6850 | // Decrements the argument count. |
| 6851 | (*argc)--; |
| 6852 | |
| 6853 | // We also need to decrement the iterator as we just removed |
| 6854 | // an element. |
| 6855 | i--; |
| 6856 | } else if (arg_string == "--help" || arg_string == "-h" || |
| 6857 | arg_string == "-?" || arg_string == "/?" || |
| 6858 | HasGoogleTestFlagPrefix(arg)) { |
| 6859 | // Both help flag and unrecognized Google Test flags (excluding |
| 6860 | // internal ones) trigger help display. |
| 6861 | g_help_flag = true; |
| 6862 | } |
no test coverage detected