1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef MOJO_EDK_SYSTEM_CORE_TEST_BASE_H_
6 #define MOJO_EDK_SYSTEM_CORE_TEST_BASE_H_
8 #include "base/compiler_specific.h"
9 #include "base/macros.h"
10 #include "base/synchronization/lock.h"
11 #include "mojo/public/c/system/types.h"
12 #include "testing/gtest/include/gtest/gtest.h"
21 class CoreTestBase_MockHandleInfo
;
23 class CoreTestBase
: public testing::Test
{
25 typedef CoreTestBase_MockHandleInfo MockHandleInfo
;
28 ~CoreTestBase() override
;
30 void SetUp() override
;
31 void TearDown() override
;
34 // |info| must remain alive until the returned handle is closed.
35 MojoHandle
CreateMockHandle(MockHandleInfo
* info
);
37 Core
* core() { return core_
; }
42 DISALLOW_COPY_AND_ASSIGN(CoreTestBase
);
45 class CoreTestBase_MockHandleInfo
{
47 CoreTestBase_MockHandleInfo();
48 ~CoreTestBase_MockHandleInfo();
50 unsigned GetCtorCallCount() const;
51 unsigned GetDtorCallCount() const;
52 unsigned GetCloseCallCount() const;
53 unsigned GetWriteMessageCallCount() const;
54 unsigned GetReadMessageCallCount() const;
55 unsigned GetWriteDataCallCount() const;
56 unsigned GetBeginWriteDataCallCount() const;
57 unsigned GetEndWriteDataCallCount() const;
58 unsigned GetReadDataCallCount() const;
59 unsigned GetBeginReadDataCallCount() const;
60 unsigned GetEndReadDataCallCount() const;
61 unsigned GetAddAwakableCallCount() const;
62 unsigned GetRemoveAwakableCallCount() const;
63 unsigned GetCancelAllAwakablesCallCount() const;
65 // For use by |MockDispatcher|:
66 void IncrementCtorCallCount();
67 void IncrementDtorCallCount();
68 void IncrementCloseCallCount();
69 void IncrementWriteMessageCallCount();
70 void IncrementReadMessageCallCount();
71 void IncrementWriteDataCallCount();
72 void IncrementBeginWriteDataCallCount();
73 void IncrementEndWriteDataCallCount();
74 void IncrementReadDataCallCount();
75 void IncrementBeginReadDataCallCount();
76 void IncrementEndReadDataCallCount();
77 void IncrementAddAwakableCallCount();
78 void IncrementRemoveAwakableCallCount();
79 void IncrementCancelAllAwakablesCallCount();
82 mutable base::Lock lock_
; // Protects the following members.
83 unsigned ctor_call_count_
;
84 unsigned dtor_call_count_
;
85 unsigned close_call_count_
;
86 unsigned write_message_call_count_
;
87 unsigned read_message_call_count_
;
88 unsigned write_data_call_count_
;
89 unsigned begin_write_data_call_count_
;
90 unsigned end_write_data_call_count_
;
91 unsigned read_data_call_count_
;
92 unsigned begin_read_data_call_count_
;
93 unsigned end_read_data_call_count_
;
94 unsigned add_awakable_call_count_
;
95 unsigned remove_awakable_call_count_
;
96 unsigned cancel_all_awakables_call_count_
;
98 DISALLOW_COPY_AND_ASSIGN(CoreTestBase_MockHandleInfo
);
102 } // namespace system
105 #endif // MOJO_EDK_SYSTEM_CORE_TEST_BASE_H_