summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/common_decoder_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer/service/common_decoder_unittest.cc')
-rw-r--r--gpu/command_buffer/service/common_decoder_unittest.cc22
1 files changed, 21 insertions, 1 deletions
diff --git a/gpu/command_buffer/service/common_decoder_unittest.cc b/gpu/command_buffer/service/common_decoder_unittest.cc
index bdab529..c71c92e 100644
--- a/gpu/command_buffer/service/common_decoder_unittest.cc
+++ b/gpu/command_buffer/service/common_decoder_unittest.cc
@@ -209,6 +209,9 @@ TEST_F(CommonDecoderTest, Jump) {
EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(MockCommandBufferEngine::kValidOffset,
engine_.GetGetOffset());
+ // Check negative offset fails
+ cmd.Init(-1);
+ EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
}
// NOTE: The read_pointer checks for relative commands do not take into account
@@ -236,6 +239,10 @@ TEST_F(CommonDecoderTest, JumpRelative) {
EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
// See note above.
EXPECT_EQ(read_pointer + kNegativeOffset, engine_.GetGetOffset());
+ // Check invalid negative offset fails.
+ const int32 kInvalidNegativeOffset = -kPositiveOffset + kNegativeOffset - 1;
+ cmd.Init(kInvalidNegativeOffset);
+ EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
}
TEST_F(CommonDecoderTest, Call) {
@@ -250,6 +257,9 @@ TEST_F(CommonDecoderTest, Call) {
EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(MockCommandBufferEngine::kValidOffset,
engine_.GetGetOffset());
+ // Check negative offset fails
+ cmd.Init(-1);
+ EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
// Check that the call values are on the stack.
cmd::Return return_cmd;
return_cmd.Init();
@@ -284,6 +294,10 @@ TEST_F(CommonDecoderTest, CallRelative) {
EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
// See note above.
EXPECT_EQ(read_pointer_2 + kNegativeOffset, engine_.GetGetOffset());
+ // Check invalid negative offset fails.
+ const int32 kInvalidNegativeOffset = -kPositiveOffset + kNegativeOffset - 1;
+ cmd.Init(kInvalidNegativeOffset);
+ EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
// Check that the call values are on the stack.
cmd::Return return_cmd;
@@ -466,7 +480,7 @@ TEST_F(CommonDecoderTest, GetBucketSize) {
const uint32 kSomeOffsetInSharedMemory = 50;
uint32* memory =
engine_.GetSharedMemoryAs<uint32*>(kSomeOffsetInSharedMemory);
- *memory = 0xFFFFFFFF;
+ *memory = 0x0;
cmd.Init(kBucketId,
MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
@@ -476,6 +490,12 @@ TEST_F(CommonDecoderTest, GetBucketSize) {
cmd.Init(kInvalidBucketId,
MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
+
+ // Check that it fails if the result size is not set to zero
+ *memory = 0x1;
+ cmd.Init(kBucketId,
+ MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
+ EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
}
TEST_F(CommonDecoderTest, GetBucketData) {