16 #include "absl/flags/commandlineflag.h"
21 #include "gtest/gtest.h"
22 #include "absl/flags/flag.h"
23 #include "absl/flags/internal/commandlineflag.h"
24 #include "absl/flags/internal/private_handle_accessor.h"
25 #include "absl/flags/reflection.h"
26 #include "absl/flags/usage_config.h"
27 #include "absl/memory/memory.h"
28 #include "absl/strings/match.h"
29 #include "absl/strings/str_cat.h"
30 #include "absl/strings/string_view.h"
32 ABSL_FLAG(
int, int_flag, 201,
"int_flag help");
54 void SetUp()
override { flag_saver_ = absl::make_unique<absl::FlagSaver>(); }
55 void TearDown()
override { flag_saver_.reset(); }
61 std::replace(normalized.begin(), normalized.end(),
'\\',
'/');
67 std::unique_ptr<absl::FlagSaver> flag_saver_;
70 TEST_F(CommandLineFlagTest, TestAttributesAccessMethods) {
75 EXPECT_EQ(flag_01->Help(),
"int_flag help");
81 "absl/flags/commandlineflag_test.cc"))
82 << flag_01->Filename();
87 EXPECT_EQ(flag_02->Name(),
"string_flag");
88 EXPECT_EQ(flag_02->Help(),
"string_flag help");
94 "absl/flags/commandlineflag_test.cc"))
95 << flag_02->Filename();
100 TEST_F(CommandLineFlagTest, TestValueAccessMethods) {
105 EXPECT_EQ(flag_01->CurrentValue(),
"301");
106 EXPECT_EQ(flag_01->DefaultValue(),
"201");
112 EXPECT_EQ(flag_02->CurrentValue(),
"new_str_value");
113 EXPECT_EQ(flag_02->DefaultValue(),
"dflt");
118 TEST_F(CommandLineFlagTest, TestParseFromCurrentValue) {
142 EXPECT_EQ(
err,
"Illegal value 'xyz' specified for flag 'int_flag'");
149 EXPECT_EQ(
err,
"Illegal value 'A1' specified for flag 'int_flag'");
167 EXPECT_EQ(
err,
"Illegal value '' specified for flag 'int_flag'");
182 TEST_F(CommandLineFlagTest, TestParseFromDefaultValue) {
190 EXPECT_EQ(flag_01->DefaultValue(),
"111");
197 EXPECT_EQ(flag_02->DefaultValue(),
"abc");
202 TEST_F(CommandLineFlagTest, TestParseFromIfDefault) {