OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2009, Google Inc. | 2 * Copyright 2009, Google Inc. |
3 * All rights reserved. | 3 * All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 20 matching lines...) Expand all Loading... |
31 | 31 |
32 | 32 |
33 // Tests for the Command Buffer Helper. | 33 // Tests for the Command Buffer Helper. |
34 | 34 |
35 #include "base/at_exit.h" | 35 #include "base/at_exit.h" |
36 #include "base/message_loop.h" | 36 #include "base/message_loop.h" |
37 #include "gpu/command_buffer/client/cmd_buffer_helper.h" | 37 #include "gpu/command_buffer/client/cmd_buffer_helper.h" |
38 #include "gpu/command_buffer/service/mocks.h" | 38 #include "gpu/command_buffer/service/mocks.h" |
39 #include "gpu/command_buffer/service/command_buffer_service.h" | 39 #include "gpu/command_buffer/service/command_buffer_service.h" |
40 #include "gpu/command_buffer/service/gpu_processor.h" | 40 #include "gpu/command_buffer/service/gpu_processor.h" |
41 #include "gpu/np_utils/np_object_pointer.h" | |
42 #include "gpu/np_utils/np_browser_stub.h" | |
43 #include "testing/gtest/include/gtest/gtest.h" | 41 #include "testing/gtest/include/gtest/gtest.h" |
44 | 42 |
45 namespace command_buffer { | 43 namespace command_buffer { |
46 | 44 |
47 using command_buffer::CommandBufferService; | 45 using command_buffer::CommandBufferService; |
48 using command_buffer::GPUProcessor; | 46 using command_buffer::GPUProcessor; |
49 using np_utils::NPCreateObject; | |
50 using np_utils::NPObjectPointer; | |
51 using testing::Return; | 47 using testing::Return; |
52 using testing::Mock; | 48 using testing::Mock; |
53 using testing::Truly; | 49 using testing::Truly; |
54 using testing::Sequence; | 50 using testing::Sequence; |
55 using testing::DoAll; | 51 using testing::DoAll; |
56 using testing::Invoke; | 52 using testing::Invoke; |
57 using testing::_; | 53 using testing::_; |
58 | 54 |
59 const int32 kNumCommandEntries = 10; | 55 const int32 kNumCommandEntries = 10; |
60 const int32 kCommandBufferSizeBytes = kNumCommandEntries * sizeof(int32); | 56 const int32 kCommandBufferSizeBytes = kNumCommandEntries * sizeof(int32); |
61 | 57 |
62 // Test fixture for CommandBufferHelper test - Creates a CommandBufferHelper, | 58 // Test fixture for CommandBufferHelper test - Creates a CommandBufferHelper, |
63 // using a CommandBufferEngine with a mock AsyncAPIInterface for its interface | 59 // using a CommandBufferEngine with a mock AsyncAPIInterface for its interface |
64 // (calling it directly, not through the RPC mechanism). | 60 // (calling it directly, not through the RPC mechanism). |
65 class CommandBufferHelperTest : public testing::Test { | 61 class CommandBufferHelperTest : public testing::Test { |
66 protected: | 62 protected: |
67 virtual void SetUp() { | 63 virtual void SetUp() { |
68 api_mock_.reset(new AsyncAPIMock); | 64 api_mock_.reset(new AsyncAPIMock); |
69 // ignore noops in the mock - we don't want to inspect the internals of the | 65 // ignore noops in the mock - we don't want to inspect the internals of the |
70 // helper. | 66 // helper. |
71 EXPECT_CALL(*api_mock_, DoCommand(0, 0, _)) | 67 EXPECT_CALL(*api_mock_, DoCommand(0, 0, _)) |
72 .WillRepeatedly(Return(parse_error::kParseNoError)); | 68 .WillRepeatedly(Return(parse_error::kParseNoError)); |
73 | 69 |
74 ::base::SharedMemory* ring_buffer = new ::base::SharedMemory; | 70 base::SharedMemory* ring_buffer = new base::SharedMemory; |
75 ring_buffer->Create(std::wstring(), false, false, kCommandBufferSizeBytes); | 71 ring_buffer->Create(std::wstring(), false, false, kCommandBufferSizeBytes); |
76 ring_buffer->Map(1024); | 72 ring_buffer->Map(1024); |
77 | 73 |
78 command_buffer_.reset(new CommandBufferService); | 74 command_buffer_.reset(new CommandBufferService); |
79 command_buffer_->Initialize(ring_buffer); | 75 command_buffer_->Initialize(ring_buffer); |
80 | 76 |
81 parser_ = new command_buffer::CommandParser(ring_buffer->memory(), | 77 parser_ = new command_buffer::CommandParser(ring_buffer->memory(), |
82 kCommandBufferSizeBytes, | 78 kCommandBufferSizeBytes, |
83 0, | 79 0, |
84 kCommandBufferSizeBytes, | 80 kCommandBufferSizeBytes, |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 // we're on the bottom side, check we are below get. | 131 // we're on the bottom side, check we are below get. |
136 EXPECT_GT(parser_get, limit); | 132 EXPECT_GT(parser_get, limit); |
137 } | 133 } |
138 } | 134 } |
139 } | 135 } |
140 | 136 |
141 CommandBufferOffset get_helper_put() { return helper_->put_; } | 137 CommandBufferOffset get_helper_put() { return helper_->put_; } |
142 | 138 |
143 base::AtExitManager at_exit_manager_; | 139 base::AtExitManager at_exit_manager_; |
144 MessageLoop message_loop_; | 140 MessageLoop message_loop_; |
145 np_utils::StubNPBrowser browser_; | |
146 scoped_ptr<AsyncAPIMock> api_mock_; | 141 scoped_ptr<AsyncAPIMock> api_mock_; |
147 scoped_ptr<CommandBufferService> command_buffer_; | 142 scoped_ptr<CommandBufferService> command_buffer_; |
148 command_buffer::CommandParser* parser_; | 143 command_buffer::CommandParser* parser_; |
149 scoped_ptr<CommandBufferHelper> helper_; | 144 scoped_ptr<CommandBufferHelper> helper_; |
150 Sequence sequence_; | 145 Sequence sequence_; |
151 }; | 146 }; |
152 | 147 |
153 // Checks that commands in the buffer are properly executed, and that the | 148 // Checks that commands in the buffer are properly executed, and that the |
154 // status/error stay valid. | 149 // status/error stay valid. |
155 TEST_F(CommandBufferHelperTest, TestCommandProcessing) { | 150 TEST_F(CommandBufferHelperTest, TestCommandProcessing) { |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 | 289 |
295 // Check that the commands did happen. | 290 // Check that the commands did happen. |
296 Mock::VerifyAndClearExpectations(api_mock_.get()); | 291 Mock::VerifyAndClearExpectations(api_mock_.get()); |
297 | 292 |
298 // Check the error status. | 293 // Check the error status. |
299 EXPECT_FALSE(command_buffer_->GetErrorStatus()); | 294 EXPECT_FALSE(command_buffer_->GetErrorStatus()); |
300 EXPECT_EQ(parse_error::kParseNoError, command_buffer_->ResetParseError()); | 295 EXPECT_EQ(parse_error::kParseNoError, command_buffer_->ResetParseError()); |
301 } | 296 } |
302 | 297 |
303 } // namespace command_buffer | 298 } // namespace command_buffer |
OLD | NEW |