summaryrefslogtreecommitdiff
path: root/absl/flags/parse_test.cc
diff options
context:
space:
mode:
authorGravatar Gennadiy Rozental <rogeeff@google.com>2023-04-06 11:43:21 -0700
committerGravatar Copybara-Service <copybara-worker@google.com>2023-04-06 11:44:07 -0700
commite73b9139ee9b853a4bd7812531442c138da09084 (patch)
treefad9785e725902bdffe39cf5bb1359f7b0bea8fe /absl/flags/parse_test.cc
parent0bc6509b8a7555b45e62946b31d8d39b8e142ae1 (diff)
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.cc17
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")));
}
// --------------------------------------------------------------------