| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/id_map.h" | 5 #include "base/id_map.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 | 99 |
| 100 TEST(IDMapTest, IteratorRemainsValidWhenRemovingOtherElements) { | 100 TEST(IDMapTest, IteratorRemainsValidWhenRemovingOtherElements) { |
| 101 IDMap<TestObject*> map; | 101 IDMap<TestObject*> map; |
| 102 | 102 |
| 103 const int kCount = 5; | 103 const int kCount = 5; |
| 104 TestObject obj[kCount]; | 104 TestObject obj[kCount]; |
| 105 | 105 |
| 106 for (int i = 0; i < kCount; i++) | 106 for (int i = 0; i < kCount; i++) |
| 107 map.Add(&obj[i]); | 107 map.Add(&obj[i]); |
| 108 | 108 |
| 109 // IDMap uses a hash_map, which has no predictable iteration order. | 109 // IDMap has no predictable iteration order. |
| 110 int32_t ids_in_iteration_order[kCount]; | 110 int32_t ids_in_iteration_order[kCount]; |
| 111 const TestObject* objs_in_iteration_order[kCount]; | 111 const TestObject* objs_in_iteration_order[kCount]; |
| 112 int counter = 0; | 112 int counter = 0; |
| 113 for (IDMap<TestObject*>::const_iterator iter(&map); !iter.IsAtEnd(); | 113 for (IDMap<TestObject*>::const_iterator iter(&map); !iter.IsAtEnd(); |
| 114 iter.Advance()) { | 114 iter.Advance()) { |
| 115 ids_in_iteration_order[counter] = iter.GetCurrentKey(); | 115 ids_in_iteration_order[counter] = iter.GetCurrentKey(); |
| 116 objs_in_iteration_order[counter] = iter.GetCurrentValue(); | 116 objs_in_iteration_order[counter] = iter.GetCurrentValue(); |
| 117 counter++; | 117 counter++; |
| 118 } | 118 } |
| 119 | 119 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 | 209 |
| 210 TEST(IDMapTest, IteratorRemainsValidWhenClearing) { | 210 TEST(IDMapTest, IteratorRemainsValidWhenClearing) { |
| 211 IDMap<TestObject*> map; | 211 IDMap<TestObject*> map; |
| 212 | 212 |
| 213 const int kCount = 5; | 213 const int kCount = 5; |
| 214 TestObject obj[kCount]; | 214 TestObject obj[kCount]; |
| 215 | 215 |
| 216 for (int i = 0; i < kCount; i++) | 216 for (int i = 0; i < kCount; i++) |
| 217 map.Add(&obj[i]); | 217 map.Add(&obj[i]); |
| 218 | 218 |
| 219 // IDMap uses a hash_map, which has no predictable iteration order. | 219 // IDMap has no predictable iteration order. |
| 220 int32_t ids_in_iteration_order[kCount]; | 220 int32_t ids_in_iteration_order[kCount]; |
| 221 const TestObject* objs_in_iteration_order[kCount]; | 221 const TestObject* objs_in_iteration_order[kCount]; |
| 222 int counter = 0; | 222 int counter = 0; |
| 223 for (IDMap<TestObject*>::const_iterator iter(&map); !iter.IsAtEnd(); | 223 for (IDMap<TestObject*>::const_iterator iter(&map); !iter.IsAtEnd(); |
| 224 iter.Advance()) { | 224 iter.Advance()) { |
| 225 ids_in_iteration_order[counter] = iter.GetCurrentKey(); | 225 ids_in_iteration_order[counter] = iter.GetCurrentKey(); |
| 226 objs_in_iteration_order[counter] = iter.GetCurrentValue(); | 226 objs_in_iteration_order[counter] = iter.GetCurrentValue(); |
| 227 counter++; | 227 counter++; |
| 228 } | 228 } |
| 229 | 229 |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 368 EXPECT_EQ(kId1, iter.GetCurrentKey()); | 368 EXPECT_EQ(kId1, iter.GetCurrentKey()); |
| 369 EXPECT_EQ(&obj1, iter.GetCurrentValue()); | 369 EXPECT_EQ(&obj1, iter.GetCurrentValue()); |
| 370 iter.Advance(); | 370 iter.Advance(); |
| 371 ASSERT_TRUE(iter.IsAtEnd()); | 371 ASSERT_TRUE(iter.IsAtEnd()); |
| 372 | 372 |
| 373 map.Remove(kId1); | 373 map.Remove(kId1); |
| 374 EXPECT_TRUE(map.IsEmpty()); | 374 EXPECT_TRUE(map.IsEmpty()); |
| 375 } | 375 } |
| 376 | 376 |
| 377 } // namespace | 377 } // namespace |
| OLD | NEW |