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

Side by Side Diff: gpu/command_buffer/service/mocks.h

Issue 558513003: command_buffer: Batch command processing to reduce handler overheads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 6 years, 3 months 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // This file contains definitions for mock objects, used for testing. 5 // This file contains definitions for mock objects, used for testing.
6 6
7 // TODO(apatrick): This file "manually" defines some mock objects. Using gMock 7 // TODO(apatrick): This file "manually" defines some mock objects. Using gMock
8 // would be definitely preferable, unfortunately it doesn't work on Windows yet. 8 // would be definitely preferable, unfortunately it doesn't work on Windows yet.
9 9
10 #ifndef GPU_COMMAND_BUFFER_SERVICE_MOCKS_H_ 10 #ifndef GPU_COMMAND_BUFFER_SERVICE_MOCKS_H_
11 #define GPU_COMMAND_BUFFER_SERVICE_MOCKS_H_ 11 #define GPU_COMMAND_BUFFER_SERVICE_MOCKS_H_
12 12
13 #include <string> 13 #include <string>
14 #include <vector> 14 #include <vector>
15 15
16 #include "base/logging.h" 16 #include "base/logging.h"
17 #include "gpu/command_buffer/service/cmd_parser.h" 17 #include "gpu/command_buffer/service/cmd_parser.h"
18 #include "gpu/command_buffer/service/cmd_buffer_engine.h" 18 #include "gpu/command_buffer/service/cmd_buffer_engine.h"
19 #include "gpu/command_buffer/service/memory_tracking.h" 19 #include "gpu/command_buffer/service/memory_tracking.h"
20 #include "gpu/command_buffer/service/program_cache.h" 20 #include "gpu/command_buffer/service/program_cache.h"
21 #include "gpu/command_buffer/service/shader_translator.h" 21 #include "gpu/command_buffer/service/shader_translator.h"
22 #include "testing/gmock/include/gmock/gmock.h" 22 #include "testing/gmock/include/gmock/gmock.h"
23 23
24 namespace gpu { 24 namespace gpu {
25 25
26 // Mocks an AsyncAPIInterface, using GMock. 26 // Mocks an AsyncAPIInterface, using GMock.
27 class AsyncAPIMock : public AsyncAPIInterface { 27 class AsyncAPIMock : public AsyncAPIInterface {
28 public: 28 public:
29 AsyncAPIMock(); 29 explicit AsyncAPIMock(bool default_do_commands);
30 virtual ~AsyncAPIMock(); 30 virtual ~AsyncAPIMock();
31 31
32 error::Error FakeDoCommands(unsigned int num_commands,
33 const void* buffer,
34 int num_entries,
35 int* entries_processed);
36
32 // Predicate that matches args passed to DoCommand, by looking at the values. 37 // Predicate that matches args passed to DoCommand, by looking at the values.
33 class IsArgs { 38 class IsArgs {
34 public: 39 public:
35 IsArgs(unsigned int arg_count, const void* args) 40 IsArgs(unsigned int arg_count, const void* args)
36 : arg_count_(arg_count), 41 : arg_count_(arg_count),
37 args_(static_cast<CommandBufferEntry*>(const_cast<void*>(args))) { 42 args_(static_cast<CommandBufferEntry*>(const_cast<void*>(args))) {
38 } 43 }
39 44
40 bool operator() (const void* _args) const { 45 bool operator() (const void* _args) const {
41 const CommandBufferEntry* args = 46 const CommandBufferEntry* args =
42 static_cast<const CommandBufferEntry*>(_args) + 1; 47 static_cast<const CommandBufferEntry*>(_args) + 1;
43 for (unsigned int i = 0; i < arg_count_; ++i) { 48 for (unsigned int i = 0; i < arg_count_; ++i) {
44 if (args[i].value_uint32 != args_[i].value_uint32) return false; 49 if (args[i].value_uint32 != args_[i].value_uint32) return false;
45 } 50 }
46 return true; 51 return true;
47 } 52 }
48 53
49 private: 54 private:
50 unsigned int arg_count_; 55 unsigned int arg_count_;
51 CommandBufferEntry *args_; 56 CommandBufferEntry *args_;
52 }; 57 };
53 58
54 MOCK_METHOD3(DoCommand, error::Error( 59 MOCK_METHOD3(DoCommand, error::Error(
55 unsigned int command, 60 unsigned int command,
56 unsigned int arg_count, 61 unsigned int arg_count,
57 const void* cmd_data)); 62 const void* cmd_data));
58 63
64 MOCK_METHOD4(DoCommands,
65 error::Error(unsigned int num_commands,
66 const void* buffer,
67 int num_entries,
68 int* entries_processed));
69
59 const char* GetCommandName(unsigned int command_id) const { 70 const char* GetCommandName(unsigned int command_id) const {
60 return ""; 71 return "";
61 }; 72 };
62 73
63 // Sets the engine, to forward SetToken commands to it. 74 // Sets the engine, to forward SetToken commands to it.
64 void set_engine(CommandBufferEngine *engine) { engine_ = engine; } 75 void set_engine(CommandBufferEngine *engine) { engine_ = engine; }
65 76
66 // Forwards the SetToken commands to the engine. 77 // Forwards the SetToken commands to the engine.
67 void SetToken(unsigned int command, 78 void SetToken(unsigned int command,
68 unsigned int arg_count, 79 unsigned int arg_count,
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 private: 155 private:
145 friend class ::testing::StrictMock<MockMemoryTracker>; 156 friend class ::testing::StrictMock<MockMemoryTracker>;
146 friend class base::RefCounted< ::testing::StrictMock<MockMemoryTracker> >; 157 friend class base::RefCounted< ::testing::StrictMock<MockMemoryTracker> >;
147 virtual ~MockMemoryTracker(); 158 virtual ~MockMemoryTracker();
148 }; 159 };
149 160
150 } // namespace gles2 161 } // namespace gles2
151 } // namespace gpu 162 } // namespace gpu
152 163
153 #endif // GPU_COMMAND_BUFFER_SERVICE_MOCKS_H_ 164 #endif // GPU_COMMAND_BUFFER_SERVICE_MOCKS_H_
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gpu_scheduler_unittest.cc ('k') | gpu/command_buffer/service/mocks.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698