core_test_base.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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.
  4. #ifndef MOJO_CORE_CORE_TEST_BASE_H_
  5. #define MOJO_CORE_CORE_TEST_BASE_H_
  6. #include <stddef.h>
  7. #include "base/synchronization/lock.h"
  8. #include "mojo/public/c/system/types.h"
  9. #include "testing/gtest/include/gtest/gtest.h"
  10. namespace mojo {
  11. namespace core {
  12. class Core;
  13. namespace test {
  14. class CoreTestBase_MockHandleInfo;
  15. class CoreTestBase : public testing::Test {
  16. public:
  17. using MockHandleInfo = CoreTestBase_MockHandleInfo;
  18. CoreTestBase();
  19. CoreTestBase(const CoreTestBase&) = delete;
  20. CoreTestBase& operator=(const CoreTestBase&) = delete;
  21. ~CoreTestBase() override;
  22. protected:
  23. // |info| must remain alive until the returned handle is closed.
  24. MojoHandle CreateMockHandle(MockHandleInfo* info);
  25. Core* core();
  26. };
  27. class CoreTestBase_MockHandleInfo {
  28. public:
  29. CoreTestBase_MockHandleInfo();
  30. CoreTestBase_MockHandleInfo(const CoreTestBase_MockHandleInfo&) = delete;
  31. CoreTestBase_MockHandleInfo& operator=(const CoreTestBase_MockHandleInfo&) =
  32. delete;
  33. ~CoreTestBase_MockHandleInfo();
  34. unsigned GetCtorCallCount() const;
  35. unsigned GetDtorCallCount() const;
  36. unsigned GetCloseCallCount() const;
  37. unsigned GetWriteMessageCallCount() const;
  38. unsigned GetReadMessageCallCount() const;
  39. unsigned GetWriteDataCallCount() const;
  40. unsigned GetBeginWriteDataCallCount() const;
  41. unsigned GetEndWriteDataCallCount() const;
  42. unsigned GetReadDataCallCount() const;
  43. unsigned GetBeginReadDataCallCount() const;
  44. unsigned GetEndReadDataCallCount() const;
  45. // For use by |MockDispatcher|:
  46. void IncrementCtorCallCount();
  47. void IncrementDtorCallCount();
  48. void IncrementCloseCallCount();
  49. void IncrementWriteMessageCallCount();
  50. void IncrementReadMessageCallCount();
  51. void IncrementWriteDataCallCount();
  52. void IncrementBeginWriteDataCallCount();
  53. void IncrementEndWriteDataCallCount();
  54. void IncrementReadDataCallCount();
  55. void IncrementBeginReadDataCallCount();
  56. void IncrementEndReadDataCallCount();
  57. private:
  58. mutable base::Lock lock_; // Protects the following members.
  59. unsigned ctor_call_count_;
  60. unsigned dtor_call_count_;
  61. unsigned close_call_count_;
  62. unsigned write_message_call_count_;
  63. unsigned read_message_call_count_;
  64. unsigned write_data_call_count_;
  65. unsigned begin_write_data_call_count_;
  66. unsigned end_write_data_call_count_;
  67. unsigned read_data_call_count_;
  68. unsigned begin_read_data_call_count_;
  69. unsigned end_read_data_call_count_;
  70. };
  71. } // namespace test
  72. } // namespace core
  73. } // namespace mojo
  74. #endif // MOJO_CORE_CORE_TEST_BASE_H_