Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(704)

Unified Diff: components/sync/base/enum_set_unittest.cc

Issue 2859033002: [sync] Add constexpr to EnumSet (Closed)
Patch Set: Move reading list switches and buildflag to /features Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/sync/base/enum_set.h ('k') | components/sync/base/model_type.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/sync/base/enum_set_unittest.cc
diff --git a/components/sync/base/enum_set_unittest.cc b/components/sync/base/enum_set_unittest.cc
index 8f32c7f783f2fcc9a7d6f1e7c61441c07034c9fb..1865f342f7fc79c0ccb589b902c097030584af30 100644
--- a/components/sync/base/enum_set_unittest.cc
+++ b/components/sync/base/enum_set_unittest.cc
@@ -33,6 +33,17 @@ TEST_F(EnumSetTest, ClassConstants) {
EXPECT_EQ(static_cast<size_t>(5), TestEnumSet::kValueCount);
}
+// Use static_assert to check that functions we expect to be compile time
+// evaluatable are really that way.
+TEST_F(EnumSetTest, ConstexprsAreValid) {
+ static_assert(TestEnumSet::All().Has(TEST_1),
+ "expected All() to be integral constant expression");
+ static_assert(TestEnumSet::FromRange(TEST_1, TEST_3).Has(TEST_1),
+ "expected FromRange() to be integral constant expression");
+ static_assert(TestEnumSet(TEST_1).Has(TEST_1),
+ "expected TestEnumSet() to be integral constant expression");
+}
+
TEST_F(EnumSetTest, DefaultConstructor) {
const TestEnumSet enums;
EXPECT_TRUE(enums.Empty());
@@ -98,6 +109,12 @@ TEST_F(EnumSetTest, FromRange) {
TestEnumSet::FromRange(TEST_1, TEST_3));
EXPECT_EQ(TestEnumSet::All(), TestEnumSet::FromRange(TEST_0, TEST_4));
EXPECT_EQ(TestEnumSet(TEST_1), TestEnumSet::FromRange(TEST_1, TEST_1));
+
+ using RestrictedRangeSet = EnumSet<TestEnum, TEST_1, TEST_MAX>;
+ EXPECT_EQ(RestrictedRangeSet(TEST_1, TEST_2, TEST_3),
+ RestrictedRangeSet::FromRange(TEST_1, TEST_3));
+ EXPECT_EQ(RestrictedRangeSet::All(),
+ RestrictedRangeSet::FromRange(TEST_1, TEST_4));
}
TEST_F(EnumSetTest, Put) {
« no previous file with comments | « components/sync/base/enum_set.h ('k') | components/sync/base/model_type.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698