static const int32 kTransferBufferId = 123;
virtual void SetUp() {
- shared_memory_.reset(new ::base::SharedMemory);
- shared_memory_->CreateAndMapAnonymous(kRingBufferSize);
- buffer_ = static_cast<int32*>(shared_memory_->memory());
- shared_memory_buffer_.ptr = buffer_;
- shared_memory_buffer_.size = kRingBufferSize;
+ scoped_ptr<base::SharedMemory> shared_memory(new ::base::SharedMemory);
+ shared_memory->CreateAndMapAnonymous(kRingBufferSize);
+ buffer_ = static_cast<int32*>(shared_memory->memory());
+ shared_memory_buffer_ =
+ MakeBufferFromSharedMemory(shared_memory.Pass(), kRingBufferSize);
memset(buffer_, 0, kRingBufferSize);
command_buffer_.reset(new MockCommandBuffer);
CommandBuffer::State default_state;
default_state.num_entries = kRingBufferEntries;
- ON_CALL(*command_buffer_.get(), GetState())
+ ON_CALL(*command_buffer_.get(), GetLastState())
.WillByDefault(Return(default_state));
decoder_.reset(new gles2::MockGLES2Decoder());
+ // Install FakeDoCommands handler so we can use individual DoCommand()
+ // expectations.
+ EXPECT_CALL(*decoder_, DoCommands(_, _, _, _)).WillRepeatedly(
+ Invoke(decoder_.get(), &gles2::MockGLES2Decoder::FakeDoCommands));
+
scheduler_.reset(new gpu::GpuScheduler(command_buffer_.get(),
decoder_.get(),
decoder_.get()));
}
error::Error GetError() {
- return command_buffer_->GetState().error;
+ return command_buffer_->GetLastState().error;
}
#if defined(OS_MACOSX)
#endif
base::MessageLoop message_loop;
scoped_ptr<MockCommandBuffer> command_buffer_;
- scoped_ptr<base::SharedMemory> shared_memory_;
- Buffer shared_memory_buffer_;
+ scoped_refptr<Buffer> shared_memory_buffer_;
int32* buffer_;
scoped_ptr<gles2::MockGLES2Decoder> decoder_;
scoped_ptr<GpuScheduler> scheduler_;
CommandBuffer::State state;
state.put_offset = 0;
- EXPECT_CALL(*command_buffer_, GetState())
+ EXPECT_CALL(*command_buffer_, GetLastState())
.WillRepeatedly(Return(state));
EXPECT_CALL(*command_buffer_, SetParseError(_))
CommandBuffer::State state;
state.put_offset = 2;
- EXPECT_CALL(*command_buffer_, GetState())
+ EXPECT_CALL(*command_buffer_, GetLastState())
.WillRepeatedly(Return(state));
EXPECT_CALL(*command_buffer_, SetGetOffset(2));
CommandBuffer::State state;
state.put_offset = 3;
- EXPECT_CALL(*command_buffer_, GetState())
+ EXPECT_CALL(*command_buffer_, GetLastState())
.WillRepeatedly(Return(state));
EXPECT_CALL(*decoder_, DoCommand(7, 1, &buffer_[0]))
.WillOnce(Return(error::kNoError));
- EXPECT_CALL(*command_buffer_, SetGetOffset(2));
EXPECT_CALL(*decoder_, DoCommand(8, 0, &buffer_[2]))
.WillOnce(Return(error::kNoError));
CommandBuffer::State state;
state.put_offset = 1;
- EXPECT_CALL(*command_buffer_, GetState())
+ EXPECT_CALL(*command_buffer_, GetLastState())
.WillRepeatedly(Return(state));
EXPECT_CALL(*decoder_, DoCommand(7, 0, &buffer_[0]))
CommandBuffer::State state;
state.error = error::kGenericError;
- EXPECT_CALL(*command_buffer_, GetState())
+ EXPECT_CALL(*command_buffer_, GetLastState())
.WillRepeatedly(Return(state));
scheduler_->PutChanged();
EXPECT_CALL(*command_buffer_.get(), GetTransferBuffer(7))
.WillOnce(Return(shared_memory_buffer_));
- EXPECT_EQ(&buffer_[0], scheduler_->GetSharedMemoryBuffer(7).ptr);
+ EXPECT_EQ(&buffer_[0], scheduler_->GetSharedMemoryBuffer(7)->memory());
}
ACTION_P2(SetPointee, address, value) {
EXPECT_CALL(*command_buffer_.get(), GetTransferBuffer(7))
.WillOnce(Return(shared_memory_buffer_));
- EXPECT_EQ(kRingBufferSize, scheduler_->GetSharedMemoryBuffer(7).size);
+ EXPECT_EQ(kRingBufferSize, scheduler_->GetSharedMemoryBuffer(7)->size());
}
TEST_F(GpuSchedulerTest, SetTokenForwardsToCommandBuffer) {