| Index: gpu/command_buffer/client/transfer_buffer_unittest.cc
|
| diff --git a/gpu/command_buffer/client/transfer_buffer_unittest.cc b/gpu/command_buffer/client/transfer_buffer_unittest.cc
|
| index 26b2057eebb0cb70a7a44c2dcc81ea81eeceba24..75a1b60d90248adf798489bfc04856a5e4afaed6 100644
|
| --- a/gpu/command_buffer/client/transfer_buffer_unittest.cc
|
| +++ b/gpu/command_buffer/client/transfer_buffer_unittest.cc
|
| @@ -20,6 +20,7 @@ using ::testing::StrictMock;
|
|
|
| namespace gpu {
|
|
|
| +
|
| class TransferBufferTest : public testing::Test {
|
| protected:
|
| static const int32 kNumCommandEntries = 400;
|
| @@ -36,18 +37,28 @@ class TransferBufferTest : public testing::Test {
|
| virtual void SetUp() OVERRIDE;
|
| virtual void TearDown() OVERRIDE;
|
|
|
| - MockClientCommandBuffer* command_buffer() const {
|
| + virtual void Initialize(unsigned int size_to_flush) {
|
| + ASSERT_TRUE(transfer_buffer_->Initialize(
|
| + kTransferBufferSize,
|
| + kStartingOffset,
|
| + kTransferBufferSize,
|
| + kTransferBufferSize,
|
| + kAlignment,
|
| + size_to_flush));
|
| + }
|
| +
|
| + MockClientCommandBufferMockFlush* command_buffer() const {
|
| return command_buffer_.get();
|
| }
|
|
|
| - scoped_ptr<MockClientCommandBuffer> command_buffer_;
|
| + scoped_ptr<MockClientCommandBufferMockFlush> command_buffer_;
|
| scoped_ptr<CommandBufferHelper> helper_;
|
| scoped_ptr<TransferBuffer> transfer_buffer_;
|
| int32 transfer_buffer_id_;
|
| };
|
|
|
| void TransferBufferTest::SetUp() {
|
| - command_buffer_.reset(new StrictMock<MockClientCommandBuffer>());
|
| + command_buffer_.reset(new StrictMock<MockClientCommandBufferMockFlush>());
|
| ASSERT_TRUE(command_buffer_->Initialize());
|
|
|
| helper_.reset(new CommandBufferHelper(command_buffer()));
|
| @@ -56,12 +67,6 @@ void TransferBufferTest::SetUp() {
|
| transfer_buffer_id_ = command_buffer()->GetNextFreeTransferBufferId();
|
|
|
| transfer_buffer_.reset(new TransferBuffer(helper_.get()));
|
| - ASSERT_TRUE(transfer_buffer_->Initialize(
|
| - kTransferBufferSize,
|
| - kStartingOffset,
|
| - kTransferBufferSize,
|
| - kTransferBufferSize,
|
| - kAlignment));
|
| }
|
|
|
| void TransferBufferTest::TearDown() {
|
| @@ -86,6 +91,7 @@ const size_t TransferBufferTest::kTransferBufferSize;
|
| #endif
|
|
|
| TEST_F(TransferBufferTest, Basic) {
|
| + Initialize(0);
|
| EXPECT_TRUE(transfer_buffer_->HaveBuffer());
|
| EXPECT_EQ(transfer_buffer_id_, transfer_buffer_->GetShmId());
|
| EXPECT_EQ(
|
| @@ -94,6 +100,7 @@ TEST_F(TransferBufferTest, Basic) {
|
| }
|
|
|
| TEST_F(TransferBufferTest, Free) {
|
| + Initialize(0);
|
| EXPECT_TRUE(transfer_buffer_->HaveBuffer());
|
| EXPECT_EQ(transfer_buffer_id_, transfer_buffer_->GetShmId());
|
|
|
| @@ -172,6 +179,7 @@ TEST_F(TransferBufferTest, Free) {
|
| }
|
|
|
| TEST_F(TransferBufferTest, TooLargeAllocation) {
|
| + Initialize(0);
|
| // Check that we can't allocate large than max size.
|
| void* ptr = transfer_buffer_->Alloc(kTransferBufferSize + 1);
|
| EXPECT_TRUE(ptr == NULL);
|
| @@ -184,7 +192,33 @@ TEST_F(TransferBufferTest, TooLargeAllocation) {
|
| transfer_buffer_->FreePendingToken(ptr, 1);
|
| }
|
|
|
| -class MockClientCommandBufferCanFail : public MockClientCommandBuffer {
|
| +TEST_F(TransferBufferTest, Flush) {
|
| + Initialize(16u);
|
| + unsigned int size_allocated = 0;
|
| + for (int i = 0; i < 8; ++i) {
|
| + void* ptr = transfer_buffer_->AllocUpTo(8u, &size_allocated);
|
| + ASSERT_TRUE(ptr != NULL);
|
| + EXPECT_EQ(8u, size_allocated);
|
| + if (i % 2) {
|
| + EXPECT_CALL(*command_buffer(), Flush(_))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + }
|
| + transfer_buffer_->FreePendingToken(ptr, 1);
|
| + }
|
| + for (int i = 0; i < 8; ++i) {
|
| + void* ptr = transfer_buffer_->Alloc(8u);
|
| + ASSERT_TRUE(ptr != NULL);
|
| + if (i % 2) {
|
| + EXPECT_CALL(*command_buffer(), Flush(_))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + }
|
| + transfer_buffer_->FreePendingToken(ptr, 1);
|
| + }
|
| +}
|
| +
|
| +class MockClientCommandBufferCanFail : public MockClientCommandBufferMockFlush {
|
| public:
|
| MockClientCommandBufferCanFail() {
|
| }
|
| @@ -255,7 +289,8 @@ void TransferBufferExpandContractTest::SetUp() {
|
| kStartingOffset,
|
| kMinTransferBufferSize,
|
| kMaxTransferBufferSize,
|
| - kAlignment));
|
| + kAlignment,
|
| + 0));
|
| }
|
|
|
| void TransferBufferExpandContractTest::TearDown() {
|
| @@ -429,6 +464,7 @@ TEST_F(TransferBufferExpandContractTest, OutOfMemory) {
|
| EXPECT_FALSE(transfer_buffer_->HaveBuffer());
|
| }
|
|
|
| +
|
| } // namespace gpu
|
|
|
|
|
|
|