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

Side by Side Diff: mojo/public/cpp/system/tests/core_unittest.cc

Issue 1535943002: Convert Pass()→std::move() in //mojo/public/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove self-move checks to avoid triggering clang warning. 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 // This file tests the C++ Mojo system core wrappers. 5 // This file tests the C++ Mojo system core wrappers.
6 // TODO(vtl): Maybe rename "CoreCppTest" -> "CoreTest" if/when this gets 6 // TODO(vtl): Maybe rename "CoreCppTest" -> "CoreTest" if/when this gets
7 // compiled into a different binary from the C API tests. 7 // compiled into a different binary from the C API tests.
8 8
9 #include <stddef.h>
10 #include <map>
11 #include <utility>
12
9 #include "mojo/public/cpp/system/core.h" 13 #include "mojo/public/cpp/system/core.h"
10
11 #include <stddef.h>
12
13 #include <map>
14
15 #include "mojo/public/cpp/system/macros.h" 14 #include "mojo/public/cpp/system/macros.h"
16 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
17 16
18 namespace mojo { 17 namespace mojo {
19 namespace { 18 namespace {
20 19
21 const MojoHandleSignals kSignalReadableWritable = 20 const MojoHandleSignals kSignalReadableWritable =
22 MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE; 21 MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE;
23 22
24 const MojoHandleSignals kSignalAll = MOJO_HANDLE_SIGNAL_READABLE | 23 const MojoHandleSignals kSignalAll = MOJO_HANDLE_SIGNAL_READABLE |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 // how to support the variations of |hash_map|.) 94 // how to support the variations of |hash_map|.)
96 } 95 }
97 96
98 // |Handle|/|ScopedHandle| functions: 97 // |Handle|/|ScopedHandle| functions:
99 { 98 {
100 ScopedHandle h; 99 ScopedHandle h;
101 100
102 EXPECT_EQ(kInvalidHandleValue, h.get().value()); 101 EXPECT_EQ(kInvalidHandleValue, h.get().value());
103 102
104 // This should be a no-op. 103 // This should be a no-op.
105 Close(h.Pass()); 104 Close(std::move(h));
106 105
107 // It should still be invalid. 106 // It should still be invalid.
108 EXPECT_EQ(kInvalidHandleValue, h.get().value()); 107 EXPECT_EQ(kInvalidHandleValue, h.get().value());
109 108
110 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 109 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
111 Wait(h.get(), ~MOJO_HANDLE_SIGNAL_NONE, 1000000, nullptr)); 110 Wait(h.get(), ~MOJO_HANDLE_SIGNAL_NONE, 1000000, nullptr));
112 111
113 std::vector<Handle> wh; 112 std::vector<Handle> wh;
114 wh.push_back(h.get()); 113 wh.push_back(h.get());
115 std::vector<MojoHandleSignals> sigs; 114 std::vector<MojoHandleSignals> sigs;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 EXPECT_EQ(MOJO_RESULT_OK, wait_many_result.result); 204 EXPECT_EQ(MOJO_RESULT_OK, wait_many_result.result);
206 EXPECT_EQ(1u, wait_many_result.index); 205 EXPECT_EQ(1u, wait_many_result.index);
207 EXPECT_TRUE(wait_many_result.IsIndexValid()); 206 EXPECT_TRUE(wait_many_result.IsIndexValid());
208 EXPECT_TRUE(wait_many_result.AreSignalsStatesValid()); 207 EXPECT_TRUE(wait_many_result.AreSignalsStatesValid());
209 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, states[0].satisfied_signals); 208 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, states[0].satisfied_signals);
210 EXPECT_EQ(kSignalAll, states[0].satisfiable_signals); 209 EXPECT_EQ(kSignalAll, states[0].satisfiable_signals);
211 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, states[1].satisfied_signals); 210 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, states[1].satisfied_signals);
212 EXPECT_EQ(kSignalAll, states[1].satisfiable_signals); 211 EXPECT_EQ(kSignalAll, states[1].satisfiable_signals);
213 212
214 // Test closing |h1| explicitly. 213 // Test closing |h1| explicitly.
215 Close(h1.Pass()); 214 Close(std::move(h1));
216 EXPECT_FALSE(h1.get().is_valid()); 215 EXPECT_FALSE(h1.get().is_valid());
217 216
218 // Make sure |h1| is closed. 217 // Make sure |h1| is closed.
219 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 218 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
220 Wait(Handle(hv1), ~MOJO_HANDLE_SIGNAL_NONE, 219 Wait(Handle(hv1), ~MOJO_HANDLE_SIGNAL_NONE,
221 MOJO_DEADLINE_INDEFINITE, nullptr)); 220 MOJO_DEADLINE_INDEFINITE, nullptr));
222 221
223 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, 222 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
224 Wait(h0.get(), MOJO_HANDLE_SIGNAL_READABLE, 223 Wait(h0.get(), MOJO_HANDLE_SIGNAL_READABLE,
225 MOJO_DEADLINE_INDEFINITE, &state)); 224 MOJO_DEADLINE_INDEFINITE, &state));
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 ScopedSharedBufferHandle buffer1; 465 ScopedSharedBufferHandle buffer1;
467 EXPECT_EQ(MOJO_RESULT_OK, CreateSharedBuffer(nullptr, 1024, &buffer1)); 466 EXPECT_EQ(MOJO_RESULT_OK, CreateSharedBuffer(nullptr, 1024, &buffer1));
468 EXPECT_TRUE(buffer1.is_valid()); 467 EXPECT_TRUE(buffer1.is_valid());
469 468
470 ScopedSharedBufferHandle buffer2; 469 ScopedSharedBufferHandle buffer2;
471 EXPECT_EQ(MOJO_RESULT_OK, CreateSharedBuffer(nullptr, 1024, &buffer2)); 470 EXPECT_EQ(MOJO_RESULT_OK, CreateSharedBuffer(nullptr, 1024, &buffer2));
472 EXPECT_TRUE(buffer2.is_valid()); 471 EXPECT_TRUE(buffer2.is_valid());
473 472
474 // If this fails to close buffer1, ScopedHandleBase::CloseIfNecessary() will 473 // If this fails to close buffer1, ScopedHandleBase::CloseIfNecessary() will
475 // assert. 474 // assert.
476 buffer1 = buffer2.Pass(); 475 buffer1 = std::move(buffer2);
477 476
478 EXPECT_TRUE(buffer1.is_valid()); 477 EXPECT_TRUE(buffer1.is_valid());
479 EXPECT_FALSE(buffer2.is_valid()); 478 EXPECT_FALSE(buffer2.is_valid());
480 } 479 }
481 480
482 TEST(CoreCppTest, ScopedHandleMoveCtorSelf) {
483 ScopedSharedBufferHandle buffer1;
484 EXPECT_EQ(MOJO_RESULT_OK, CreateSharedBuffer(nullptr, 1024, &buffer1));
485 EXPECT_TRUE(buffer1.is_valid());
486
487 buffer1 = buffer1.Pass();
dcheng 2015/12/18 09:54:41 Clang has a -Wself-move warning that this triggers
488
489 EXPECT_TRUE(buffer1.is_valid());
490 }
491
492 // TODO(vtl): Write data pipe tests. 481 // TODO(vtl): Write data pipe tests.
493 482
494 } // namespace 483 } // namespace
495 } // namespace mojo 484 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698