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
3 // found in the LICENSE file.
5 #ifndef UI_OZONE_PLATFORM_DRI_TEST_MOCK_DRI_WRAPPER_H_
6 #define UI_OZONE_PLATFORM_DRI_TEST_MOCK_DRI_WRAPPER_H_
11 #include "skia/ext/refptr.h"
12 #include "third_party/skia/include/core/SkSurface.h"
13 #include "ui/ozone/platform/dri/dri_wrapper.h"
17 class HardwareDisplayController;
19 // The real DriWrapper makes actual DRM calls which we can't use in unit tests.
20 class MockDriWrapper : public ui::DriWrapper {
22 MockDriWrapper(int fd);
23 virtual ~MockDriWrapper();
25 int get_get_crtc_call_count() const { return get_crtc_call_count_; }
26 int get_set_crtc_call_count() const { return set_crtc_call_count_; }
27 int get_restore_crtc_call_count() const { return restore_crtc_call_count_; }
28 int get_add_framebuffer_call_count() const {
29 return add_framebuffer_call_count_;
31 int get_remove_framebuffer_call_count() const {
32 return remove_framebuffer_call_count_;
34 int get_page_flip_call_count() const { return page_flip_call_count_; }
35 int get_overlay_flip_call_count() const { return overlay_flip_call_count_; }
36 void fail_init() { fd_ = -1; }
37 void set_set_crtc_expectation(bool state) { set_crtc_expectation_ = state; }
38 void set_page_flip_expectation(bool state) { page_flip_expectation_ = state; }
39 void set_add_framebuffer_expectation(bool state) {
40 add_framebuffer_expectation_ = state;
42 void set_create_dumb_buffer_expectation(bool state) {
43 create_dumb_buffer_expectation_ = state;
46 uint32_t current_framebuffer() const { return current_framebuffer_; }
48 const std::vector<skia::RefPtr<SkSurface> > buffers() const {
53 virtual ScopedDrmCrtcPtr GetCrtc(uint32_t crtc_id) OVERRIDE;
54 virtual bool SetCrtc(uint32_t crtc_id,
56 std::vector<uint32_t> connectors,
57 drmModeModeInfo* mode) OVERRIDE;
58 virtual bool SetCrtc(drmModeCrtc* crtc,
59 std::vector<uint32_t> connectors) OVERRIDE;
60 virtual bool AddFramebuffer(uint32_t width,
66 uint32_t* framebuffer) OVERRIDE;
67 virtual bool RemoveFramebuffer(uint32_t framebuffer) OVERRIDE;
68 virtual bool PageFlip(uint32_t crtc_id,
71 virtual bool PageFlipOverlay(uint32_t crtc_id,
73 const gfx::Rect& location,
74 const gfx::RectF& source,
75 int overlay_plane) OVERRIDE;
76 virtual ScopedDrmPropertyPtr GetProperty(drmModeConnector* connector,
77 const char* name) OVERRIDE;
78 virtual bool SetProperty(uint32_t connector_id,
80 uint64_t value) OVERRIDE;
81 virtual ScopedDrmPropertyBlobPtr GetPropertyBlob(drmModeConnector* connector,
82 const char* name) OVERRIDE;
83 virtual bool SetCursor(uint32_t crtc_id,
85 const gfx::Size& size) OVERRIDE;
86 virtual bool MoveCursor(uint32_t crtc_id, const gfx::Point& point) OVERRIDE;
87 virtual void HandleEvent(drmEventContext& event) OVERRIDE;
88 virtual bool CreateDumbBuffer(const SkImageInfo& info,
91 void** pixels) OVERRIDE;
92 virtual void DestroyDumbBuffer(const SkImageInfo& info,
95 void* pixels) OVERRIDE;
98 int get_crtc_call_count_;
99 int set_crtc_call_count_;
100 int restore_crtc_call_count_;
101 int add_framebuffer_call_count_;
102 int remove_framebuffer_call_count_;
103 int page_flip_call_count_;
104 int overlay_flip_call_count_;
106 bool set_crtc_expectation_;
107 bool add_framebuffer_expectation_;
108 bool page_flip_expectation_;
109 bool create_dumb_buffer_expectation_;
111 uint32_t current_framebuffer_;
113 std::vector<skia::RefPtr<SkSurface> > buffers_;
115 std::queue<HardwareDisplayController*> controllers_;
117 DISALLOW_COPY_AND_ASSIGN(MockDriWrapper);
122 #endif // UI_OZONE_PLATFORM_DRI_TEST_MOCK_DRI_WRAPPER_H_