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

Side by Side Diff: base/memory/scoped_ptr_unittest.cc

Issue 1548273002: Remove Pass() on Linux. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert Android for now Created 4 years, 11 months 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 | « no previous file | base/move.h » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <sstream> 9 #include <sstream>
10 10
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/callback.h" 12 #include "base/callback.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "build/build_config.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 16
16 namespace { 17 namespace {
17 18
18 // Used to test depth subtyping. 19 // Used to test depth subtyping.
19 class ConDecLoggerParent { 20 class ConDecLoggerParent {
20 public: 21 public:
21 virtual ~ConDecLoggerParent() {} 22 virtual ~ConDecLoggerParent() {}
22 23
23 virtual void SetPtr(int* ptr) = 0; 24 virtual void SetPtr(int* ptr) = 0;
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 395
395 // Test moving with assignment; 396 // Test moving with assignment;
396 scoped_ptr<ConDecLogger> scoper3; 397 scoped_ptr<ConDecLogger> scoper3;
397 scoper3 = std::move(scoper2); 398 scoper3 = std::move(scoper2);
398 EXPECT_EQ(1, constructed); 399 EXPECT_EQ(1, constructed);
399 EXPECT_FALSE(scoper.get()); 400 EXPECT_FALSE(scoper.get());
400 EXPECT_FALSE(scoper2.get()); 401 EXPECT_FALSE(scoper2.get());
401 EXPECT_TRUE(scoper3.get()); 402 EXPECT_TRUE(scoper3.get());
402 } 403 }
403 404
405 #if !(defined(OS_LINUX) && !defined(OS_CHROMEOS))
404 // Test uncaught Pass() does not have side effects, because Pass() 406 // Test uncaught Pass() does not have side effects, because Pass()
405 // is implemented by std::move(). 407 // is implemented by std::move().
406 // TODO(danakj): Remove this test case when we remove Pass(). 408 // TODO(danakj): Remove this test case when we remove Pass().
407 { 409 {
408 ConDecLogger* logger = new ConDecLogger(&constructed); 410 ConDecLogger* logger = new ConDecLogger(&constructed);
409 scoped_ptr<ConDecLogger> scoper(logger); 411 scoped_ptr<ConDecLogger> scoper(logger);
410 EXPECT_EQ(1, constructed); 412 EXPECT_EQ(1, constructed);
411 413
412 // Should auto-destruct logger by end of scope. 414 // Should auto-destruct logger by end of scope.
413 scoped_ptr<ConDecLogger>&& rvalue = scoper.Pass(); 415 scoped_ptr<ConDecLogger>&& rvalue = scoper.Pass();
414 // The Pass() function mimics std::move(), which does not have side-effects. 416 // The Pass() function mimics std::move(), which does not have side-effects.
415 EXPECT_TRUE(scoper.get()); 417 EXPECT_TRUE(scoper.get());
416 EXPECT_TRUE(rvalue); 418 EXPECT_TRUE(rvalue);
417 } 419 }
418 EXPECT_EQ(0, constructed); 420 EXPECT_EQ(0, constructed);
421 #endif
419 422
420 // Test that passing to function which does nothing does not leak. 423 // Test that passing to function which does nothing does not leak.
421 { 424 {
422 ConDecLogger* logger = new ConDecLogger(&constructed); 425 ConDecLogger* logger = new ConDecLogger(&constructed);
423 scoped_ptr<ConDecLogger> scoper(logger); 426 scoped_ptr<ConDecLogger> scoper(logger);
424 EXPECT_EQ(1, constructed); 427 EXPECT_EQ(1, constructed);
425 428
426 // Should auto-destruct logger by end of scope. 429 // Should auto-destruct logger by end of scope.
427 GrabAndDrop(std::move(scoper)); 430 GrabAndDrop(std::move(scoper));
428 EXPECT_FALSE(scoper.get()); 431 EXPECT_FALSE(scoper.get());
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 EXPECT_FALSE(p < nullptr); 833 EXPECT_FALSE(p < nullptr);
831 EXPECT_TRUE(nullptr < p); 834 EXPECT_TRUE(nullptr < p);
832 EXPECT_FALSE(pnull < nullptr); 835 EXPECT_FALSE(pnull < nullptr);
833 EXPECT_FALSE(nullptr < pnull); 836 EXPECT_FALSE(nullptr < pnull);
834 837
835 EXPECT_FALSE(p <= nullptr); 838 EXPECT_FALSE(p <= nullptr);
836 EXPECT_TRUE(nullptr <= p); 839 EXPECT_TRUE(nullptr <= p);
837 EXPECT_TRUE(pnull <= nullptr); 840 EXPECT_TRUE(pnull <= nullptr);
838 EXPECT_TRUE(nullptr <= pnull); 841 EXPECT_TRUE(nullptr <= pnull);
839 } 842 }
OLDNEW
« no previous file with comments | « no previous file | base/move.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698