~ubuntu-branches/ubuntu/wily/mir/wily-proposed

« back to all changes in this revision

Viewing changes to tests/unit-tests/graphics/android/test_fb_simple_swapper.cpp

  • Committer: Package Import Robot
  • Author(s): Ubuntu daily release
  • Date: 2014-01-08 02:04:38 UTC
  • mto: This revision was merged to the branch mainline in revision 58.
  • Revision ID: package-import@ubuntu.com-20140108020438-e1npu0pm7qdv5wc4
Tags: upstream-0.1.3+14.04.20140108
ImportĀ upstreamĀ versionĀ 0.1.3+14.04.20140108

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 * Authored by: Kevin DuBois <kevin.dubois@canonical.com>
17
17
 */
18
18
 
19
 
#include "src/server/graphics/android/framebuffers.h"
20
 
#include "src/server/graphics/android/graphic_buffer_allocator.h"
 
19
#include "src/platform/graphics/android/framebuffers.h"
 
20
#include "src/platform/graphics/android/graphic_buffer_allocator.h"
21
21
#include "mir_test_doubles/mock_buffer.h"
22
22
#include "mir_test_doubles/mock_hwc_composer_device_1.h"
23
23
#include "mir_test_doubles/mock_egl.h"
40
40
struct MockGraphicBufferAllocator : public mga::GraphicBufferAllocator
41
41
{
42
42
    MOCK_METHOD3(alloc_buffer_platform, std::shared_ptr<mg::Buffer>(
43
 
        geom::Size, geom::PixelFormat, mga::BufferUsage use));
 
43
        geom::Size, MirPixelFormat, mga::BufferUsage use));
44
44
};
45
45
 
46
46
static int const display_width = 180;
59
59
        buffer3 = std::make_shared<mtd::MockBuffer>();
60
60
        mock_allocator = std::make_shared<MockGraphicBufferAllocator>();
61
61
        mock_hwc_device = std::make_shared<testing::NiceMock<mtd::MockHWCComposerDevice1>>();
62
 
        mock_fb_hal = std::make_shared<mtd::MockFBHalDevice>(display_width, display_height, format, fbnum); 
 
62
        mock_fb_hal = std::make_shared<mtd::MockFBHalDevice>(display_width, display_height, format, fbnum);
63
63
        EXPECT_CALL(*mock_allocator, alloc_buffer_platform(_,_,_))
64
64
            .Times(AtLeast(0))
65
65
            .WillOnce(Return(buffer1))
102
102
    EXPECT_CALL(*mock_hwc_device, getDisplayAttributes_interface(mock_hwc_device.get(), HWC_DISPLAY_PRIMARY, hwc_configs,_,_))
103
103
        .Times(1)
104
104
        .WillOnce(Invoke(display_attribute_handler));
105
 
   
 
105
 
106
106
    auto display_size = mir::geometry::Size{display_width, display_height};
107
107
    EXPECT_CALL(*mock_allocator, alloc_buffer_platform(display_size, _, mga::BufferUsage::use_framebuffer_gles))
108
108
        .Times(2)
141
141
        .WillOnce(DoAll(SetArgPointee<3>(visual_id), Return(EGL_TRUE)));
142
142
    EXPECT_CALL(mock_egl, eglTerminate(fake_display))
143
143
        .InSequence(seq);
144
 
 
 
144
 
145
145
    mga::Framebuffers framebuffers(mock_allocator, mock_hwc_device);
146
 
    EXPECT_EQ(geom::PixelFormat::argb_8888, framebuffers.fb_format());
 
146
    EXPECT_EQ(mir_pixel_format_argb_8888, framebuffers.fb_format());
147
147
}
148
148
 
149
149
//apparently this can happen if the display is in the 'unplugged state'
178
178
        .WillOnce(DoAll(SetArgPointee<4>(0), Return(EGL_TRUE)));
179
179
    EXPECT_CALL(mock_egl, eglTerminate(fake_display))
180
180
        .InSequence(seq);
181
 
    
 
181
 
182
182
    mga::Framebuffers framebuffers(mock_allocator, mock_hwc_device);
183
 
    EXPECT_EQ(geom::PixelFormat::abgr_8888, framebuffers.fb_format());
 
183
    EXPECT_EQ(mir_pixel_format_abgr_8888, framebuffers.fb_format());
184
184
}
185
185
 
186
186
TEST_F(PostingFBBundleTest, bundle_from_fb)
187
187
{
188
188
    using namespace testing;
189
189
    auto display_size = geom::Size{display_width, display_height};
190
 
    EXPECT_CALL(*mock_allocator, alloc_buffer_platform(display_size, geom::PixelFormat::abgr_8888, mga::BufferUsage::use_framebuffer_gles))
 
190
    EXPECT_CALL(*mock_allocator, alloc_buffer_platform(display_size, mir_pixel_format_abgr_8888, mga::BufferUsage::use_framebuffer_gles))
191
191
        .Times(fbnum)
192
192
        .WillRepeatedly(Return(nullptr));
193
193
 
194
194
    mga::Framebuffers framebuffers(mock_allocator, mock_fb_hal);
195
195
    EXPECT_EQ(display_size, framebuffers.fb_size());
196
 
    EXPECT_EQ(geom::PixelFormat::abgr_8888, framebuffers.fb_format());
 
196
    EXPECT_EQ(mir_pixel_format_abgr_8888, framebuffers.fb_format());
197
197
}
198
198
 
199
199
//some drivers incorrectly report 0 buffers available. if this is true, we should alloc 2, the minimum requirement
200
200
TEST_F(PostingFBBundleTest, determine_fbnum_always_reports_2_minimum)
201
201
{
202
202
    using namespace testing;
203
 
    auto slightly_malformed_fb_hal_mock = std::make_shared<mtd::MockFBHalDevice>(display_width, display_height, format, 0); 
 
203
    auto slightly_malformed_fb_hal_mock = std::make_shared<mtd::MockFBHalDevice>(display_width, display_height, format, 0);
204
204
    EXPECT_CALL(*mock_allocator, alloc_buffer_platform(_,_,_))
205
205
        .Times(2)
206
206
        .WillRepeatedly(Return(nullptr));
220
220
    EXPECT_NE(first_buffer, framebuffers.last_rendered_buffer());
221
221
    first_buffer.reset();
222
222
    EXPECT_EQ(first_buffer_ptr, framebuffers.last_rendered_buffer().get());
223
 
 
223
}