summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gpu/command_buffer/client/ring_buffer_test.cc25
-rw-r--r--gpu/command_buffer/service/mocks.cc6
2 files changed, 28 insertions, 3 deletions
diff --git a/gpu/command_buffer/client/ring_buffer_test.cc b/gpu/command_buffer/client/ring_buffer_test.cc
index 1ccd979..01bc3e0 100644
--- a/gpu/command_buffer/client/ring_buffer_test.cc
+++ b/gpu/command_buffer/client/ring_buffer_test.cc
@@ -30,6 +30,25 @@ class BaseRingBufferTest : public testing::Test {
static const unsigned int kBaseOffset = 128;
static const unsigned int kBufferSize = 1024;
+ class DoJumpCommand {
+ public:
+ explicit DoJumpCommand(CommandParser* parser)
+ : parser_(parser) {
+ }
+
+ error::Error DoCommand(
+ unsigned int command,
+ unsigned int arg_count,
+ const void* cmd_data) {
+ const cmd::Jump* jump_cmd = static_cast<const cmd::Jump*>(cmd_data);
+ parser_->set_get(jump_cmd->offset);
+ return error::kNoError;
+ };
+
+ private:
+ CommandParser* parser_;
+ };
+
virtual void SetUp() {
api_mock_.reset(new AsyncAPIMock);
// ignore noops in the mock - we don't want to inspect the internals of the
@@ -58,6 +77,10 @@ class BaseRingBufferTest : public testing::Test {
gpu_scheduler_.get(), &GpuScheduler::PutChanged));
api_mock_->set_engine(gpu_scheduler_.get());
+ do_jump_command_.reset(new DoJumpCommand(parser_));
+ EXPECT_CALL(*api_mock_, DoCommand(cmd::kJump, _, _))
+ .WillRepeatedly(
+ Invoke(do_jump_command_.get(), &DoJumpCommand::DoCommand));
helper_.reset(new CommandBufferHelper(command_buffer_.get()));
helper_->Initialize(kBufferSize);
@@ -74,6 +97,7 @@ class BaseRingBufferTest : public testing::Test {
scoped_ptr<GpuScheduler> gpu_scheduler_;
CommandParser* parser_;
scoped_ptr<CommandBufferHelper> helper_;
+ scoped_ptr<DoJumpCommand> do_jump_command_;
};
#ifndef _MSC_VER
@@ -256,6 +280,7 @@ TEST_F(RingBufferWrapperTest, TestFreePendingToken) {
EXPECT_LE(tokens[0], GetToken());
allocator_->FreePendingToken(pointer1, helper_->InsertToken());
+ EXPECT_LE(command_buffer_->GetState().token, helper_->InsertToken());
}
} // namespace gpu
diff --git a/gpu/command_buffer/service/mocks.cc b/gpu/command_buffer/service/mocks.cc
index 6f267be..40b3d6d9 100644
--- a/gpu/command_buffer/service/mocks.cc
+++ b/gpu/command_buffer/service/mocks.cc
@@ -19,9 +19,9 @@ void AsyncAPIMock::SetToken(unsigned int command,
DCHECK(engine_);
DCHECK_EQ(1u, command);
DCHECK_EQ(1u, arg_count);
- const CommandBufferEntry* args =
- static_cast<const CommandBufferEntry*>(_args);
- engine_->set_token(args[0].value_uint32);
+ const cmd::SetToken* args =
+ static_cast<const cmd::SetToken*>(_args);
+ engine_->set_token(args->token);
}
namespace gles2 {