29 #include <gtest/gtest.h>
34 TEST(DebugFlagTest, NameDesc)
37 EXPECT_EQ(
"FlagNameDescTestKidA", flag_a.
name());
38 EXPECT_EQ(
"Kid A", flag_a.
desc());
41 EXPECT_EQ(
"FlagNameDescTestKidB", flag_b.
name());
42 EXPECT_EQ(
"Kid B", flag_b.
desc());
46 EXPECT_EQ(
"FlagNameDescTest", compound_flag.name());
47 EXPECT_EQ(
"Compound Flag", compound_flag.desc());
51 TEST(DebugFlagDeathTest, UniqueNames)
54 testing::internal::CaptureStderr();
56 const std::string
expected =
"panic: panic condition !result.second "
57 "occurred: Flag FlagUniqueNamesTest already defined!\n";
58 std::string actual = testing::internal::GetCapturedStderr().substr();
59 actual = actual.substr(actual.find(
":", actual.find(
":") + 1) + 2);
64 TEST(DebugFlagTest, IsFormat)
75 TEST(DebugSimpleFlagTest, Enabled)
104 TEST(DebugCompoundFlagTest, Enabled)
113 ASSERT_FALSE(flag.enabled());
117 ASSERT_FALSE(flag_a.
enabled());
118 ASSERT_FALSE(flag_b.
enabled());
119 ASSERT_FALSE(flag.enabled());
121 for (
auto &kid : flag.kids()) {
122 ASSERT_TRUE(kid->enabled());
126 ASSERT_TRUE(flag.enabled());
130 for (
auto &kid : flag.kids()) {
131 ASSERT_FALSE(kid->enabled());
133 ASSERT_FALSE(flag_a.
enabled());
134 ASSERT_FALSE(flag_b.
enabled());
135 ASSERT_FALSE(flag.enabled());
139 TEST(DebugFlagTest, ConversionOperator)
144 ASSERT_EQ(flag, flag.
enabled());
146 ASSERT_EQ(flag, flag.
enabled());
154 TEST(DebugCompoundFlagTest, EnabledKids)
163 ASSERT_FALSE(flag_a.
enabled());
164 ASSERT_FALSE(flag_b.
enabled());
165 ASSERT_FALSE(flag.enabled());
168 ASSERT_FALSE(flag_b.
enabled());
169 ASSERT_FALSE(flag.enabled());
173 ASSERT_FALSE(flag_b.
enabled());
174 ASSERT_FALSE(flag.enabled());
178 ASSERT_TRUE(flag.enabled());
182 ASSERT_FALSE(flag_a.
enabled());
184 ASSERT_FALSE(flag.enabled());
198 ASSERT_FALSE(flag_a.
enabled());
202 ASSERT_FALSE(flag_b.
enabled());
211 TEST(DebugFlagTest, ChangeFlag)
219 ASSERT_FALSE(flag_a.
enabled());
223 ASSERT_FALSE(flag_a.
enabled());
226 ASSERT_FALSE(flag_b.
enabled());
228 ASSERT_FALSE(flag_b.
enabled());
237 TEST(DebugFlagTest, SetClearDebugFlag)
244 ASSERT_FALSE(flag_a.
enabled());
248 ASSERT_FALSE(flag_a.
enabled());
251 ASSERT_FALSE(flag_b.
enabled());
253 ASSERT_FALSE(flag_b.
enabled());
263 TEST(DebugFlagTest, NoDumpDebugFlags)
269 testing::internal::CaptureStdout();
271 std::string
output = testing::internal::GetCapturedStdout();
277 TEST(DebugFlagTest, DumpDebugFlags)
291 ASSERT_FALSE(flag_a.
enabled());
292 ASSERT_FALSE(flag_b.
enabled());
293 ASSERT_FALSE(flag_c.
enabled());
294 ASSERT_FALSE(flag_d.
enabled());
295 ASSERT_FALSE(flag_e.
enabled());
298 compound_flag_b.enable();
301 testing::internal::CaptureStdout();
303 std::string
output = testing::internal::GetCapturedStdout();
304 EXPECT_EQ(
output,
"FlagDumpDebugFlagTestA\nFlagDumpDebugFlagTestC\n" \
305 "FlagDumpDebugFlagTestE\n");