| OLD | NEW |
| 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 // This file contains the tests for the RingBuffer class. | 5 // This file contains the tests for the RingBuffer class. |
| 6 | 6 |
| 7 #include "gpu/command_buffer/client/ring_buffer.h" | 7 #include "gpu/command_buffer/client/ring_buffer.h" |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 unsigned int arg_count, | 51 unsigned int arg_count, |
| 52 const void* _args) { | 52 const void* _args) { |
| 53 EXPECT_EQ(static_cast<unsigned int>(cmd::kSetToken), command); | 53 EXPECT_EQ(static_cast<unsigned int>(cmd::kSetToken), command); |
| 54 EXPECT_EQ(1u, arg_count); | 54 EXPECT_EQ(1u, arg_count); |
| 55 if (delay_set_token_) | 55 if (delay_set_token_) |
| 56 set_token_arguments_.push_back(_args); | 56 set_token_arguments_.push_back(_args); |
| 57 else | 57 else |
| 58 api_mock_->SetToken(cmd::kSetToken, 1, _args); | 58 api_mock_->SetToken(cmd::kSetToken, 1, _args); |
| 59 } | 59 } |
| 60 | 60 |
| 61 virtual void SetUp() { | 61 void SetUp() override { |
| 62 delay_set_token_ = false; | 62 delay_set_token_ = false; |
| 63 api_mock_.reset(new AsyncAPIMock(true)); | 63 api_mock_.reset(new AsyncAPIMock(true)); |
| 64 // ignore noops in the mock - we don't want to inspect the internals of the | 64 // ignore noops in the mock - we don't want to inspect the internals of the |
| 65 // helper. | 65 // helper. |
| 66 EXPECT_CALL(*api_mock_, DoCommand(cmd::kNoop, 0, _)) | 66 EXPECT_CALL(*api_mock_, DoCommand(cmd::kNoop, 0, _)) |
| 67 .WillRepeatedly(Return(error::kNoError)); | 67 .WillRepeatedly(Return(error::kNoError)); |
| 68 // Forward the SetToken calls to the engine | 68 // Forward the SetToken calls to the engine |
| 69 EXPECT_CALL(*api_mock_.get(), DoCommand(cmd::kSetToken, 1, _)) | 69 EXPECT_CALL(*api_mock_.get(), DoCommand(cmd::kSetToken, 1, _)) |
| 70 .WillRepeatedly(DoAll(Invoke(this, &BaseRingBufferTest::SetToken), | 70 .WillRepeatedly(DoAll(Invoke(this, &BaseRingBufferTest::SetToken), |
| 71 Return(error::kNoError))); | 71 Return(error::kNoError))); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 const unsigned int BaseRingBufferTest::kBaseOffset; | 116 const unsigned int BaseRingBufferTest::kBaseOffset; |
| 117 const unsigned int BaseRingBufferTest::kBufferSize; | 117 const unsigned int BaseRingBufferTest::kBufferSize; |
| 118 #endif | 118 #endif |
| 119 | 119 |
| 120 // Test fixture for RingBuffer test - Creates a RingBuffer, using a | 120 // Test fixture for RingBuffer test - Creates a RingBuffer, using a |
| 121 // CommandBufferHelper with a mock AsyncAPIInterface for its interface (calling | 121 // CommandBufferHelper with a mock AsyncAPIInterface for its interface (calling |
| 122 // it directly, not through the RPC mechanism), making sure Noops are ignored | 122 // it directly, not through the RPC mechanism), making sure Noops are ignored |
| 123 // and SetToken are properly forwarded to the engine. | 123 // and SetToken are properly forwarded to the engine. |
| 124 class RingBufferTest : public BaseRingBufferTest { | 124 class RingBufferTest : public BaseRingBufferTest { |
| 125 protected: | 125 protected: |
| 126 virtual void SetUp() { | 126 void SetUp() override { |
| 127 BaseRingBufferTest::SetUp(); | 127 BaseRingBufferTest::SetUp(); |
| 128 | 128 |
| 129 buffer_.reset(new int8[kBufferSize + kBaseOffset]); | 129 buffer_.reset(new int8[kBufferSize + kBaseOffset]); |
| 130 buffer_start_ = buffer_.get() + kBaseOffset; | 130 buffer_start_ = buffer_.get() + kBaseOffset; |
| 131 allocator_.reset(new RingBuffer(kAlignment, kBaseOffset, kBufferSize, | 131 allocator_.reset(new RingBuffer(kAlignment, kBaseOffset, kBufferSize, |
| 132 helper_.get(), buffer_start_)); | 132 helper_.get(), buffer_start_)); |
| 133 } | 133 } |
| 134 | 134 |
| 135 virtual void TearDown() { | 135 void TearDown() override { |
| 136 // If the GpuScheduler posts any tasks, this forces them to run. | 136 // If the GpuScheduler posts any tasks, this forces them to run. |
| 137 base::MessageLoop::current()->RunUntilIdle(); | 137 base::MessageLoop::current()->RunUntilIdle(); |
| 138 | 138 |
| 139 BaseRingBufferTest::TearDown(); | 139 BaseRingBufferTest::TearDown(); |
| 140 } | 140 } |
| 141 | 141 |
| 142 scoped_ptr<RingBuffer> allocator_; | 142 scoped_ptr<RingBuffer> allocator_; |
| 143 }; | 143 }; |
| 144 | 144 |
| 145 // Checks basic alloc and free. | 145 // Checks basic alloc and free. |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 pointer = allocator_->Alloc(kAlloc2); | 207 pointer = allocator_->Alloc(kAlloc2); |
| 208 EXPECT_EQ(kBufferSize - kAlloc1 - kAlloc2, | 208 EXPECT_EQ(kBufferSize - kAlloc1 - kAlloc2, |
| 209 allocator_->GetLargestFreeSizeNoWaiting()); | 209 allocator_->GetLargestFreeSizeNoWaiting()); |
| 210 allocator_->FreePendingToken(pointer, helper_.get()->InsertToken()); | 210 allocator_->FreePendingToken(pointer, helper_.get()->InsertToken()); |
| 211 pointer = allocator_->Alloc(kBufferSize); | 211 pointer = allocator_->Alloc(kBufferSize); |
| 212 EXPECT_EQ(0u, allocator_->GetLargestFreeSizeNoWaiting()); | 212 EXPECT_EQ(0u, allocator_->GetLargestFreeSizeNoWaiting()); |
| 213 allocator_->FreePendingToken(pointer, helper_.get()->InsertToken()); | 213 allocator_->FreePendingToken(pointer, helper_.get()->InsertToken()); |
| 214 } | 214 } |
| 215 | 215 |
| 216 } // namespace gpu | 216 } // namespace gpu |
| OLD | NEW |