OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 EXPECT_EQ(3u, vectorB.size()); | 279 EXPECT_EQ(3u, vectorB.size()); |
280 EXPECT_EQ(2, vectorB.at(0).get()); | 280 EXPECT_EQ(2, vectorB.at(0).get()); |
281 EXPECT_EQ(3, vectorB.at(1).get()); | 281 EXPECT_EQ(3, vectorB.at(1).get()); |
282 EXPECT_EQ(4, vectorB.at(2).get()); | 282 EXPECT_EQ(4, vectorB.at(2).get()); |
283 | 283 |
284 vectorB.swap(vectorA); | 284 vectorB.swap(vectorA); |
285 } | 285 } |
286 | 286 |
287 class Comparable { | 287 class Comparable { |
288 }; | 288 }; |
289 bool operator==(const Comparable& a, const Comparable& b) { return true; } | |
290 | 289 |
291 template<typename T> void compare() | 290 template<typename T> void compare() |
292 { | 291 { |
293 EXPECT_TRUE(Vector<T>() == Vector<T>()); | 292 EXPECT_TRUE(Vector<T>() == Vector<T>()); |
294 EXPECT_FALSE(Vector<T>(1) == Vector<T>(0)); | 293 EXPECT_FALSE(Vector<T>(1) == Vector<T>(0)); |
295 EXPECT_FALSE(Vector<T>() == Vector<T>(1)); | 294 EXPECT_FALSE(Vector<T>() == Vector<T>(1)); |
296 EXPECT_TRUE(Vector<T>(1) == Vector<T>(1)); | 295 EXPECT_TRUE(Vector<T>(1) == Vector<T>(1)); |
297 } | 296 } |
298 | 297 |
299 TEST(VectorTest, Compare) | 298 TEST(VectorTest, Compare) |
300 { | 299 { |
301 compare<int>(); | 300 compare<int>(); |
302 compare<Comparable>(); | 301 compare<Comparable>(); |
303 compare<WTF::String>(); | 302 compare<WTF::String>(); |
304 } | 303 } |
| 304 |
| 305 class PODTest { |
| 306 public: |
| 307 Comparable m_struct; |
| 308 WTF::WeakHandlingFlag m_enum; |
| 309 }; |
| 310 |
| 311 TEST(VectorTest, Traits) |
| 312 { |
| 313 // FIXME: expand, test more types. |
| 314 COMPILE_ASSERT(!WTF::VectorTraits<PODTest>::needsDestruction, ExpectedToHave
ATrivialDestructor); |
| 315 COMPILE_ASSERT(WTF::VectorTraits<PODTest>::canInitializeWithMemset, Expected
ToBeInitializableWithMemset); |
| 316 } |
| 317 |
305 } // namespace | 318 } // namespace |
OLD | NEW |