Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(798)

Side by Side Diff: gpu/command_buffer/client/cmd_buffer_helper_test.cc

Issue 465040: Added CommandBufferClient, CommandBufferStub and some IPC messages.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 22 matching lines...) Expand all
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 "testing/gtest/include/gtest/gtest.h" 41 #include "testing/gtest/include/gtest/gtest.h"
42 42
43 namespace command_buffer { 43 namespace gpu {
44 44
45 using command_buffer::CommandBufferService; 45 using gpu::CommandBufferService;
46 using command_buffer::GPUProcessor; 46 using gpu::GPUProcessor;
47 using testing::Return; 47 using testing::Return;
48 using testing::Mock; 48 using testing::Mock;
49 using testing::Truly; 49 using testing::Truly;
50 using testing::Sequence; 50 using testing::Sequence;
51 using testing::DoAll; 51 using testing::DoAll;
52 using testing::Invoke; 52 using testing::Invoke;
53 using testing::_; 53 using testing::_;
54 54
55 const int32 kNumCommandEntries = 10; 55 const int32 kNumCommandEntries = 10;
56 const int32 kCommandBufferSizeBytes = kNumCommandEntries * sizeof(int32); 56 const int32 kCommandBufferSizeBytes =
57 kNumCommandEntries * sizeof(CommandBufferEntry);
57 58
58 // Test fixture for CommandBufferHelper test - Creates a CommandBufferHelper, 59 // Test fixture for CommandBufferHelper test - Creates a CommandBufferHelper,
59 // using a CommandBufferEngine with a mock AsyncAPIInterface for its interface 60 // using a CommandBufferEngine with a mock AsyncAPIInterface for its interface
60 // (calling it directly, not through the RPC mechanism). 61 // (calling it directly, not through the RPC mechanism).
61 class CommandBufferHelperTest : public testing::Test { 62 class CommandBufferHelperTest : public testing::Test {
62 protected: 63 protected:
63 virtual void SetUp() { 64 virtual void SetUp() {
64 api_mock_.reset(new AsyncAPIMock); 65 api_mock_.reset(new AsyncAPIMock);
65 // ignore noops in the mock - we don't want to inspect the internals of the 66 // ignore noops in the mock - we don't want to inspect the internals of the
66 // helper. 67 // helper.
67 EXPECT_CALL(*api_mock_, DoCommand(0, 0, _)) 68 EXPECT_CALL(*api_mock_, DoCommand(0, 0, _))
68 .WillRepeatedly(Return(parse_error::kParseNoError)); 69 .WillRepeatedly(Return(parse_error::kParseNoError));
69 70
70 base::SharedMemory* ring_buffer = new base::SharedMemory; 71 command_buffer_.reset(new CommandBufferService);
71 ring_buffer->Create(std::wstring(), false, false, kCommandBufferSizeBytes); 72 base::SharedMemory* ring_buffer = command_buffer_->Initialize(
72 ring_buffer->Map(1024); 73 kNumCommandEntries);
73 74
74 command_buffer_.reset(new CommandBufferService);
75 command_buffer_->Initialize(ring_buffer);
76 75
77 parser_ = new command_buffer::CommandParser(ring_buffer->memory(), 76 parser_ = new gpu::CommandParser(ring_buffer->memory(),
78 kCommandBufferSizeBytes, 77 kCommandBufferSizeBytes,
79 0, 78 0,
80 kCommandBufferSizeBytes, 79 kCommandBufferSizeBytes,
81 0, 80 0,
82 api_mock_.get()); 81 api_mock_.get());
83 82
84 scoped_refptr<GPUProcessor> gpu_processor(new GPUProcessor( 83 scoped_refptr<GPUProcessor> gpu_processor(new GPUProcessor(
85 command_buffer_.get(), NULL, parser_, 1)); 84 command_buffer_.get(), NULL, parser_, 1));
86 command_buffer_->SetPutOffsetChangeCallback(NewCallback( 85 command_buffer_->SetPutOffsetChangeCallback(NewCallback(
87 gpu_processor.get(), &GPUProcessor::ProcessCommands)); 86 gpu_processor.get(), &GPUProcessor::ProcessCommands));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 } 132 }
134 } 133 }
135 } 134 }
136 135
137 CommandBufferOffset get_helper_put() { return helper_->put_; } 136 CommandBufferOffset get_helper_put() { return helper_->put_; }
138 137
139 base::AtExitManager at_exit_manager_; 138 base::AtExitManager at_exit_manager_;
140 MessageLoop message_loop_; 139 MessageLoop message_loop_;
141 scoped_ptr<AsyncAPIMock> api_mock_; 140 scoped_ptr<AsyncAPIMock> api_mock_;
142 scoped_ptr<CommandBufferService> command_buffer_; 141 scoped_ptr<CommandBufferService> command_buffer_;
143 command_buffer::CommandParser* parser_; 142 gpu::CommandParser* parser_;
144 scoped_ptr<CommandBufferHelper> helper_; 143 scoped_ptr<CommandBufferHelper> helper_;
145 Sequence sequence_; 144 Sequence sequence_;
146 }; 145 };
147 146
148 // Checks that commands in the buffer are properly executed, and that the 147 // Checks that commands in the buffer are properly executed, and that the
149 // status/error stay valid. 148 // status/error stay valid.
150 TEST_F(CommandBufferHelperTest, TestCommandProcessing) { 149 TEST_F(CommandBufferHelperTest, TestCommandProcessing) {
151 // Check initial state of the engine - it should have been configured by the 150 // Check initial state of the engine - it should have been configured by the
152 // helper. 151 // helper.
153 EXPECT_TRUE(parser_ != NULL); 152 EXPECT_TRUE(parser_ != NULL);
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 helper_->Finish(); 287 helper_->Finish();
289 288
290 // Check that the commands did happen. 289 // Check that the commands did happen.
291 Mock::VerifyAndClearExpectations(api_mock_.get()); 290 Mock::VerifyAndClearExpectations(api_mock_.get());
292 291
293 // Check the error status. 292 // Check the error status.
294 EXPECT_FALSE(command_buffer_->GetErrorStatus()); 293 EXPECT_FALSE(command_buffer_->GetErrorStatus());
295 EXPECT_EQ(parse_error::kParseNoError, command_buffer_->ResetParseError()); 294 EXPECT_EQ(parse_error::kParseNoError, command_buffer_->ResetParseError());
296 } 295 }
297 296
298 } // namespace command_buffer 297 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/cmd_buffer_helper.cc ('k') | gpu/command_buffer/client/fenced_allocator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698