| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 "gpu/command_buffer/service/precompile.h" | 7 #include "gpu/command_buffer/service/precompile.h" |
| 8 | 8 |
| 9 #include "base/scoped_ptr.h" | 9 #include "base/scoped_ptr.h" |
| 10 #include "gpu/command_buffer/service/cmd_parser.h" | 10 #include "gpu/command_buffer/service/cmd_parser.h" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 private: | 63 private: |
| 64 unsigned int buffer_entry_count_; | 64 unsigned int buffer_entry_count_; |
| 65 scoped_ptr<AsyncAPIMock> api_mock_; | 65 scoped_ptr<AsyncAPIMock> api_mock_; |
| 66 scoped_array<CommandBufferEntry> buffer_; | 66 scoped_array<CommandBufferEntry> buffer_; |
| 67 Sequence sequence_; | 67 Sequence sequence_; |
| 68 }; | 68 }; |
| 69 | 69 |
| 70 // Tests initialization conditions. | 70 // Tests initialization conditions. |
| 71 TEST_F(CommandParserTest, TestInit) { | 71 TEST_F(CommandParserTest, TestInit) { |
| 72 scoped_ptr<CommandParser> parser(MakeParser(10)); | 72 scoped_ptr<CommandParser> parser(MakeParser(10)); |
| 73 EXPECT_EQ(0u, parser->get()); | 73 EXPECT_EQ(0, parser->get()); |
| 74 EXPECT_EQ(0u, parser->put()); | 74 EXPECT_EQ(0, parser->put()); |
| 75 EXPECT_TRUE(parser->IsEmpty()); | 75 EXPECT_TRUE(parser->IsEmpty()); |
| 76 } | 76 } |
| 77 | 77 |
| 78 // Tests simple commands. | 78 // Tests simple commands. |
| 79 TEST_F(CommandParserTest, TestSimple) { | 79 TEST_F(CommandParserTest, TestSimple) { |
| 80 scoped_ptr<CommandParser> parser(MakeParser(10)); | 80 scoped_ptr<CommandParser> parser(MakeParser(10)); |
| 81 CommandBufferOffset put = parser->put(); | 81 CommandBufferOffset put = parser->put(); |
| 82 CommandHeader header; | 82 CommandHeader header; |
| 83 | 83 |
| 84 // add a single command, no args | 84 // add a single command, no args |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 // add 1 command with 1 arg (2 words). That should put us at the end of the | 194 // add 1 command with 1 arg (2 words). That should put us at the end of the |
| 195 // buffer. | 195 // buffer. |
| 196 header.size = 2; | 196 header.size = 2; |
| 197 header.command = 3; | 197 header.command = 3; |
| 198 buffer()[put++].value_header = header; | 198 buffer()[put++].value_header = header; |
| 199 buffer()[put++].value_int32 = 5; | 199 buffer()[put++].value_int32 = 5; |
| 200 CommandBufferEntry param; | 200 CommandBufferEntry param; |
| 201 param.value_int32 = 5; | 201 param.value_int32 = 5; |
| 202 AddDoCommandExpect(error::kNoError, 3, 1, ¶m); | 202 AddDoCommandExpect(error::kNoError, 3, 1, ¶m); |
| 203 | 203 |
| 204 DCHECK_EQ(5u, put); | 204 DCHECK_EQ(5, put); |
| 205 put = 0; | 205 put = 0; |
| 206 parser->set_put(put); | 206 parser->set_put(put); |
| 207 EXPECT_EQ(put, parser->put()); | 207 EXPECT_EQ(put, parser->put()); |
| 208 EXPECT_EQ(error::kNoError, parser->ProcessAllCommands()); | 208 EXPECT_EQ(error::kNoError, parser->ProcessAllCommands()); |
| 209 EXPECT_EQ(put, parser->get()); | 209 EXPECT_EQ(put, parser->get()); |
| 210 Mock::VerifyAndClearExpectations(api_mock()); | 210 Mock::VerifyAndClearExpectations(api_mock()); |
| 211 | 211 |
| 212 // add 1 command with 1 arg (2 words). | 212 // add 1 command with 1 arg (2 words). |
| 213 header.size = 2; | 213 header.size = 2; |
| 214 header.command = 4; | 214 header.command = 4; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 EXPECT_EQ(put_post_fail, parser->get()); | 279 EXPECT_EQ(put_post_fail, parser->get()); |
| 280 Mock::VerifyAndClearExpectations(api_mock()); | 280 Mock::VerifyAndClearExpectations(api_mock()); |
| 281 // make the second one succeed, and check that the parser recovered fine. | 281 // make the second one succeed, and check that the parser recovered fine. |
| 282 AddDoCommandExpect(error::kNoError, 4, 0, NULL); | 282 AddDoCommandExpect(error::kNoError, 4, 0, NULL); |
| 283 EXPECT_EQ(error::kNoError, parser->ProcessAllCommands()); | 283 EXPECT_EQ(error::kNoError, parser->ProcessAllCommands()); |
| 284 EXPECT_EQ(put, parser->get()); | 284 EXPECT_EQ(put, parser->get()); |
| 285 Mock::VerifyAndClearExpectations(api_mock()); | 285 Mock::VerifyAndClearExpectations(api_mock()); |
| 286 } | 286 } |
| 287 | 287 |
| 288 } // namespace gpu | 288 } // namespace gpu |
| OLD | NEW |