diff options
author | Gennadiy Rozental <rogeeff@google.com> | 2023-04-06 11:43:21 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-04-06 11:44:07 -0700 |
commit | e73b9139ee9b853a4bd7812531442c138da09084 (patch) | |
tree | fad9785e725902bdffe39cf5bb1359f7b0bea8fe /absl/flags/parse_test.cc | |
parent | 0bc6509b8a7555b45e62946b31d8d39b8e142ae1 (diff) | |
download | abseil-e73b9139ee9b853a4bd7812531442c138da09084.tar.gz abseil-e73b9139ee9b853a4bd7812531442c138da09084.tar.bz2 abseil-e73b9139ee9b853a4bd7812531442c138da09084.zip |
Use stdout for help output even in case of errors.
PiperOrigin-RevId: 522393331
Change-Id: Ia5f4ad6a2d16c033ea97f3c7e27e8eb7ee429242
Diffstat (limited to 'absl/flags/parse_test.cc')
-rw-r--r-- | absl/flags/parse_test.cc | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/absl/flags/parse_test.cc b/absl/flags/parse_test.cc index f3987bb7..cd32efc8 100644 --- a/absl/flags/parse_test.cc +++ b/absl/flags/parse_test.cc @@ -18,6 +18,7 @@ #include <stdlib.h> #include <fstream> +#include <iostream> #include <string> #include <vector> @@ -235,7 +236,9 @@ ABSL_RETIRED_FLAG(std::string, legacy_str, "l", ""); namespace { namespace flags = absl::flags_internal; +using testing::AllOf; using testing::ElementsAreArray; +using testing::HasSubstr; class ParseTest : public testing::Test { public: @@ -271,6 +274,15 @@ void InvokeParseAbslOnly(const char* (&in_argv)[N]) { // -------------------------------------------------------------------- template <int N> +std::vector<char*> InvokeParseCommandLineImpl(const char* (&in_argv)[N]) { + return flags::ParseCommandLineImpl( + N, const_cast<char**>(in_argv), flags::UsageFlagsAction::kHandleUsage, + flags::OnUndefinedFlag::kAbortIfUndefined, std::cerr); +} + +// -------------------------------------------------------------------- + +template <int N> std::vector<char*> InvokeParse(const char* (&in_argv)[N]) { return absl::ParseCommandLine(N, const_cast<char**>(in_argv)); } @@ -1066,8 +1078,9 @@ TEST_F(ParseDeathTest, ExitOnUnrecognizedFlagPrintsHelp) { "--help=int_flag", }; - EXPECT_DEATH_IF_SUPPORTED(InvokeParse(in_args), - "Try --helpfull to get a list of all flags"); + EXPECT_EXIT(InvokeParseCommandLineImpl(in_args), testing::ExitedWithCode(1), + AllOf(HasSubstr("Unknown command line flag 'undef_flag1'"), + HasSubstr("Try --helpfull to get a list of all flags"))); } // -------------------------------------------------------------------- |