| 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 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 TEST(WTF_Vector, OwnPtr) | 133 TEST(WTF_Vector, OwnPtr) |
| 134 { | 134 { |
| 135 int destructNumber = 0; | 135 int destructNumber = 0; |
| 136 OwnPtrVector vector; | 136 OwnPtrVector vector; |
| 137 vector.append(adoptPtr(new DestructCounter(0, &destructNumber))); | 137 vector.append(adoptPtr(new DestructCounter(0, &destructNumber))); |
| 138 vector.append(adoptPtr(new DestructCounter(1, &destructNumber))); | 138 vector.append(adoptPtr(new DestructCounter(1, &destructNumber))); |
| 139 ASSERT_EQ(2u, vector.size()); | 139 ASSERT_EQ(2u, vector.size()); |
| 140 | 140 |
| 141 OwnPtr<DestructCounter>& counter0 = vector.first(); | 141 OwnPtr<DestructCounter>& counter0 = vector.first(); |
| 142 ASSERT_EQ(0, counter0->get()); | 142 ASSERT_EQ(0, counter0->get()); |
| 143 OwnPtr<DestructCounter>& counter1 = vector.last(); | 143 int counter1 = vector.last()->get(); |
| 144 ASSERT_EQ(1, counter1->get()); | 144 ASSERT_EQ(1, counter1); |
| 145 ASSERT_EQ(0, destructNumber); | 145 ASSERT_EQ(0, destructNumber); |
| 146 | 146 |
| 147 size_t index = 0; | 147 size_t index = 0; |
| 148 for (OwnPtrVector::iterator iter = vector.begin(); iter != vector.end(); ++i
ter) { | 148 for (OwnPtrVector::iterator iter = vector.begin(); iter != vector.end(); ++i
ter) { |
| 149 OwnPtr<DestructCounter>* refCounter = iter; | 149 OwnPtr<DestructCounter>* refCounter = iter; |
| 150 ASSERT_EQ(index, static_cast<size_t>(refCounter->get()->get())); | 150 ASSERT_EQ(index, static_cast<size_t>(refCounter->get()->get())); |
| 151 ASSERT_EQ(index, static_cast<size_t>((*refCounter)->get())); | 151 ASSERT_EQ(index, static_cast<size_t>((*refCounter)->get())); |
| 152 index++; | 152 index++; |
| 153 } | 153 } |
| 154 ASSERT_EQ(0, destructNumber); | 154 ASSERT_EQ(0, destructNumber); |
| 155 | 155 |
| 156 for (index = 0; index < vector.size(); index++) { | 156 for (index = 0; index < vector.size(); index++) { |
| 157 OwnPtr<DestructCounter>& refCounter = vector[index]; | 157 OwnPtr<DestructCounter>& refCounter = vector[index]; |
| 158 ASSERT_EQ(index, static_cast<size_t>(refCounter->get())); | 158 ASSERT_EQ(index, static_cast<size_t>(refCounter->get())); |
| 159 index++; | 159 index++; |
| 160 } | 160 } |
| 161 ASSERT_EQ(0, destructNumber); | 161 ASSERT_EQ(0, destructNumber); |
| 162 | 162 |
| 163 ASSERT_EQ(0, vector[0]->get()); | 163 ASSERT_EQ(0, vector[0]->get()); |
| 164 ASSERT_EQ(1, vector[1]->get()); | 164 ASSERT_EQ(1, vector[1]->get()); |
| 165 vector.remove(0); | 165 vector.remove(0); |
| 166 ASSERT_EQ(1, vector[0]->get()); | 166 ASSERT_EQ(1, vector[0]->get()); |
| 167 ASSERT_EQ(1u, vector.size()); | 167 ASSERT_EQ(1u, vector.size()); |
| 168 ASSERT_EQ(1, destructNumber); | 168 ASSERT_EQ(1, destructNumber); |
| 169 | 169 |
| 170 OwnPtr<DestructCounter> ownCounter1 = vector[0].release(); | 170 OwnPtr<DestructCounter> ownCounter1 = vector[0].release(); |
| 171 vector.remove(0); | 171 vector.remove(0); |
| 172 ASSERT_EQ(counter1.get(), ownCounter1.get()); | 172 ASSERT_EQ(counter1, ownCounter1->get()); |
| 173 ASSERT_EQ(0u, vector.size()); | 173 ASSERT_EQ(0u, vector.size()); |
| 174 ASSERT_EQ(1, destructNumber); | 174 ASSERT_EQ(1, destructNumber); |
| 175 | 175 |
| 176 ownCounter1.clear(); | 176 ownCounter1.clear(); |
| 177 ASSERT_EQ(2, destructNumber); | 177 ASSERT_EQ(2, destructNumber); |
| 178 | 178 |
| 179 size_t count = 1025; | 179 size_t count = 1025; |
| 180 destructNumber = 0; | 180 destructNumber = 0; |
| 181 for (size_t i = 0; i < count; i++) | 181 for (size_t i = 0; i < count; i++) |
| 182 vector.prepend(adoptPtr(new DestructCounter(i, &destructNumber))); | 182 vector.prepend(adoptPtr(new DestructCounter(i, &destructNumber))); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 EXPECT_EQ(1, vectorA.at(0).get()); | 277 EXPECT_EQ(1, vectorA.at(0).get()); |
| 278 ASSERT_EQ(3u, vectorB.size()); | 278 ASSERT_EQ(3u, vectorB.size()); |
| 279 EXPECT_EQ(2, vectorB.at(0).get()); | 279 EXPECT_EQ(2, vectorB.at(0).get()); |
| 280 EXPECT_EQ(3, vectorB.at(1).get()); | 280 EXPECT_EQ(3, vectorB.at(1).get()); |
| 281 EXPECT_EQ(4, vectorB.at(2).get()); | 281 EXPECT_EQ(4, vectorB.at(2).get()); |
| 282 | 282 |
| 283 vectorB.swap(vectorA); | 283 vectorB.swap(vectorA); |
| 284 } | 284 } |
| 285 | 285 |
| 286 } // namespace | 286 } // namespace |
| OLD | NEW |