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

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

Issue 555020: Redesigned CommandBuffer and NPDevice3D interfaces (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "base/thread.h" 5 #include "base/thread.h"
6 #include "gpu/command_buffer/common/cmd_buffer_common.h" 6 #include "gpu/command_buffer/common/cmd_buffer_common.h"
7 #include "gpu/command_buffer/service/command_buffer_service.h" 7 #include "gpu/command_buffer/service/command_buffer_service.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "testing/gmock/include/gmock/gmock.h" 9 #include "testing/gmock/include/gmock/gmock.h"
10 10
11 using base::SharedMemory; 11 using base::SharedMemory;
12 using testing::_; 12 using testing::_;
13 using testing::DoAll; 13 using testing::DoAll;
14 using testing::Return; 14 using testing::Return;
15 using testing::SetArgumentPointee; 15 using testing::SetArgumentPointee;
16 using testing::StrictMock; 16 using testing::StrictMock;
17 17
18 namespace gpu { 18 namespace gpu {
19 19
20 class CommandBufferServiceTest : public testing::Test { 20 class CommandBufferServiceTest : public testing::Test {
21 protected: 21 protected:
22 virtual void SetUp() { 22 virtual void SetUp() {
23 command_buffer_.reset(new CommandBufferService); 23 command_buffer_.reset(new CommandBufferService);
24 } 24 }
25 25
26 int32 GetGetOffset() {
27 return command_buffer_->GetState().get_offset;
28 }
29
30 int32 GetPutOffset() {
31 return command_buffer_->GetState().put_offset;
32 }
33
34 int32 GetToken() {
35 return command_buffer_->GetState().token;
36 }
37
38 int32 GetError() {
39 return command_buffer_->GetState().error;
40 }
41
26 scoped_ptr<CommandBufferService> command_buffer_; 42 scoped_ptr<CommandBufferService> command_buffer_;
27 }; 43 };
28 44
29 TEST_F(CommandBufferServiceTest, NullRingBufferByDefault) { 45 TEST_F(CommandBufferServiceTest, NullRingBufferByDefault) {
30 EXPECT_TRUE(NULL == command_buffer_->GetRingBuffer().ptr); 46 EXPECT_TRUE(NULL == command_buffer_->GetRingBuffer().ptr);
31 } 47 }
32 48
33 TEST_F(CommandBufferServiceTest, InitializesCommandBuffer) { 49 TEST_F(CommandBufferServiceTest, InitializesCommandBuffer) {
34 EXPECT_TRUE(command_buffer_->Initialize(1024)); 50 EXPECT_TRUE(command_buffer_->Initialize(1024));
35 EXPECT_TRUE(NULL != command_buffer_->GetRingBuffer().ptr); 51 EXPECT_TRUE(NULL != command_buffer_->GetRingBuffer().ptr);
36 EXPECT_EQ(1024, command_buffer_->GetSize()); 52 CommandBuffer::State state = command_buffer_->GetState();
37 EXPECT_EQ(1024 * sizeof(CommandBufferEntry), 53 EXPECT_EQ(1024, state.size);
38 command_buffer_->GetRingBuffer().size); 54 EXPECT_EQ(0, state.get_offset);
55 EXPECT_EQ(0, state.put_offset);
56 EXPECT_EQ(0, state.token);
57 EXPECT_EQ(parse_error::kParseNoError, state.error);
39 } 58 }
40 59
41 TEST_F(CommandBufferServiceTest, InitializationSizeIsInEntriesNotBytes) { 60 TEST_F(CommandBufferServiceTest, InitializationSizeIsInEntriesNotBytes) {
42 EXPECT_TRUE(command_buffer_->Initialize(1024)); 61 EXPECT_TRUE(command_buffer_->Initialize(1024));
43 EXPECT_TRUE(NULL != command_buffer_->GetRingBuffer().ptr); 62 EXPECT_TRUE(NULL != command_buffer_->GetRingBuffer().ptr);
44 EXPECT_GE(1024 * sizeof(CommandBufferEntry), 63 EXPECT_GE(1024 * sizeof(CommandBufferEntry),
45 command_buffer_->GetRingBuffer().size); 64 command_buffer_->GetRingBuffer().size);
46 } 65 }
47 66
48 TEST_F(CommandBufferServiceTest, InitializeFailsSecondTime) { 67 TEST_F(CommandBufferServiceTest, InitializeFailsSecondTime) {
49 SharedMemory* ring_buffer = new SharedMemory; 68 SharedMemory* ring_buffer = new SharedMemory;
50 EXPECT_TRUE(command_buffer_->Initialize(1024)); 69 EXPECT_TRUE(command_buffer_->Initialize(1024));
51 EXPECT_FALSE(command_buffer_->Initialize(1024)); 70 EXPECT_FALSE(command_buffer_->Initialize(1024));
52 } 71 }
53 72
54 TEST_F(CommandBufferServiceTest, GetAndPutOffsetsDefaultToZero) {
55 EXPECT_EQ(0, command_buffer_->GetGetOffset());
56 EXPECT_EQ(0, command_buffer_->GetPutOffset());
57 }
58
59 class MockCallback : public CallbackRunner<Tuple0> { 73 class MockCallback : public CallbackRunner<Tuple0> {
60 public: 74 public:
61 MOCK_METHOD1(RunWithParams, void(const Tuple0&)); 75 MOCK_METHOD1(RunWithParams, void(const Tuple0&));
62 }; 76 };
63 77
64 TEST_F(CommandBufferServiceTest, CanSyncGetAndPutOffset) { 78 TEST_F(CommandBufferServiceTest, CanSyncGetAndPutOffset) {
65 command_buffer_->Initialize(1024); 79 command_buffer_->Initialize(1024);
66 80
67 StrictMock<MockCallback>* put_offset_change_callback = 81 StrictMock<MockCallback>* put_offset_change_callback =
68 new StrictMock<MockCallback>; 82 new StrictMock<MockCallback>;
69 command_buffer_->SetPutOffsetChangeCallback(put_offset_change_callback); 83 command_buffer_->SetPutOffsetChangeCallback(put_offset_change_callback);
70 84
71 EXPECT_CALL(*put_offset_change_callback, RunWithParams(_)); 85 EXPECT_CALL(*put_offset_change_callback, RunWithParams(_));
72 EXPECT_EQ(0, command_buffer_->SyncOffsets(2)); 86 EXPECT_EQ(0, command_buffer_->Flush(2).get_offset);
73 EXPECT_EQ(2, command_buffer_->GetPutOffset()); 87 EXPECT_EQ(2, GetPutOffset());
74 88
75 EXPECT_CALL(*put_offset_change_callback, RunWithParams(_)); 89 EXPECT_CALL(*put_offset_change_callback, RunWithParams(_));
76 EXPECT_EQ(0, command_buffer_->SyncOffsets(4)); 90 EXPECT_EQ(0, command_buffer_->Flush(4).get_offset);
77 EXPECT_EQ(4, command_buffer_->GetPutOffset()); 91 EXPECT_EQ(4, GetPutOffset());
78 92
79 command_buffer_->SetGetOffset(2); 93 command_buffer_->SetGetOffset(2);
80 EXPECT_EQ(2, command_buffer_->GetGetOffset()); 94 EXPECT_EQ(2, GetGetOffset());
81 EXPECT_CALL(*put_offset_change_callback, RunWithParams(_)); 95 EXPECT_CALL(*put_offset_change_callback, RunWithParams(_));
82 EXPECT_EQ(2, command_buffer_->SyncOffsets(6)); 96 EXPECT_EQ(2, command_buffer_->Flush(6).get_offset);
83 97
84 EXPECT_EQ(-1, command_buffer_->SyncOffsets(-1)); 98 EXPECT_NE(parse_error::kParseNoError, command_buffer_->Flush(-1).error);
85 EXPECT_EQ(-1, command_buffer_->SyncOffsets(1024)); 99 EXPECT_NE(parse_error::kParseNoError,
100 command_buffer_->Flush(1024).error);
86 } 101 }
87 102
88 TEST_F(CommandBufferServiceTest, ZeroHandleMapsToNull) { 103 TEST_F(CommandBufferServiceTest, ZeroHandleMapsToNull) {
89 EXPECT_TRUE(NULL == command_buffer_->GetTransferBuffer(0).ptr); 104 EXPECT_TRUE(NULL == command_buffer_->GetTransferBuffer(0).ptr);
90 } 105 }
91 106
92 TEST_F(CommandBufferServiceTest, NegativeHandleMapsToNull) { 107 TEST_F(CommandBufferServiceTest, NegativeHandleMapsToNull) {
93 EXPECT_TRUE(NULL == command_buffer_->GetTransferBuffer(-1).ptr); 108 EXPECT_TRUE(NULL == command_buffer_->GetTransferBuffer(-1).ptr);
94 } 109 }
95 110
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 // a different code path in this case. 161 // a different code path in this case.
147 TEST_F(CommandBufferServiceTest, UnregistersTwoLastRegisteredHandles) { 162 TEST_F(CommandBufferServiceTest, UnregistersTwoLastRegisteredHandles) {
148 EXPECT_EQ(1, command_buffer_->CreateTransferBuffer(1024)); 163 EXPECT_EQ(1, command_buffer_->CreateTransferBuffer(1024));
149 EXPECT_EQ(2, command_buffer_->CreateTransferBuffer(1024)); 164 EXPECT_EQ(2, command_buffer_->CreateTransferBuffer(1024));
150 command_buffer_->DestroyTransferBuffer(2); 165 command_buffer_->DestroyTransferBuffer(2);
151 command_buffer_->DestroyTransferBuffer(1); 166 command_buffer_->DestroyTransferBuffer(1);
152 EXPECT_EQ(1, command_buffer_->CreateTransferBuffer(1024)); 167 EXPECT_EQ(1, command_buffer_->CreateTransferBuffer(1024));
153 } 168 }
154 169
155 TEST_F(CommandBufferServiceTest, DefaultTokenIsZero) { 170 TEST_F(CommandBufferServiceTest, DefaultTokenIsZero) {
156 EXPECT_EQ(0, command_buffer_->GetToken()); 171 EXPECT_EQ(0, GetToken());
157 } 172 }
158 173
159 TEST_F(CommandBufferServiceTest, CanSetToken) { 174 TEST_F(CommandBufferServiceTest, CanSetToken) {
160 command_buffer_->SetToken(7); 175 command_buffer_->SetToken(7);
161 EXPECT_EQ(7, command_buffer_->GetToken()); 176 EXPECT_EQ(7, GetToken());
162 } 177 }
163 178
164 TEST_F(CommandBufferServiceTest, DefaultParseErrorIsNoError) { 179 TEST_F(CommandBufferServiceTest, DefaultParseErrorIsNoError) {
165 EXPECT_EQ(0, command_buffer_->ResetParseError()); 180 EXPECT_EQ(0, GetError());
166 } 181 }
167 182
168 TEST_F(CommandBufferServiceTest, CanSetAndResetParseError) { 183 TEST_F(CommandBufferServiceTest, CanSetParseError) {
169 command_buffer_->SetParseError(1); 184 command_buffer_->SetParseError(parse_error::kParseInvalidSize);
170 EXPECT_EQ(1, command_buffer_->ResetParseError()); 185 EXPECT_EQ(1, GetError());
171 EXPECT_EQ(0, command_buffer_->ResetParseError());
172 } 186 }
173
174 TEST_F(CommandBufferServiceTest, DefaultErrorStatusIsFalse) {
175 EXPECT_FALSE(command_buffer_->GetErrorStatus());
176 }
177
178 TEST_F(CommandBufferServiceTest, CanRaiseErrorStatus) {
179 command_buffer_->RaiseErrorStatus();
180 EXPECT_TRUE(command_buffer_->GetErrorStatus());
181 }
182
183 } // namespace gpu 187 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/command_buffer_service.cc ('k') | gpu/command_buffer/service/gpu_processor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698