|
Lines 24-29
a/Tools/TestWebKitAPI/Tests/WTF/OptionSet.cpp_sec1
|
| 24 |
*/ |
24 |
*/ |
| 25 |
|
25 |
|
| 26 |
#include "config.h" |
26 |
#include "config.h" |
|
|
27 |
#include "PlatformUtilities.h" |
| 27 |
|
28 |
|
| 28 |
#include <wtf/OptionSet.h> |
29 |
#include <wtf/OptionSet.h> |
| 29 |
|
30 |
|
|
Lines 38-43
enum class ExampleFlags {
a/Tools/TestWebKitAPI/Tests/WTF/OptionSet.cpp_sec2
|
| 38 |
TEST(WTF_OptionSet, EmptySet) |
39 |
TEST(WTF_OptionSet, EmptySet) |
| 39 |
{ |
40 |
{ |
| 40 |
OptionSet<ExampleFlags> set; |
41 |
OptionSet<ExampleFlags> set; |
|
|
42 |
EXPECT_TRUE(set.isEmpty()); |
| 41 |
EXPECT_FALSE(set.contains(ExampleFlags::A)); |
43 |
EXPECT_FALSE(set.contains(ExampleFlags::A)); |
| 42 |
EXPECT_FALSE(set.contains(ExampleFlags::B)); |
44 |
EXPECT_FALSE(set.contains(ExampleFlags::B)); |
| 43 |
EXPECT_FALSE(set.contains(ExampleFlags::C)); |
45 |
EXPECT_FALSE(set.contains(ExampleFlags::C)); |
|
Lines 46-51
TEST(WTF_OptionSet, EmptySet)
a/Tools/TestWebKitAPI/Tests/WTF/OptionSet.cpp_sec3
|
| 46 |
TEST(WTF_OptionSet, ContainsOneFlag) |
48 |
TEST(WTF_OptionSet, ContainsOneFlag) |
| 47 |
{ |
49 |
{ |
| 48 |
OptionSet<ExampleFlags> set = ExampleFlags::A; |
50 |
OptionSet<ExampleFlags> set = ExampleFlags::A; |
|
|
51 |
EXPECT_FALSE(set.isEmpty()); |
| 49 |
EXPECT_TRUE(set.contains(ExampleFlags::A)); |
52 |
EXPECT_TRUE(set.contains(ExampleFlags::A)); |
| 50 |
EXPECT_FALSE(set.contains(ExampleFlags::B)); |
53 |
EXPECT_FALSE(set.contains(ExampleFlags::B)); |
| 51 |
EXPECT_FALSE(set.contains(ExampleFlags::C)); |
54 |
EXPECT_FALSE(set.contains(ExampleFlags::C)); |
|
Lines 54-59
TEST(WTF_OptionSet, ContainsOneFlag)
a/Tools/TestWebKitAPI/Tests/WTF/OptionSet.cpp_sec4
|
| 54 |
TEST(WTF_OptionSet, ContainsTwoFlags) |
57 |
TEST(WTF_OptionSet, ContainsTwoFlags) |
| 55 |
{ |
58 |
{ |
| 56 |
OptionSet<ExampleFlags> set { ExampleFlags::A, ExampleFlags::B }; |
59 |
OptionSet<ExampleFlags> set { ExampleFlags::A, ExampleFlags::B }; |
|
|
60 |
EXPECT_FALSE(set.isEmpty()); |
| 57 |
EXPECT_TRUE(set.contains(ExampleFlags::A)); |
61 |
EXPECT_TRUE(set.contains(ExampleFlags::A)); |
| 58 |
EXPECT_TRUE(set.contains(ExampleFlags::B)); |
62 |
EXPECT_TRUE(set.contains(ExampleFlags::B)); |
| 59 |
EXPECT_FALSE(set.contains(ExampleFlags::C)); |
63 |
EXPECT_FALSE(set.contains(ExampleFlags::C)); |
|
Lines 71-81
TEST(WTF_OptionSet, OperatorBitwiseOr)
a/Tools/TestWebKitAPI/Tests/WTF/OptionSet.cpp_sec5
|
| 71 |
TEST(WTF_OptionSet, EmptyOptionSetToRawValueToOptionSet) |
75 |
TEST(WTF_OptionSet, EmptyOptionSetToRawValueToOptionSet) |
| 72 |
{ |
76 |
{ |
| 73 |
OptionSet<ExampleFlags> set; |
77 |
OptionSet<ExampleFlags> set; |
|
|
78 |
EXPECT_TRUE(set.isEmpty()); |
| 74 |
EXPECT_FALSE(set.contains(ExampleFlags::A)); |
79 |
EXPECT_FALSE(set.contains(ExampleFlags::A)); |
| 75 |
EXPECT_FALSE(set.contains(ExampleFlags::B)); |
80 |
EXPECT_FALSE(set.contains(ExampleFlags::B)); |
| 76 |
EXPECT_FALSE(set.contains(ExampleFlags::C)); |
81 |
EXPECT_FALSE(set.contains(ExampleFlags::C)); |
| 77 |
|
82 |
|
| 78 |
auto set2 = OptionSet<ExampleFlags>::fromRaw(set.toRaw()); |
83 |
auto set2 = OptionSet<ExampleFlags>::fromRaw(set.toRaw()); |
|
|
84 |
EXPECT_TRUE(set2.isEmpty()); |
| 79 |
EXPECT_FALSE(set2.contains(ExampleFlags::A)); |
85 |
EXPECT_FALSE(set2.contains(ExampleFlags::A)); |
| 80 |
EXPECT_FALSE(set2.contains(ExampleFlags::B)); |
86 |
EXPECT_FALSE(set2.contains(ExampleFlags::B)); |
| 81 |
EXPECT_FALSE(set2.contains(ExampleFlags::C)); |
87 |
EXPECT_FALSE(set2.contains(ExampleFlags::C)); |
|
Lines 84-94
TEST(WTF_OptionSet, EmptyOptionSetToRawValueToOptionSet)
a/Tools/TestWebKitAPI/Tests/WTF/OptionSet.cpp_sec6
|
| 84 |
TEST(WTF_OptionSet, OptionSetThatContainsOneFlagToRawValueToOptionSet) |
90 |
TEST(WTF_OptionSet, OptionSetThatContainsOneFlagToRawValueToOptionSet) |
| 85 |
{ |
91 |
{ |
| 86 |
OptionSet<ExampleFlags> set = ExampleFlags::A; |
92 |
OptionSet<ExampleFlags> set = ExampleFlags::A; |
|
|
93 |
EXPECT_FALSE(set.isEmpty()); |
| 87 |
EXPECT_TRUE(set.contains(ExampleFlags::A)); |
94 |
EXPECT_TRUE(set.contains(ExampleFlags::A)); |
| 88 |
EXPECT_FALSE(set.contains(ExampleFlags::B)); |
95 |
EXPECT_FALSE(set.contains(ExampleFlags::B)); |
| 89 |
EXPECT_FALSE(set.contains(ExampleFlags::C)); |
96 |
EXPECT_FALSE(set.contains(ExampleFlags::C)); |
| 90 |
|
97 |
|
| 91 |
auto set2 = OptionSet<ExampleFlags>::fromRaw(set.toRaw()); |
98 |
auto set2 = OptionSet<ExampleFlags>::fromRaw(set.toRaw()); |
|
|
99 |
EXPECT_FALSE(set2.isEmpty()); |
| 92 |
EXPECT_TRUE(set2.contains(ExampleFlags::A)); |
100 |
EXPECT_TRUE(set2.contains(ExampleFlags::A)); |
| 93 |
EXPECT_FALSE(set2.contains(ExampleFlags::B)); |
101 |
EXPECT_FALSE(set2.contains(ExampleFlags::B)); |
| 94 |
EXPECT_FALSE(set2.contains(ExampleFlags::C)); |
102 |
EXPECT_FALSE(set2.contains(ExampleFlags::C)); |
|
Lines 97-110
TEST(WTF_OptionSet, OptionSetThatContainsOneFlagToRawValueToOptionSet)
a/Tools/TestWebKitAPI/Tests/WTF/OptionSet.cpp_sec7
|
| 97 |
TEST(WTF_OptionSet, OptionSetThatContainsTwoFlagsToRawValueToOptionSet) |
105 |
TEST(WTF_OptionSet, OptionSetThatContainsTwoFlagsToRawValueToOptionSet) |
| 98 |
{ |
106 |
{ |
| 99 |
OptionSet<ExampleFlags> set { ExampleFlags::A, ExampleFlags::C }; |
107 |
OptionSet<ExampleFlags> set { ExampleFlags::A, ExampleFlags::C }; |
|
|
108 |
EXPECT_FALSE(set.isEmpty()); |
| 100 |
EXPECT_TRUE(set.contains(ExampleFlags::A)); |
109 |
EXPECT_TRUE(set.contains(ExampleFlags::A)); |
| 101 |
EXPECT_TRUE(set.contains(ExampleFlags::C)); |
110 |
EXPECT_TRUE(set.contains(ExampleFlags::C)); |
| 102 |
EXPECT_FALSE(set.contains(ExampleFlags::B)); |
111 |
EXPECT_FALSE(set.contains(ExampleFlags::B)); |
| 103 |
|
112 |
|
| 104 |
auto set2 = OptionSet<ExampleFlags>::fromRaw(set.toRaw()); |
113 |
auto set2 = OptionSet<ExampleFlags>::fromRaw(set.toRaw()); |
|
|
114 |
EXPECT_FALSE(set2.isEmpty()); |
| 105 |
EXPECT_TRUE(set2.contains(ExampleFlags::A)); |
115 |
EXPECT_TRUE(set2.contains(ExampleFlags::A)); |
| 106 |
EXPECT_TRUE(set2.contains(ExampleFlags::C)); |
116 |
EXPECT_TRUE(set2.contains(ExampleFlags::C)); |
| 107 |
EXPECT_FALSE(set2.contains(ExampleFlags::B)); |
117 |
EXPECT_FALSE(set2.contains(ExampleFlags::B)); |
| 108 |
} |
118 |
} |
| 109 |
|
119 |
|
|
|
120 |
TEST(WTF_OptionSet, TwoIteratorsIntoSameOptionSet) |
| 121 |
{ |
| 122 |
OptionSet<ExampleFlags> set { ExampleFlags::C, ExampleFlags::B }; |
| 123 |
OptionSet<ExampleFlags>::iterator it1 = set.begin(); |
| 124 |
OptionSet<ExampleFlags>::iterator it2 = it1; |
| 125 |
++it1; |
| 126 |
EXPECT_STRONG_ENUM_EQ(ExampleFlags::C, *it1); |
| 127 |
EXPECT_STRONG_ENUM_EQ(ExampleFlags::B, *it2); |
| 128 |
} |
| 129 |
|
| 130 |
TEST(WTF_OptionSet, IterateOverOptionSetThatContainsTwoFlags) |
| 131 |
{ |
| 132 |
OptionSet<ExampleFlags> set { ExampleFlags::A, ExampleFlags::C }; |
| 133 |
OptionSet<ExampleFlags>::iterator it = set.begin(); |
| 134 |
OptionSet<ExampleFlags>::iterator end = set.end(); |
| 135 |
EXPECT_TRUE(it != end); |
| 136 |
EXPECT_STRONG_ENUM_EQ(ExampleFlags::A, *it); |
| 137 |
++it; |
| 138 |
EXPECT_STRONG_ENUM_EQ(ExampleFlags::C, *it); |
| 139 |
++it; |
| 140 |
EXPECT_TRUE(it == end); |
| 141 |
} |
| 142 |
|
| 143 |
TEST(WTF_OptionSet, IterationOrderTheSameRegardlessOfInsertionOrder) |
| 144 |
{ |
| 145 |
OptionSet<ExampleFlags> set1 = ExampleFlags::C; |
| 146 |
set1 |= ExampleFlags::A; |
| 147 |
|
| 148 |
OptionSet<ExampleFlags> set2 = ExampleFlags::A; |
| 149 |
set2 |= ExampleFlags::C; |
| 150 |
|
| 151 |
OptionSet<ExampleFlags>::iterator it1 = set1.begin(); |
| 152 |
OptionSet<ExampleFlags>::iterator it2 = set2.begin(); |
| 153 |
|
| 154 |
EXPECT_TRUE(*it1 == *it2); |
| 155 |
++it1; |
| 156 |
++it2; |
| 157 |
EXPECT_TRUE(*it1 == *it2); |
| 158 |
} |
| 159 |
|
| 110 |
} // namespace TestWebKitAPI |
160 |
} // namespace TestWebKitAPI |