Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(369)

Side by Side Diff: gpu/command_buffer/service/buffer_manager_unittest.cc

Issue 14308014: Clean up of GLES2 Command Decoder by moving some of the error state into a separate class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix merge error. Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/buffer_manager.h" 5 #include "gpu/command_buffer/service/buffer_manager.h"
6 #include "gpu/command_buffer/service/error_state_mock.h"
6 #include "gpu/command_buffer/service/feature_info.h" 7 #include "gpu/command_buffer/service/feature_info.h"
7 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
8 #include "gpu/command_buffer/service/mocks.h" 8 #include "gpu/command_buffer/service/mocks.h"
9 #include "gpu/command_buffer/service/test_helper.h" 9 #include "gpu/command_buffer/service/test_helper.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "ui/gl/gl_mock.h" 11 #include "ui/gl/gl_mock.h"
12 12
13 using ::testing::_; 13 using ::testing::_;
14 using ::testing::Return; 14 using ::testing::Return;
15 using ::testing::StrictMock; 15 using ::testing::StrictMock;
16 16
17 namespace gpu { 17 namespace gpu {
18 namespace gles2 { 18 namespace gles2 {
19 19
20 class BufferManagerTestBase : public testing::Test { 20 class BufferManagerTestBase : public testing::Test {
21 protected: 21 protected:
22 void SetUpBase( 22 void SetUpBase(
23 MemoryTracker* memory_tracker, 23 MemoryTracker* memory_tracker,
24 FeatureInfo* feature_info, 24 FeatureInfo* feature_info,
25 const char* extensions) { 25 const char* extensions) {
26 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); 26 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>());
27 ::gfx::GLInterface::SetGLInterface(gl_.get()); 27 ::gfx::GLInterface::SetGLInterface(gl_.get());
28 if (feature_info) { 28 if (feature_info) {
29 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), extensions); 29 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), extensions);
30 feature_info->Initialize(NULL); 30 feature_info->Initialize(NULL);
31 } 31 }
32 decoder_.reset(new MockGLES2Decoder()); 32 error_state_.reset(new MockErrorState());
33 manager_.reset(new BufferManager(memory_tracker, feature_info)); 33 manager_.reset(new BufferManager(memory_tracker, feature_info));
34 } 34 }
35 35
36 virtual void TearDown() { 36 virtual void TearDown() {
37 manager_->Destroy(false); 37 manager_->Destroy(false);
38 manager_.reset(); 38 manager_.reset();
39 ::gfx::GLInterface::SetGLInterface(NULL); 39 ::gfx::GLInterface::SetGLInterface(NULL);
40 decoder_.reset(); 40 error_state_.reset();
41 gl_.reset(); 41 gl_.reset();
42 } 42 }
43 43
44 GLenum GetTarget(const Buffer* buffer) const { 44 GLenum GetTarget(const Buffer* buffer) const {
45 return buffer->target(); 45 return buffer->target();
46 } 46 }
47 47
48 void DoBufferData( 48 void DoBufferData(
49 Buffer* buffer, GLsizeiptr size, GLenum usage, const GLvoid* data, 49 Buffer* buffer, GLsizeiptr size, GLenum usage, const GLvoid* data,
50 GLenum error) { 50 GLenum error) {
51 TestHelper::DoBufferData( 51 TestHelper::DoBufferData(
52 gl_.get(), decoder_.get(), manager_.get(), 52 gl_.get(), error_state_.get(), manager_.get(),
53 buffer, size, usage, data, error); 53 buffer, size, usage, data, error);
54 } 54 }
55 55
56 bool DoBufferSubData( 56 bool DoBufferSubData(
57 Buffer* buffer, GLintptr offset, GLsizeiptr size, 57 Buffer* buffer, GLintptr offset, GLsizeiptr size,
58 const GLvoid* data) { 58 const GLvoid* data) {
59 bool success = true; 59 bool success = true;
60 if (!buffer->CheckRange(offset, size)) { 60 if (!buffer->CheckRange(offset, size)) {
61 EXPECT_CALL(*decoder_, SetGLError(_, _, GL_INVALID_VALUE, _, _)) 61 EXPECT_CALL(*error_state_, SetGLError(_, _, GL_INVALID_VALUE, _, _))
62 .Times(1) 62 .Times(1)
63 .RetiresOnSaturation(); 63 .RetiresOnSaturation();
64 success = false; 64 success = false;
65 } else if (!buffer->IsClientSideArray()) { 65 } else if (!buffer->IsClientSideArray()) {
66 EXPECT_CALL(*gl_, BufferSubData( 66 EXPECT_CALL(*gl_, BufferSubData(
67 buffer->target(), offset, size, _)) 67 buffer->target(), offset, size, _))
68 .Times(1) 68 .Times(1)
69 .RetiresOnSaturation(); 69 .RetiresOnSaturation();
70 } 70 }
71 manager_->DoBufferSubData( 71 manager_->DoBufferSubData(
72 decoder_.get(), buffer, offset, size, data); 72 error_state_.get(), buffer, offset, size, data);
73 return success; 73 return success;
74 } 74 }
75 75
76 // Use StrictMock to make 100% sure we know how GL will be called. 76 // Use StrictMock to make 100% sure we know how GL will be called.
77 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_; 77 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_;
78 scoped_ptr<BufferManager> manager_; 78 scoped_ptr<BufferManager> manager_;
79 scoped_ptr<MockGLES2Decoder> decoder_; 79 scoped_ptr<MockErrorState> error_state_;
80 }; 80 };
81 81
82 class BufferManagerTest : public BufferManagerTestBase { 82 class BufferManagerTest : public BufferManagerTestBase {
83 protected: 83 protected:
84 virtual void SetUp() { 84 virtual void SetUp() {
85 SetUpBase(NULL, NULL, ""); 85 SetUpBase(NULL, NULL, "");
86 } 86 }
87 }; 87 };
88 88
89 class BufferManagerMemoryTrackerTest : public BufferManagerTestBase { 89 class BufferManagerMemoryTrackerTest : public BufferManagerTestBase {
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 EXPECT_TRUE(buffer->IsClientSideArray()); 385 EXPECT_TRUE(buffer->IsClientSideArray());
386 EXPECT_EQ(0, memcmp(data, buffer->GetRange(0, sizeof(data)), sizeof(data))); 386 EXPECT_EQ(0, memcmp(data, buffer->GetRange(0, sizeof(data)), sizeof(data)));
387 DoBufferData(buffer, sizeof(data), GL_DYNAMIC_DRAW, data, GL_NO_ERROR); 387 DoBufferData(buffer, sizeof(data), GL_DYNAMIC_DRAW, data, GL_NO_ERROR);
388 EXPECT_FALSE(buffer->IsClientSideArray()); 388 EXPECT_FALSE(buffer->IsClientSideArray());
389 } 389 }
390 390
391 } // namespace gles2 391 } // namespace gles2
392 } // namespace gpu 392 } // namespace gpu
393 393
394 394
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/buffer_manager.cc ('k') | gpu/command_buffer/service/context_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698