OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // Tests for the command parser. | 5 // Tests for the command parser. |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "gpu/command_buffer/service/cmd_parser.h" | 9 #include "gpu/command_buffer/service/cmd_parser.h" |
10 #include "gpu/command_buffer/service/mocks.h" | 10 #include "gpu/command_buffer/service/mocks.h" |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 // correctly. | 281 // correctly. |
282 EXPECT_EQ(put_post_fail, parser->get()); | 282 EXPECT_EQ(put_post_fail, parser->get()); |
283 Mock::VerifyAndClearExpectations(api_mock()); | 283 Mock::VerifyAndClearExpectations(api_mock()); |
284 // make the second one succeed, and check that the parser recovered fine. | 284 // make the second one succeed, and check that the parser recovered fine. |
285 AddDoCommandExpect(error::kNoError, 4, 0, NULL); | 285 AddDoCommandExpect(error::kNoError, 4, 0, NULL); |
286 EXPECT_EQ(error::kNoError, parser->ProcessAllCommands()); | 286 EXPECT_EQ(error::kNoError, parser->ProcessAllCommands()); |
287 EXPECT_EQ(put, parser->get()); | 287 EXPECT_EQ(put, parser->get()); |
288 Mock::VerifyAndClearExpectations(api_mock()); | 288 Mock::VerifyAndClearExpectations(api_mock()); |
289 } | 289 } |
290 | 290 |
| 291 TEST_F(CommandParserTest, TestWaiting) { |
| 292 const unsigned int kNumEntries = 5; |
| 293 scoped_ptr<CommandParser> parser(MakeParser(kNumEntries)); |
| 294 CommandBufferOffset put = parser->put(); |
| 295 CommandHeader header; |
| 296 |
| 297 // Generate a command with size 1. |
| 298 header.size = 1; |
| 299 header.command = 3; |
| 300 buffer()[put++].value_header = header; |
| 301 |
| 302 parser->set_put(put); |
| 303 // A command that returns kWaiting should not advance the get pointer. |
| 304 AddDoCommandExpect(error::kWaiting, 3, 0, NULL); |
| 305 EXPECT_EQ(error::kWaiting, parser->ProcessAllCommands()); |
| 306 EXPECT_EQ(0, parser->get()); |
| 307 Mock::VerifyAndClearExpectations(api_mock()); |
| 308 // Not waiting should advance the get pointer. |
| 309 AddDoCommandExpect(error::kNoError, 3, 0, NULL); |
| 310 EXPECT_EQ(error::kNoError, parser->ProcessAllCommands()); |
| 311 EXPECT_EQ(put, parser->get()); |
| 312 Mock::VerifyAndClearExpectations(api_mock()); |
| 313 } |
| 314 |
291 } // namespace gpu | 315 } // namespace gpu |
OLD | NEW |