|
16 | 16 |
|
17 | 17 | #include <cstddef> |
18 | 18 | #include <functional> |
| 19 | +#include <string_view> |
19 | 20 | #include <type_traits> |
20 | 21 | #include <utility> |
21 | 22 |
|
|
28 | 29 | #include "absl/strings/cord_test_helpers.h" |
29 | 30 | #include "absl/strings/string_view.h" |
30 | 31 |
|
31 | | -#ifdef ABSL_HAVE_STD_STRING_VIEW |
32 | | -#include <string_view> |
33 | | -#endif |
34 | | - |
35 | 32 | namespace absl { |
36 | 33 | ABSL_NAMESPACE_BEGIN |
37 | 34 | namespace container_internal { |
@@ -118,165 +115,117 @@ TYPED_TEST(HashString, Works) { |
118 | 115 | } |
119 | 116 |
|
120 | 117 | TEST(BasicStringViewTest, WStringEqWorks) { |
121 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
122 | | - GTEST_SKIP(); |
123 | | -#else |
124 | 118 | hash_default_eq<std::wstring> eq; |
125 | 119 | EXPECT_TRUE(eq(L"a", L"a")); |
126 | 120 | EXPECT_TRUE(eq(L"a", std::wstring_view(L"a"))); |
127 | 121 | EXPECT_TRUE(eq(L"a", std::wstring(L"a"))); |
128 | 122 | EXPECT_FALSE(eq(L"a", L"b")); |
129 | 123 | EXPECT_FALSE(eq(L"a", std::wstring_view(L"b"))); |
130 | 124 | EXPECT_FALSE(eq(L"a", std::wstring(L"b"))); |
131 | | -#endif |
132 | 125 | } |
133 | 126 |
|
134 | 127 | TEST(BasicStringViewTest, WStringViewEqWorks) { |
135 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
136 | | - GTEST_SKIP(); |
137 | | -#else |
138 | 128 | hash_default_eq<std::wstring_view> eq; |
139 | 129 | EXPECT_TRUE(eq(L"a", L"a")); |
140 | 130 | EXPECT_TRUE(eq(L"a", std::wstring_view(L"a"))); |
141 | 131 | EXPECT_TRUE(eq(L"a", std::wstring(L"a"))); |
142 | 132 | EXPECT_FALSE(eq(L"a", L"b")); |
143 | 133 | EXPECT_FALSE(eq(L"a", std::wstring_view(L"b"))); |
144 | 134 | EXPECT_FALSE(eq(L"a", std::wstring(L"b"))); |
145 | | -#endif |
146 | 135 | } |
147 | 136 |
|
148 | 137 | TEST(BasicStringViewTest, U16StringEqWorks) { |
149 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
150 | | - GTEST_SKIP(); |
151 | | -#else |
152 | 138 | hash_default_eq<std::u16string> eq; |
153 | 139 | EXPECT_TRUE(eq(u"a", u"a")); |
154 | 140 | EXPECT_TRUE(eq(u"a", std::u16string_view(u"a"))); |
155 | 141 | EXPECT_TRUE(eq(u"a", std::u16string(u"a"))); |
156 | 142 | EXPECT_FALSE(eq(u"a", u"b")); |
157 | 143 | EXPECT_FALSE(eq(u"a", std::u16string_view(u"b"))); |
158 | 144 | EXPECT_FALSE(eq(u"a", std::u16string(u"b"))); |
159 | | -#endif |
160 | 145 | } |
161 | 146 |
|
162 | 147 | TEST(BasicStringViewTest, U16StringViewEqWorks) { |
163 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
164 | | - GTEST_SKIP(); |
165 | | -#else |
166 | 148 | hash_default_eq<std::u16string_view> eq; |
167 | 149 | EXPECT_TRUE(eq(u"a", u"a")); |
168 | 150 | EXPECT_TRUE(eq(u"a", std::u16string_view(u"a"))); |
169 | 151 | EXPECT_TRUE(eq(u"a", std::u16string(u"a"))); |
170 | 152 | EXPECT_FALSE(eq(u"a", u"b")); |
171 | 153 | EXPECT_FALSE(eq(u"a", std::u16string_view(u"b"))); |
172 | 154 | EXPECT_FALSE(eq(u"a", std::u16string(u"b"))); |
173 | | -#endif |
174 | 155 | } |
175 | 156 |
|
176 | 157 | TEST(BasicStringViewTest, U32StringEqWorks) { |
177 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
178 | | - GTEST_SKIP(); |
179 | | -#else |
180 | 158 | hash_default_eq<std::u32string> eq; |
181 | 159 | EXPECT_TRUE(eq(U"a", U"a")); |
182 | 160 | EXPECT_TRUE(eq(U"a", std::u32string_view(U"a"))); |
183 | 161 | EXPECT_TRUE(eq(U"a", std::u32string(U"a"))); |
184 | 162 | EXPECT_FALSE(eq(U"a", U"b")); |
185 | 163 | EXPECT_FALSE(eq(U"a", std::u32string_view(U"b"))); |
186 | 164 | EXPECT_FALSE(eq(U"a", std::u32string(U"b"))); |
187 | | -#endif |
188 | 165 | } |
189 | 166 |
|
190 | 167 | TEST(BasicStringViewTest, U32StringViewEqWorks) { |
191 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
192 | | - GTEST_SKIP(); |
193 | | -#else |
194 | 168 | hash_default_eq<std::u32string_view> eq; |
195 | 169 | EXPECT_TRUE(eq(U"a", U"a")); |
196 | 170 | EXPECT_TRUE(eq(U"a", std::u32string_view(U"a"))); |
197 | 171 | EXPECT_TRUE(eq(U"a", std::u32string(U"a"))); |
198 | 172 | EXPECT_FALSE(eq(U"a", U"b")); |
199 | 173 | EXPECT_FALSE(eq(U"a", std::u32string_view(U"b"))); |
200 | 174 | EXPECT_FALSE(eq(U"a", std::u32string(U"b"))); |
201 | | -#endif |
202 | 175 | } |
203 | 176 |
|
204 | 177 | TEST(BasicStringViewTest, WStringHashWorks) { |
205 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
206 | | - GTEST_SKIP(); |
207 | | -#else |
208 | 178 | hash_default_hash<std::wstring> hash; |
209 | 179 | auto h = hash(L"a"); |
210 | 180 | EXPECT_EQ(h, hash(std::wstring_view(L"a"))); |
211 | 181 | EXPECT_EQ(h, hash(std::wstring(L"a"))); |
212 | 182 | EXPECT_NE(h, hash(std::wstring_view(L"b"))); |
213 | 183 | EXPECT_NE(h, hash(std::wstring(L"b"))); |
214 | | -#endif |
215 | 184 | } |
216 | 185 |
|
217 | 186 | TEST(BasicStringViewTest, WStringViewHashWorks) { |
218 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
219 | | - GTEST_SKIP(); |
220 | | -#else |
221 | 187 | hash_default_hash<std::wstring_view> hash; |
222 | 188 | auto h = hash(L"a"); |
223 | 189 | EXPECT_EQ(h, hash(std::wstring_view(L"a"))); |
224 | 190 | EXPECT_EQ(h, hash(std::wstring(L"a"))); |
225 | 191 | EXPECT_NE(h, hash(std::wstring_view(L"b"))); |
226 | 192 | EXPECT_NE(h, hash(std::wstring(L"b"))); |
227 | | -#endif |
228 | 193 | } |
229 | 194 |
|
230 | 195 | TEST(BasicStringViewTest, U16StringHashWorks) { |
231 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
232 | | - GTEST_SKIP(); |
233 | | -#else |
234 | 196 | hash_default_hash<std::u16string> hash; |
235 | 197 | auto h = hash(u"a"); |
236 | 198 | EXPECT_EQ(h, hash(std::u16string_view(u"a"))); |
237 | 199 | EXPECT_EQ(h, hash(std::u16string(u"a"))); |
238 | 200 | EXPECT_NE(h, hash(std::u16string_view(u"b"))); |
239 | 201 | EXPECT_NE(h, hash(std::u16string(u"b"))); |
240 | | -#endif |
241 | 202 | } |
242 | 203 |
|
243 | 204 | TEST(BasicStringViewTest, U16StringViewHashWorks) { |
244 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
245 | | - GTEST_SKIP(); |
246 | | -#else |
247 | 205 | hash_default_hash<std::u16string_view> hash; |
248 | 206 | auto h = hash(u"a"); |
249 | 207 | EXPECT_EQ(h, hash(std::u16string_view(u"a"))); |
250 | 208 | EXPECT_EQ(h, hash(std::u16string(u"a"))); |
251 | 209 | EXPECT_NE(h, hash(std::u16string_view(u"b"))); |
252 | 210 | EXPECT_NE(h, hash(std::u16string(u"b"))); |
253 | | -#endif |
254 | 211 | } |
255 | 212 |
|
256 | 213 | TEST(BasicStringViewTest, U32StringHashWorks) { |
257 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
258 | | - GTEST_SKIP(); |
259 | | -#else |
260 | 214 | hash_default_hash<std::u32string> hash; |
261 | 215 | auto h = hash(U"a"); |
262 | 216 | EXPECT_EQ(h, hash(std::u32string_view(U"a"))); |
263 | 217 | EXPECT_EQ(h, hash(std::u32string(U"a"))); |
264 | 218 | EXPECT_NE(h, hash(std::u32string_view(U"b"))); |
265 | 219 | EXPECT_NE(h, hash(std::u32string(U"b"))); |
266 | | -#endif |
267 | 220 | } |
268 | 221 |
|
269 | 222 | TEST(BasicStringViewTest, U32StringViewHashWorks) { |
270 | | -#ifndef ABSL_HAVE_STD_STRING_VIEW |
271 | | - GTEST_SKIP(); |
272 | | -#else |
273 | 223 | hash_default_hash<std::u32string_view> hash; |
274 | 224 | auto h = hash(U"a"); |
275 | 225 | EXPECT_EQ(h, hash(std::u32string_view(U"a"))); |
276 | 226 | EXPECT_EQ(h, hash(std::u32string(U"a"))); |
277 | 227 | EXPECT_NE(h, hash(std::u32string_view(U"b"))); |
278 | 228 | EXPECT_NE(h, hash(std::u32string(U"b"))); |
279 | | -#endif |
280 | 229 | } |
281 | 230 |
|
282 | 231 | struct NoDeleter { |
|
0 commit comments