Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(261)

Side by Side Diff: base/containers/scoped_ptr_map_unittest.cc

Issue 1479473002: base: Use std::move() instead of Pass() for real movable types. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: basepass: missing-include Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/containers/scoped_ptr_map.h ('k') | base/environment.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/containers/scoped_ptr_map.h" 5 #include "base/containers/scoped_ptr_map.h"
6 6
7 #include <functional> 7 #include <functional>
8 #include <map> 8 #include <map>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 scoped_map1.insert(0, make_scoped_ptr(new int(0))); 160 scoped_map1.insert(0, make_scoped_ptr(new int(0)));
161 scoped_map1.insert(1, make_scoped_ptr(new int(0))); 161 scoped_map1.insert(1, make_scoped_ptr(new int(0)));
162 162
163 auto it = scoped_map1.begin(); 163 auto it = scoped_map1.begin();
164 EXPECT_EQ(1, it->first); 164 EXPECT_EQ(1, it->first);
165 ++it; 165 ++it;
166 EXPECT_EQ(0, it->first); 166 EXPECT_EQ(0, it->first);
167 167
168 // Test the move constructor. 168 // Test the move constructor.
169 ScopedPtrMap<int, scoped_ptr<int>, std::greater<int>> scoped_map2( 169 ScopedPtrMap<int, scoped_ptr<int>, std::greater<int>> scoped_map2(
170 scoped_map1.Pass()); 170 std::move(scoped_map1));
171 EXPECT_EQ(2u, scoped_map2.size()); 171 EXPECT_EQ(2u, scoped_map2.size());
172 EXPECT_TRUE(scoped_map1.empty()); 172 EXPECT_TRUE(scoped_map1.empty());
173 173
174 // Test move assignment. 174 // Test move assignment.
175 scoped_map1 = scoped_map2.Pass(); 175 scoped_map1 = std::move(scoped_map2);
176 EXPECT_EQ(2u, scoped_map1.size()); 176 EXPECT_EQ(2u, scoped_map1.size());
177 EXPECT_TRUE(scoped_map2.empty()); 177 EXPECT_TRUE(scoped_map2.empty());
178 178
179 // Test swap. 179 // Test swap.
180 scoped_map2.swap(scoped_map1); 180 scoped_map2.swap(scoped_map1);
181 EXPECT_EQ(2u, scoped_map2.size()); 181 EXPECT_EQ(2u, scoped_map2.size());
182 EXPECT_TRUE(scoped_map1.empty()); 182 EXPECT_TRUE(scoped_map1.empty());
183 } 183 }
184 184
185 TEST(ScopedPtrMapTest, Scope) { 185 TEST(ScopedPtrMapTest, Scope) {
(...skipping 10 matching lines...) Expand all
196 bool destroyed = false; 196 bool destroyed = false;
197 { 197 {
198 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map; 198 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
199 ScopedDestroyer* elem = new ScopedDestroyer(&destroyed); 199 ScopedDestroyer* elem = new ScopedDestroyer(&destroyed);
200 scoped_map.insert(0, make_scoped_ptr(elem)); 200 scoped_map.insert(0, make_scoped_ptr(elem));
201 EXPECT_EQ(elem, scoped_map.find(0)->second); 201 EXPECT_EQ(elem, scoped_map.find(0)->second);
202 EXPECT_FALSE(destroyed); 202 EXPECT_FALSE(destroyed);
203 EXPECT_FALSE(scoped_map.empty()); 203 EXPECT_FALSE(scoped_map.empty());
204 204
205 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map_copy( 205 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map_copy(
206 scoped_map.Pass()); 206 std::move(scoped_map));
207 EXPECT_TRUE(scoped_map.empty()); 207 EXPECT_TRUE(scoped_map.empty());
208 EXPECT_FALSE(scoped_map_copy.empty()); 208 EXPECT_FALSE(scoped_map_copy.empty());
209 EXPECT_EQ(elem, scoped_map_copy.find(0)->second); 209 EXPECT_EQ(elem, scoped_map_copy.find(0)->second);
210 EXPECT_FALSE(destroyed); 210 EXPECT_FALSE(destroyed);
211 } 211 }
212 EXPECT_TRUE(destroyed); 212 EXPECT_TRUE(destroyed);
213 } 213 }
214 214
215 TEST(ScopedPtrMapTest, MoveAssign) { 215 TEST(ScopedPtrMapTest, MoveAssign) {
216 bool destroyed = false; 216 bool destroyed = false;
217 { 217 {
218 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map; 218 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
219 ScopedDestroyer* elem = new ScopedDestroyer(&destroyed); 219 ScopedDestroyer* elem = new ScopedDestroyer(&destroyed);
220 scoped_map.insert(0, make_scoped_ptr(elem)); 220 scoped_map.insert(0, make_scoped_ptr(elem));
221 EXPECT_EQ(elem, scoped_map.find(0)->second); 221 EXPECT_EQ(elem, scoped_map.find(0)->second);
222 EXPECT_FALSE(destroyed); 222 EXPECT_FALSE(destroyed);
223 EXPECT_FALSE(scoped_map.empty()); 223 EXPECT_FALSE(scoped_map.empty());
224 224
225 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map_assign; 225 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map_assign;
226 scoped_map_assign = scoped_map.Pass(); 226 scoped_map_assign = std::move(scoped_map);
227 EXPECT_TRUE(scoped_map.empty()); 227 EXPECT_TRUE(scoped_map.empty());
228 EXPECT_FALSE(scoped_map_assign.empty()); 228 EXPECT_FALSE(scoped_map_assign.empty());
229 EXPECT_EQ(elem, scoped_map_assign.find(0)->second); 229 EXPECT_EQ(elem, scoped_map_assign.find(0)->second);
230 EXPECT_FALSE(destroyed); 230 EXPECT_FALSE(destroyed);
231 } 231 }
232 EXPECT_TRUE(destroyed); 232 EXPECT_TRUE(destroyed);
233 } 233 }
234 234
235 template <typename Key, typename ScopedPtr> 235 template <typename Key, typename ScopedPtr>
236 ScopedPtrMap<Key, ScopedPtr> PassThru(ScopedPtrMap<Key, ScopedPtr> scoper) { 236 ScopedPtrMap<Key, ScopedPtr> PassThru(ScopedPtrMap<Key, ScopedPtr> scoper) {
(...skipping 26 matching lines...) Expand all
263 // Test that using a value type from a namespace containing an ignore_result 263 // Test that using a value type from a namespace containing an ignore_result
264 // function compiles correctly. 264 // function compiles correctly.
265 TEST(ScopedPtrMapTest, IgnoreResultCompile) { 265 TEST(ScopedPtrMapTest, IgnoreResultCompile) {
266 ScopedPtrMap<int, scoped_ptr<namespace_with_ignore_result::Value>> scoped_map; 266 ScopedPtrMap<int, scoped_ptr<namespace_with_ignore_result::Value>> scoped_map;
267 scoped_map.insert(1, 267 scoped_map.insert(1,
268 make_scoped_ptr(new namespace_with_ignore_result::Value)); 268 make_scoped_ptr(new namespace_with_ignore_result::Value));
269 } 269 }
270 270
271 } // namespace 271 } // namespace
272 } // namespace base 272 } // namespace base
OLDNEW
« no previous file with comments | « base/containers/scoped_ptr_map.h ('k') | base/environment.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698