More explicit thread checking in SafeBrowsingDatabase.
[chromium-blink-merge.git] / mojo / edk / system / core_test_base.h
blob80a926b6ddc18e2acdc9fd513de8572a0bc16a27
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"
14 namespace mojo {
15 namespace system {
17 class Core;
19 namespace test {
21 class CoreTestBase_MockHandleInfo;
23 class CoreTestBase : public testing::Test {
24 public:
25 typedef CoreTestBase_MockHandleInfo MockHandleInfo;
27 CoreTestBase();
28 ~CoreTestBase() override;
30 void SetUp() override;
31 void TearDown() override;
33 protected:
34 // |info| must remain alive until the returned handle is closed.
35 MojoHandle CreateMockHandle(MockHandleInfo* info);
37 Core* core() { return core_; }
39 private:
40 Core* core_;
42 DISALLOW_COPY_AND_ASSIGN(CoreTestBase);
45 class CoreTestBase_MockHandleInfo {
46 public:
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();
81 private:
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);
101 } // namespace test
102 } // namespace system
103 } // namespace mojo
105 #endif // MOJO_EDK_SYSTEM_CORE_TEST_BASE_H_