16 #include "absl/flags/reflection.h"
21 #include "gmock/gmock.h"
22 #include "gtest/gtest.h"
23 #include "absl/flags/declare.h"
24 #include "absl/flags/flag.h"
25 #include "absl/flags/internal/commandlineflag.h"
26 #include "absl/flags/marshalling.h"
27 #include "absl/memory/memory.h"
28 #include "absl/strings/str_cat.h"
29 #include "absl/strings/str_split.h"
31 ABSL_FLAG(
int, int_flag, 1,
"int_flag help");
39 void SetUp()
override { flag_saver_ = absl::make_unique<absl::FlagSaver>(); }
40 void TearDown()
override { flag_saver_.reset(); }
43 std::unique_ptr<absl::FlagSaver> flag_saver_;
48 TEST_F(ReflectionTest, TestFindCommandLineFlag) {
64 TEST_F(ReflectionTest, TestGetAllFlags) {
66 EXPECT_NE(all_flags.find(
"int_flag"), all_flags.end());
67 EXPECT_EQ(all_flags.find(
"bool_retired_flag"), all_flags.end());
68 EXPECT_EQ(all_flags.find(
"some_undefined_flag"), all_flags.end());
70 std::vector<absl::string_view> flag_names_first_attempt;
72 for (
auto f : all_flags_1) {
73 flag_names_first_attempt.push_back(
f.first);
76 std::vector<absl::string_view> flag_names_second_attempt;
78 for (
auto f : all_flags_2) {
79 flag_names_second_attempt.push_back(
f.first);
89 CustomUDT() :
a(1),
b(1) {}
100 std::vector<absl::string_view> parts =
103 if (parts.size() != 2)
return false;
127 ABSL_FLAG(
double, test_flag_09, -9.876e-50,
"");
128 ABSL_FLAG(
float, test_flag_10, 1.234e12f,
"");
133 ABSL_FLAG(CustomUDT, test_flag_14, {},
"");
137 TEST_F(ReflectionTest, TestFlagSaverInScope) {
176 TEST_F(ReflectionTest, TestFlagSaverVsUpdateViaReflection) {
203 ->ParseFrom(
"1000000001", &
error))
215 ->ParseFrom(
"3h11m16s", &
error))
244 TEST_F(ReflectionTest, TestMultipleFlagSaversInEnclosedScopes) {