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

Side by Side Diff: gpu/command_buffer/common/gles2_cmd_format_test_autogen.h

Issue 7789021: Fix GPU cmd tests so they pass ASAN (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 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 | Annotate | Revision Log
OLDNEW
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 // This file is auto-generated from 5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py 6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // DO NOT EDIT! 7 // DO NOT EDIT!
8 8
9 // This file contains unit tests for gles2 commmands 9 // This file contains unit tests for gles2 commmands
10 // It is included by gles2_cmd_format_test.cc 10 // It is included by gles2_cmd_format_test.cc
11 11
12 #ifndef GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_TEST_AUTOGEN_H_ 12 #ifndef GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_TEST_AUTOGEN_H_
13 #define GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_TEST_AUTOGEN_H_ 13 #define GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_TEST_AUTOGEN_H_
14 14
15 TEST(GLES2FormatTest, ActiveTexture) { 15 TEST_F(GLES2FormatTest, ActiveTexture) {
16 ActiveTexture cmd = { { 0 } }; 16 ActiveTexture& cmd = *GetBufferAs<ActiveTexture>();
17 void* next_cmd = cmd.Set( 17 void* next_cmd = cmd.Set(
18 &cmd, 18 &cmd,
19 static_cast<GLenum>(11)); 19 static_cast<GLenum>(11));
20 EXPECT_EQ(static_cast<uint32>(ActiveTexture::kCmdId), 20 EXPECT_EQ(static_cast<uint32>(ActiveTexture::kCmdId),
21 cmd.header.command); 21 cmd.header.command);
22 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 22 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
23 EXPECT_EQ(static_cast<char*>(next_cmd),
24 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
25 EXPECT_EQ(static_cast<GLenum>(11), cmd.texture); 23 EXPECT_EQ(static_cast<GLenum>(11), cmd.texture);
24 CheckBytesWrittenMatchesExpectedSize(
25 next_cmd, sizeof(cmd));
26 } 26 }
27 27
28 TEST(GLES2FormatTest, AttachShader) { 28 TEST_F(GLES2FormatTest, AttachShader) {
29 AttachShader cmd = { { 0 } }; 29 AttachShader& cmd = *GetBufferAs<AttachShader>();
30 void* next_cmd = cmd.Set( 30 void* next_cmd = cmd.Set(
31 &cmd, 31 &cmd,
32 static_cast<GLuint>(11), 32 static_cast<GLuint>(11),
33 static_cast<GLuint>(12)); 33 static_cast<GLuint>(12));
34 EXPECT_EQ(static_cast<uint32>(AttachShader::kCmdId), 34 EXPECT_EQ(static_cast<uint32>(AttachShader::kCmdId),
35 cmd.header.command); 35 cmd.header.command);
36 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 36 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
37 EXPECT_EQ(static_cast<char*>(next_cmd),
38 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
39 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 37 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
40 EXPECT_EQ(static_cast<GLuint>(12), cmd.shader); 38 EXPECT_EQ(static_cast<GLuint>(12), cmd.shader);
39 CheckBytesWrittenMatchesExpectedSize(
40 next_cmd, sizeof(cmd));
41 } 41 }
42 42
43 TEST(GLES2FormatTest, BindAttribLocation) { 43 TEST_F(GLES2FormatTest, BindAttribLocation) {
44 BindAttribLocation cmd = { { 0 } }; 44 BindAttribLocation& cmd = *GetBufferAs<BindAttribLocation>();
45 void* next_cmd = cmd.Set( 45 void* next_cmd = cmd.Set(
46 &cmd, 46 &cmd,
47 static_cast<GLuint>(11), 47 static_cast<GLuint>(11),
48 static_cast<GLuint>(12), 48 static_cast<GLuint>(12),
49 static_cast<uint32>(13), 49 static_cast<uint32>(13),
50 static_cast<uint32>(14), 50 static_cast<uint32>(14),
51 static_cast<uint32>(15)); 51 static_cast<uint32>(15));
52 EXPECT_EQ(static_cast<uint32>(BindAttribLocation::kCmdId), 52 EXPECT_EQ(static_cast<uint32>(BindAttribLocation::kCmdId),
53 cmd.header.command); 53 cmd.header.command);
54 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 54 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
55 EXPECT_EQ(static_cast<char*>(next_cmd),
56 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
57 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 55 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
58 EXPECT_EQ(static_cast<GLuint>(12), cmd.index); 56 EXPECT_EQ(static_cast<GLuint>(12), cmd.index);
59 EXPECT_EQ(static_cast<uint32>(13), cmd.name_shm_id); 57 EXPECT_EQ(static_cast<uint32>(13), cmd.name_shm_id);
60 EXPECT_EQ(static_cast<uint32>(14), cmd.name_shm_offset); 58 EXPECT_EQ(static_cast<uint32>(14), cmd.name_shm_offset);
61 EXPECT_EQ(static_cast<uint32>(15), cmd.data_size); 59 EXPECT_EQ(static_cast<uint32>(15), cmd.data_size);
60 CheckBytesWrittenMatchesExpectedSize(
61 next_cmd, sizeof(cmd));
62 } 62 }
63 63
64 64
65 TEST(GLES2FormatTest, BindAttribLocationImmediate) { 65 TEST_F(GLES2FormatTest, BindAttribLocationImmediate) {
66 int8 buf[256] = { 0, };
67 BindAttribLocationImmediate& cmd = 66 BindAttribLocationImmediate& cmd =
68 *static_cast<BindAttribLocationImmediate*>(static_cast<void*>(&buf)); 67 *GetBufferAs<BindAttribLocationImmediate>();
69 static const char* const test_str = "test string"; 68 static const char* const test_str = "test string";
70 void* next_cmd = cmd.Set( 69 void* next_cmd = cmd.Set(
71 &cmd, 70 &cmd,
72 static_cast<GLuint>(11), 71 static_cast<GLuint>(11),
73 static_cast<GLuint>(12), 72 static_cast<GLuint>(12),
74 test_str, 73 test_str,
75 strlen(test_str)); 74 strlen(test_str));
76 EXPECT_EQ(static_cast<uint32>(BindAttribLocationImmediate::kCmdId), 75 EXPECT_EQ(static_cast<uint32>(BindAttribLocationImmediate::kCmdId),
77 cmd.header.command); 76 cmd.header.command);
78 EXPECT_EQ(sizeof(cmd) + 77 EXPECT_EQ(sizeof(cmd) +
79 RoundSizeToMultipleOfEntries(strlen(test_str)), 78 RoundSizeToMultipleOfEntries(strlen(test_str)),
80 cmd.header.size * 4u); 79 cmd.header.size * 4u);
81 EXPECT_EQ(static_cast<char*>(next_cmd), 80 EXPECT_EQ(static_cast<char*>(next_cmd),
82 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + 81 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
83 RoundSizeToMultipleOfEntries(strlen(test_str))); 82 RoundSizeToMultipleOfEntries(strlen(test_str)));
84 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 83 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
85 EXPECT_EQ(static_cast<GLuint>(12), cmd.index); 84 EXPECT_EQ(static_cast<GLuint>(12), cmd.index);
86 EXPECT_EQ(static_cast<uint32>(strlen(test_str)), cmd.data_size); 85 EXPECT_EQ(static_cast<uint32>(strlen(test_str)), cmd.data_size);
87 EXPECT_EQ(0, memcmp(test_str, ImmediateDataAddress(&cmd), strlen(test_str))); 86 EXPECT_EQ(0, memcmp(test_str, ImmediateDataAddress(&cmd), strlen(test_str)));
87 CheckBytesWritten(
88 next_cmd,
89 sizeof(cmd) + RoundSizeToMultipleOfEntries(strlen(test_str)),
90 sizeof(cmd) + strlen(test_str));
88 } 91 }
89 92
90 TEST(GLES2FormatTest, BindAttribLocationBucket) { 93 TEST_F(GLES2FormatTest, BindAttribLocationBucket) {
91 BindAttribLocationBucket cmd = { { 0 } }; 94 BindAttribLocationBucket& cmd = *GetBufferAs<BindAttribLocationBucket>();
92 void* next_cmd = cmd.Set( 95 void* next_cmd = cmd.Set(
93 &cmd, 96 &cmd,
94 static_cast<GLuint>(11), 97 static_cast<GLuint>(11),
95 static_cast<GLuint>(12), 98 static_cast<GLuint>(12),
96 static_cast<uint32>(13)); 99 static_cast<uint32>(13));
97 EXPECT_EQ(static_cast<uint32>(BindAttribLocationBucket::kCmdId), 100 EXPECT_EQ(static_cast<uint32>(BindAttribLocationBucket::kCmdId),
98 cmd.header.command); 101 cmd.header.command);
99 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 102 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
100 EXPECT_EQ(static_cast<char*>(next_cmd),
101 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
102 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 103 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
103 EXPECT_EQ(static_cast<GLuint>(12), cmd.index); 104 EXPECT_EQ(static_cast<GLuint>(12), cmd.index);
104 EXPECT_EQ(static_cast<uint32>(13), cmd.name_bucket_id); 105 EXPECT_EQ(static_cast<uint32>(13), cmd.name_bucket_id);
106 CheckBytesWrittenMatchesExpectedSize(
107 next_cmd, sizeof(cmd));
105 } 108 }
106 109
107 TEST(GLES2FormatTest, BindBuffer) { 110 TEST_F(GLES2FormatTest, BindBuffer) {
108 BindBuffer cmd = { { 0 } }; 111 BindBuffer& cmd = *GetBufferAs<BindBuffer>();
109 void* next_cmd = cmd.Set( 112 void* next_cmd = cmd.Set(
110 &cmd, 113 &cmd,
111 static_cast<GLenum>(11), 114 static_cast<GLenum>(11),
112 static_cast<GLuint>(12)); 115 static_cast<GLuint>(12));
113 EXPECT_EQ(static_cast<uint32>(BindBuffer::kCmdId), 116 EXPECT_EQ(static_cast<uint32>(BindBuffer::kCmdId),
114 cmd.header.command); 117 cmd.header.command);
115 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 118 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
116 EXPECT_EQ(static_cast<char*>(next_cmd),
117 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
118 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 119 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
119 EXPECT_EQ(static_cast<GLuint>(12), cmd.buffer); 120 EXPECT_EQ(static_cast<GLuint>(12), cmd.buffer);
121 CheckBytesWrittenMatchesExpectedSize(
122 next_cmd, sizeof(cmd));
120 } 123 }
121 124
122 TEST(GLES2FormatTest, BindFramebuffer) { 125 TEST_F(GLES2FormatTest, BindFramebuffer) {
123 BindFramebuffer cmd = { { 0 } }; 126 BindFramebuffer& cmd = *GetBufferAs<BindFramebuffer>();
124 void* next_cmd = cmd.Set( 127 void* next_cmd = cmd.Set(
125 &cmd, 128 &cmd,
126 static_cast<GLenum>(11), 129 static_cast<GLenum>(11),
127 static_cast<GLuint>(12)); 130 static_cast<GLuint>(12));
128 EXPECT_EQ(static_cast<uint32>(BindFramebuffer::kCmdId), 131 EXPECT_EQ(static_cast<uint32>(BindFramebuffer::kCmdId),
129 cmd.header.command); 132 cmd.header.command);
130 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 133 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
131 EXPECT_EQ(static_cast<char*>(next_cmd),
132 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
133 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 134 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
134 EXPECT_EQ(static_cast<GLuint>(12), cmd.framebuffer); 135 EXPECT_EQ(static_cast<GLuint>(12), cmd.framebuffer);
136 CheckBytesWrittenMatchesExpectedSize(
137 next_cmd, sizeof(cmd));
135 } 138 }
136 139
137 TEST(GLES2FormatTest, BindRenderbuffer) { 140 TEST_F(GLES2FormatTest, BindRenderbuffer) {
138 BindRenderbuffer cmd = { { 0 } }; 141 BindRenderbuffer& cmd = *GetBufferAs<BindRenderbuffer>();
139 void* next_cmd = cmd.Set( 142 void* next_cmd = cmd.Set(
140 &cmd, 143 &cmd,
141 static_cast<GLenum>(11), 144 static_cast<GLenum>(11),
142 static_cast<GLuint>(12)); 145 static_cast<GLuint>(12));
143 EXPECT_EQ(static_cast<uint32>(BindRenderbuffer::kCmdId), 146 EXPECT_EQ(static_cast<uint32>(BindRenderbuffer::kCmdId),
144 cmd.header.command); 147 cmd.header.command);
145 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 148 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
146 EXPECT_EQ(static_cast<char*>(next_cmd),
147 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
148 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 149 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
149 EXPECT_EQ(static_cast<GLuint>(12), cmd.renderbuffer); 150 EXPECT_EQ(static_cast<GLuint>(12), cmd.renderbuffer);
151 CheckBytesWrittenMatchesExpectedSize(
152 next_cmd, sizeof(cmd));
150 } 153 }
151 154
152 TEST(GLES2FormatTest, BindTexture) { 155 TEST_F(GLES2FormatTest, BindTexture) {
153 BindTexture cmd = { { 0 } }; 156 BindTexture& cmd = *GetBufferAs<BindTexture>();
154 void* next_cmd = cmd.Set( 157 void* next_cmd = cmd.Set(
155 &cmd, 158 &cmd,
156 static_cast<GLenum>(11), 159 static_cast<GLenum>(11),
157 static_cast<GLuint>(12)); 160 static_cast<GLuint>(12));
158 EXPECT_EQ(static_cast<uint32>(BindTexture::kCmdId), 161 EXPECT_EQ(static_cast<uint32>(BindTexture::kCmdId),
159 cmd.header.command); 162 cmd.header.command);
160 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 163 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
161 EXPECT_EQ(static_cast<char*>(next_cmd),
162 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
163 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 164 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
164 EXPECT_EQ(static_cast<GLuint>(12), cmd.texture); 165 EXPECT_EQ(static_cast<GLuint>(12), cmd.texture);
166 CheckBytesWrittenMatchesExpectedSize(
167 next_cmd, sizeof(cmd));
165 } 168 }
166 169
167 TEST(GLES2FormatTest, BlendColor) { 170 TEST_F(GLES2FormatTest, BlendColor) {
168 BlendColor cmd = { { 0 } }; 171 BlendColor& cmd = *GetBufferAs<BlendColor>();
169 void* next_cmd = cmd.Set( 172 void* next_cmd = cmd.Set(
170 &cmd, 173 &cmd,
171 static_cast<GLclampf>(11), 174 static_cast<GLclampf>(11),
172 static_cast<GLclampf>(12), 175 static_cast<GLclampf>(12),
173 static_cast<GLclampf>(13), 176 static_cast<GLclampf>(13),
174 static_cast<GLclampf>(14)); 177 static_cast<GLclampf>(14));
175 EXPECT_EQ(static_cast<uint32>(BlendColor::kCmdId), 178 EXPECT_EQ(static_cast<uint32>(BlendColor::kCmdId),
176 cmd.header.command); 179 cmd.header.command);
177 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 180 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
178 EXPECT_EQ(static_cast<char*>(next_cmd),
179 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
180 EXPECT_EQ(static_cast<GLclampf>(11), cmd.red); 181 EXPECT_EQ(static_cast<GLclampf>(11), cmd.red);
181 EXPECT_EQ(static_cast<GLclampf>(12), cmd.green); 182 EXPECT_EQ(static_cast<GLclampf>(12), cmd.green);
182 EXPECT_EQ(static_cast<GLclampf>(13), cmd.blue); 183 EXPECT_EQ(static_cast<GLclampf>(13), cmd.blue);
183 EXPECT_EQ(static_cast<GLclampf>(14), cmd.alpha); 184 EXPECT_EQ(static_cast<GLclampf>(14), cmd.alpha);
185 CheckBytesWrittenMatchesExpectedSize(
186 next_cmd, sizeof(cmd));
184 } 187 }
185 188
186 TEST(GLES2FormatTest, BlendEquation) { 189 TEST_F(GLES2FormatTest, BlendEquation) {
187 BlendEquation cmd = { { 0 } }; 190 BlendEquation& cmd = *GetBufferAs<BlendEquation>();
188 void* next_cmd = cmd.Set( 191 void* next_cmd = cmd.Set(
189 &cmd, 192 &cmd,
190 static_cast<GLenum>(11)); 193 static_cast<GLenum>(11));
191 EXPECT_EQ(static_cast<uint32>(BlendEquation::kCmdId), 194 EXPECT_EQ(static_cast<uint32>(BlendEquation::kCmdId),
192 cmd.header.command); 195 cmd.header.command);
193 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 196 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
194 EXPECT_EQ(static_cast<char*>(next_cmd),
195 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
196 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 197 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode);
198 CheckBytesWrittenMatchesExpectedSize(
199 next_cmd, sizeof(cmd));
197 } 200 }
198 201
199 TEST(GLES2FormatTest, BlendEquationSeparate) { 202 TEST_F(GLES2FormatTest, BlendEquationSeparate) {
200 BlendEquationSeparate cmd = { { 0 } }; 203 BlendEquationSeparate& cmd = *GetBufferAs<BlendEquationSeparate>();
201 void* next_cmd = cmd.Set( 204 void* next_cmd = cmd.Set(
202 &cmd, 205 &cmd,
203 static_cast<GLenum>(11), 206 static_cast<GLenum>(11),
204 static_cast<GLenum>(12)); 207 static_cast<GLenum>(12));
205 EXPECT_EQ(static_cast<uint32>(BlendEquationSeparate::kCmdId), 208 EXPECT_EQ(static_cast<uint32>(BlendEquationSeparate::kCmdId),
206 cmd.header.command); 209 cmd.header.command);
207 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 210 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
208 EXPECT_EQ(static_cast<char*>(next_cmd),
209 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
210 EXPECT_EQ(static_cast<GLenum>(11), cmd.modeRGB); 211 EXPECT_EQ(static_cast<GLenum>(11), cmd.modeRGB);
211 EXPECT_EQ(static_cast<GLenum>(12), cmd.modeAlpha); 212 EXPECT_EQ(static_cast<GLenum>(12), cmd.modeAlpha);
213 CheckBytesWrittenMatchesExpectedSize(
214 next_cmd, sizeof(cmd));
212 } 215 }
213 216
214 TEST(GLES2FormatTest, BlendFunc) { 217 TEST_F(GLES2FormatTest, BlendFunc) {
215 BlendFunc cmd = { { 0 } }; 218 BlendFunc& cmd = *GetBufferAs<BlendFunc>();
216 void* next_cmd = cmd.Set( 219 void* next_cmd = cmd.Set(
217 &cmd, 220 &cmd,
218 static_cast<GLenum>(11), 221 static_cast<GLenum>(11),
219 static_cast<GLenum>(12)); 222 static_cast<GLenum>(12));
220 EXPECT_EQ(static_cast<uint32>(BlendFunc::kCmdId), 223 EXPECT_EQ(static_cast<uint32>(BlendFunc::kCmdId),
221 cmd.header.command); 224 cmd.header.command);
222 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 225 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
223 EXPECT_EQ(static_cast<char*>(next_cmd),
224 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
225 EXPECT_EQ(static_cast<GLenum>(11), cmd.sfactor); 226 EXPECT_EQ(static_cast<GLenum>(11), cmd.sfactor);
226 EXPECT_EQ(static_cast<GLenum>(12), cmd.dfactor); 227 EXPECT_EQ(static_cast<GLenum>(12), cmd.dfactor);
228 CheckBytesWrittenMatchesExpectedSize(
229 next_cmd, sizeof(cmd));
227 } 230 }
228 231
229 TEST(GLES2FormatTest, BlendFuncSeparate) { 232 TEST_F(GLES2FormatTest, BlendFuncSeparate) {
230 BlendFuncSeparate cmd = { { 0 } }; 233 BlendFuncSeparate& cmd = *GetBufferAs<BlendFuncSeparate>();
231 void* next_cmd = cmd.Set( 234 void* next_cmd = cmd.Set(
232 &cmd, 235 &cmd,
233 static_cast<GLenum>(11), 236 static_cast<GLenum>(11),
234 static_cast<GLenum>(12), 237 static_cast<GLenum>(12),
235 static_cast<GLenum>(13), 238 static_cast<GLenum>(13),
236 static_cast<GLenum>(14)); 239 static_cast<GLenum>(14));
237 EXPECT_EQ(static_cast<uint32>(BlendFuncSeparate::kCmdId), 240 EXPECT_EQ(static_cast<uint32>(BlendFuncSeparate::kCmdId),
238 cmd.header.command); 241 cmd.header.command);
239 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 242 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
240 EXPECT_EQ(static_cast<char*>(next_cmd),
241 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
242 EXPECT_EQ(static_cast<GLenum>(11), cmd.srcRGB); 243 EXPECT_EQ(static_cast<GLenum>(11), cmd.srcRGB);
243 EXPECT_EQ(static_cast<GLenum>(12), cmd.dstRGB); 244 EXPECT_EQ(static_cast<GLenum>(12), cmd.dstRGB);
244 EXPECT_EQ(static_cast<GLenum>(13), cmd.srcAlpha); 245 EXPECT_EQ(static_cast<GLenum>(13), cmd.srcAlpha);
245 EXPECT_EQ(static_cast<GLenum>(14), cmd.dstAlpha); 246 EXPECT_EQ(static_cast<GLenum>(14), cmd.dstAlpha);
247 CheckBytesWrittenMatchesExpectedSize(
248 next_cmd, sizeof(cmd));
246 } 249 }
247 250
248 TEST(GLES2FormatTest, BufferData) { 251 TEST_F(GLES2FormatTest, BufferData) {
249 BufferData cmd = { { 0 } }; 252 BufferData& cmd = *GetBufferAs<BufferData>();
250 void* next_cmd = cmd.Set( 253 void* next_cmd = cmd.Set(
251 &cmd, 254 &cmd,
252 static_cast<GLenum>(11), 255 static_cast<GLenum>(11),
253 static_cast<GLsizeiptr>(12), 256 static_cast<GLsizeiptr>(12),
254 static_cast<uint32>(13), 257 static_cast<uint32>(13),
255 static_cast<uint32>(14), 258 static_cast<uint32>(14),
256 static_cast<GLenum>(15)); 259 static_cast<GLenum>(15));
257 EXPECT_EQ(static_cast<uint32>(BufferData::kCmdId), 260 EXPECT_EQ(static_cast<uint32>(BufferData::kCmdId),
258 cmd.header.command); 261 cmd.header.command);
259 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 262 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
260 EXPECT_EQ(static_cast<char*>(next_cmd),
261 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
262 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 263 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
263 EXPECT_EQ(static_cast<GLsizeiptr>(12), cmd.size); 264 EXPECT_EQ(static_cast<GLsizeiptr>(12), cmd.size);
264 EXPECT_EQ(static_cast<uint32>(13), cmd.data_shm_id); 265 EXPECT_EQ(static_cast<uint32>(13), cmd.data_shm_id);
265 EXPECT_EQ(static_cast<uint32>(14), cmd.data_shm_offset); 266 EXPECT_EQ(static_cast<uint32>(14), cmd.data_shm_offset);
266 EXPECT_EQ(static_cast<GLenum>(15), cmd.usage); 267 EXPECT_EQ(static_cast<GLenum>(15), cmd.usage);
268 CheckBytesWrittenMatchesExpectedSize(
269 next_cmd, sizeof(cmd));
267 } 270 }
268 271
269 // TODO(gman): Implement test for BufferDataImmediate 272 // TODO(gman): Implement test for BufferDataImmediate
270 TEST(GLES2FormatTest, BufferSubData) { 273 TEST_F(GLES2FormatTest, BufferSubData) {
271 BufferSubData cmd = { { 0 } }; 274 BufferSubData& cmd = *GetBufferAs<BufferSubData>();
272 void* next_cmd = cmd.Set( 275 void* next_cmd = cmd.Set(
273 &cmd, 276 &cmd,
274 static_cast<GLenum>(11), 277 static_cast<GLenum>(11),
275 static_cast<GLintptr>(12), 278 static_cast<GLintptr>(12),
276 static_cast<GLsizeiptr>(13), 279 static_cast<GLsizeiptr>(13),
277 static_cast<uint32>(14), 280 static_cast<uint32>(14),
278 static_cast<uint32>(15)); 281 static_cast<uint32>(15));
279 EXPECT_EQ(static_cast<uint32>(BufferSubData::kCmdId), 282 EXPECT_EQ(static_cast<uint32>(BufferSubData::kCmdId),
280 cmd.header.command); 283 cmd.header.command);
281 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 284 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
282 EXPECT_EQ(static_cast<char*>(next_cmd),
283 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
284 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 285 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
285 EXPECT_EQ(static_cast<GLintptr>(12), cmd.offset); 286 EXPECT_EQ(static_cast<GLintptr>(12), cmd.offset);
286 EXPECT_EQ(static_cast<GLsizeiptr>(13), cmd.size); 287 EXPECT_EQ(static_cast<GLsizeiptr>(13), cmd.size);
287 EXPECT_EQ(static_cast<uint32>(14), cmd.data_shm_id); 288 EXPECT_EQ(static_cast<uint32>(14), cmd.data_shm_id);
288 EXPECT_EQ(static_cast<uint32>(15), cmd.data_shm_offset); 289 EXPECT_EQ(static_cast<uint32>(15), cmd.data_shm_offset);
290 CheckBytesWrittenMatchesExpectedSize(
291 next_cmd, sizeof(cmd));
289 } 292 }
290 293
291 // TODO(gman): Implement test for BufferSubDataImmediate 294 // TODO(gman): Implement test for BufferSubDataImmediate
292 TEST(GLES2FormatTest, CheckFramebufferStatus) { 295 TEST_F(GLES2FormatTest, CheckFramebufferStatus) {
293 CheckFramebufferStatus cmd = { { 0 } }; 296 CheckFramebufferStatus& cmd = *GetBufferAs<CheckFramebufferStatus>();
294 void* next_cmd = cmd.Set( 297 void* next_cmd = cmd.Set(
295 &cmd, 298 &cmd,
296 static_cast<GLenum>(11), 299 static_cast<GLenum>(11),
297 static_cast<uint32>(12), 300 static_cast<uint32>(12),
298 static_cast<uint32>(13)); 301 static_cast<uint32>(13));
299 EXPECT_EQ(static_cast<uint32>(CheckFramebufferStatus::kCmdId), 302 EXPECT_EQ(static_cast<uint32>(CheckFramebufferStatus::kCmdId),
300 cmd.header.command); 303 cmd.header.command);
301 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 304 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
302 EXPECT_EQ(static_cast<char*>(next_cmd),
303 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
304 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 305 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
305 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 306 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id);
306 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 307 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset);
308 CheckBytesWrittenMatchesExpectedSize(
309 next_cmd, sizeof(cmd));
307 } 310 }
308 311
309 TEST(GLES2FormatTest, Clear) { 312 TEST_F(GLES2FormatTest, Clear) {
310 Clear cmd = { { 0 } }; 313 Clear& cmd = *GetBufferAs<Clear>();
311 void* next_cmd = cmd.Set( 314 void* next_cmd = cmd.Set(
312 &cmd, 315 &cmd,
313 static_cast<GLbitfield>(11)); 316 static_cast<GLbitfield>(11));
314 EXPECT_EQ(static_cast<uint32>(Clear::kCmdId), 317 EXPECT_EQ(static_cast<uint32>(Clear::kCmdId),
315 cmd.header.command); 318 cmd.header.command);
316 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 319 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
317 EXPECT_EQ(static_cast<char*>(next_cmd),
318 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
319 EXPECT_EQ(static_cast<GLbitfield>(11), cmd.mask); 320 EXPECT_EQ(static_cast<GLbitfield>(11), cmd.mask);
321 CheckBytesWrittenMatchesExpectedSize(
322 next_cmd, sizeof(cmd));
320 } 323 }
321 324
322 TEST(GLES2FormatTest, ClearColor) { 325 TEST_F(GLES2FormatTest, ClearColor) {
323 ClearColor cmd = { { 0 } }; 326 ClearColor& cmd = *GetBufferAs<ClearColor>();
324 void* next_cmd = cmd.Set( 327 void* next_cmd = cmd.Set(
325 &cmd, 328 &cmd,
326 static_cast<GLclampf>(11), 329 static_cast<GLclampf>(11),
327 static_cast<GLclampf>(12), 330 static_cast<GLclampf>(12),
328 static_cast<GLclampf>(13), 331 static_cast<GLclampf>(13),
329 static_cast<GLclampf>(14)); 332 static_cast<GLclampf>(14));
330 EXPECT_EQ(static_cast<uint32>(ClearColor::kCmdId), 333 EXPECT_EQ(static_cast<uint32>(ClearColor::kCmdId),
331 cmd.header.command); 334 cmd.header.command);
332 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 335 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
333 EXPECT_EQ(static_cast<char*>(next_cmd),
334 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
335 EXPECT_EQ(static_cast<GLclampf>(11), cmd.red); 336 EXPECT_EQ(static_cast<GLclampf>(11), cmd.red);
336 EXPECT_EQ(static_cast<GLclampf>(12), cmd.green); 337 EXPECT_EQ(static_cast<GLclampf>(12), cmd.green);
337 EXPECT_EQ(static_cast<GLclampf>(13), cmd.blue); 338 EXPECT_EQ(static_cast<GLclampf>(13), cmd.blue);
338 EXPECT_EQ(static_cast<GLclampf>(14), cmd.alpha); 339 EXPECT_EQ(static_cast<GLclampf>(14), cmd.alpha);
340 CheckBytesWrittenMatchesExpectedSize(
341 next_cmd, sizeof(cmd));
339 } 342 }
340 343
341 TEST(GLES2FormatTest, ClearDepthf) { 344 TEST_F(GLES2FormatTest, ClearDepthf) {
342 ClearDepthf cmd = { { 0 } }; 345 ClearDepthf& cmd = *GetBufferAs<ClearDepthf>();
343 void* next_cmd = cmd.Set( 346 void* next_cmd = cmd.Set(
344 &cmd, 347 &cmd,
345 static_cast<GLclampf>(11)); 348 static_cast<GLclampf>(11));
346 EXPECT_EQ(static_cast<uint32>(ClearDepthf::kCmdId), 349 EXPECT_EQ(static_cast<uint32>(ClearDepthf::kCmdId),
347 cmd.header.command); 350 cmd.header.command);
348 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 351 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
349 EXPECT_EQ(static_cast<char*>(next_cmd),
350 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
351 EXPECT_EQ(static_cast<GLclampf>(11), cmd.depth); 352 EXPECT_EQ(static_cast<GLclampf>(11), cmd.depth);
353 CheckBytesWrittenMatchesExpectedSize(
354 next_cmd, sizeof(cmd));
352 } 355 }
353 356
354 TEST(GLES2FormatTest, ClearStencil) { 357 TEST_F(GLES2FormatTest, ClearStencil) {
355 ClearStencil cmd = { { 0 } }; 358 ClearStencil& cmd = *GetBufferAs<ClearStencil>();
356 void* next_cmd = cmd.Set( 359 void* next_cmd = cmd.Set(
357 &cmd, 360 &cmd,
358 static_cast<GLint>(11)); 361 static_cast<GLint>(11));
359 EXPECT_EQ(static_cast<uint32>(ClearStencil::kCmdId), 362 EXPECT_EQ(static_cast<uint32>(ClearStencil::kCmdId),
360 cmd.header.command); 363 cmd.header.command);
361 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 364 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
362 EXPECT_EQ(static_cast<char*>(next_cmd),
363 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
364 EXPECT_EQ(static_cast<GLint>(11), cmd.s); 365 EXPECT_EQ(static_cast<GLint>(11), cmd.s);
366 CheckBytesWrittenMatchesExpectedSize(
367 next_cmd, sizeof(cmd));
365 } 368 }
366 369
367 TEST(GLES2FormatTest, ColorMask) { 370 TEST_F(GLES2FormatTest, ColorMask) {
368 ColorMask cmd = { { 0 } }; 371 ColorMask& cmd = *GetBufferAs<ColorMask>();
369 void* next_cmd = cmd.Set( 372 void* next_cmd = cmd.Set(
370 &cmd, 373 &cmd,
371 static_cast<GLboolean>(11), 374 static_cast<GLboolean>(11),
372 static_cast<GLboolean>(12), 375 static_cast<GLboolean>(12),
373 static_cast<GLboolean>(13), 376 static_cast<GLboolean>(13),
374 static_cast<GLboolean>(14)); 377 static_cast<GLboolean>(14));
375 EXPECT_EQ(static_cast<uint32>(ColorMask::kCmdId), 378 EXPECT_EQ(static_cast<uint32>(ColorMask::kCmdId),
376 cmd.header.command); 379 cmd.header.command);
377 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 380 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
378 EXPECT_EQ(static_cast<char*>(next_cmd),
379 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
380 EXPECT_EQ(static_cast<GLboolean>(11), cmd.red); 381 EXPECT_EQ(static_cast<GLboolean>(11), cmd.red);
381 EXPECT_EQ(static_cast<GLboolean>(12), cmd.green); 382 EXPECT_EQ(static_cast<GLboolean>(12), cmd.green);
382 EXPECT_EQ(static_cast<GLboolean>(13), cmd.blue); 383 EXPECT_EQ(static_cast<GLboolean>(13), cmd.blue);
383 EXPECT_EQ(static_cast<GLboolean>(14), cmd.alpha); 384 EXPECT_EQ(static_cast<GLboolean>(14), cmd.alpha);
385 CheckBytesWrittenMatchesExpectedSize(
386 next_cmd, sizeof(cmd));
384 } 387 }
385 388
386 TEST(GLES2FormatTest, CompileShader) { 389 TEST_F(GLES2FormatTest, CompileShader) {
387 CompileShader cmd = { { 0 } }; 390 CompileShader& cmd = *GetBufferAs<CompileShader>();
388 void* next_cmd = cmd.Set( 391 void* next_cmd = cmd.Set(
389 &cmd, 392 &cmd,
390 static_cast<GLuint>(11)); 393 static_cast<GLuint>(11));
391 EXPECT_EQ(static_cast<uint32>(CompileShader::kCmdId), 394 EXPECT_EQ(static_cast<uint32>(CompileShader::kCmdId),
392 cmd.header.command); 395 cmd.header.command);
393 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 396 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
394 EXPECT_EQ(static_cast<char*>(next_cmd),
395 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
396 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 397 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader);
398 CheckBytesWrittenMatchesExpectedSize(
399 next_cmd, sizeof(cmd));
397 } 400 }
398 401
399 TEST(GLES2FormatTest, CompressedTexImage2D) { 402 TEST_F(GLES2FormatTest, CompressedTexImage2D) {
400 CompressedTexImage2D cmd = { { 0 } }; 403 CompressedTexImage2D& cmd = *GetBufferAs<CompressedTexImage2D>();
401 void* next_cmd = cmd.Set( 404 void* next_cmd = cmd.Set(
402 &cmd, 405 &cmd,
403 static_cast<GLenum>(11), 406 static_cast<GLenum>(11),
404 static_cast<GLint>(12), 407 static_cast<GLint>(12),
405 static_cast<GLenum>(13), 408 static_cast<GLenum>(13),
406 static_cast<GLsizei>(14), 409 static_cast<GLsizei>(14),
407 static_cast<GLsizei>(15), 410 static_cast<GLsizei>(15),
408 static_cast<GLint>(16), 411 static_cast<GLint>(16),
409 static_cast<GLsizei>(17), 412 static_cast<GLsizei>(17),
410 static_cast<uint32>(18), 413 static_cast<uint32>(18),
411 static_cast<uint32>(19)); 414 static_cast<uint32>(19));
412 EXPECT_EQ(static_cast<uint32>(CompressedTexImage2D::kCmdId), 415 EXPECT_EQ(static_cast<uint32>(CompressedTexImage2D::kCmdId),
413 cmd.header.command); 416 cmd.header.command);
414 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 417 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
415 EXPECT_EQ(static_cast<char*>(next_cmd),
416 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
417 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 418 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
418 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 419 EXPECT_EQ(static_cast<GLint>(12), cmd.level);
419 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat); 420 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat);
420 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 421 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width);
421 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 422 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height);
422 EXPECT_EQ(static_cast<GLint>(16), cmd.border); 423 EXPECT_EQ(static_cast<GLint>(16), cmd.border);
423 EXPECT_EQ(static_cast<GLsizei>(17), cmd.imageSize); 424 EXPECT_EQ(static_cast<GLsizei>(17), cmd.imageSize);
424 EXPECT_EQ(static_cast<uint32>(18), cmd.data_shm_id); 425 EXPECT_EQ(static_cast<uint32>(18), cmd.data_shm_id);
425 EXPECT_EQ(static_cast<uint32>(19), cmd.data_shm_offset); 426 EXPECT_EQ(static_cast<uint32>(19), cmd.data_shm_offset);
427 CheckBytesWrittenMatchesExpectedSize(
428 next_cmd, sizeof(cmd));
426 } 429 }
427 430
428 // TODO(gman): Implement test for CompressedTexImage2DImmediate 431 // TODO(gman): Implement test for CompressedTexImage2DImmediate
429 TEST(GLES2FormatTest, CompressedTexImage2DBucket) { 432 TEST_F(GLES2FormatTest, CompressedTexImage2DBucket) {
430 CompressedTexImage2DBucket cmd = { { 0 } }; 433 CompressedTexImage2DBucket& cmd = *GetBufferAs<CompressedTexImage2DBucket>();
431 void* next_cmd = cmd.Set( 434 void* next_cmd = cmd.Set(
432 &cmd, 435 &cmd,
433 static_cast<GLenum>(11), 436 static_cast<GLenum>(11),
434 static_cast<GLint>(12), 437 static_cast<GLint>(12),
435 static_cast<GLenum>(13), 438 static_cast<GLenum>(13),
436 static_cast<GLsizei>(14), 439 static_cast<GLsizei>(14),
437 static_cast<GLsizei>(15), 440 static_cast<GLsizei>(15),
438 static_cast<GLint>(16), 441 static_cast<GLint>(16),
439 static_cast<GLuint>(17)); 442 static_cast<GLuint>(17));
440 EXPECT_EQ(static_cast<uint32>(CompressedTexImage2DBucket::kCmdId), 443 EXPECT_EQ(static_cast<uint32>(CompressedTexImage2DBucket::kCmdId),
441 cmd.header.command); 444 cmd.header.command);
442 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 445 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
443 EXPECT_EQ(static_cast<char*>(next_cmd),
444 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
445 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 446 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
446 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 447 EXPECT_EQ(static_cast<GLint>(12), cmd.level);
447 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat); 448 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat);
448 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 449 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width);
449 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 450 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height);
450 EXPECT_EQ(static_cast<GLint>(16), cmd.border); 451 EXPECT_EQ(static_cast<GLint>(16), cmd.border);
451 EXPECT_EQ(static_cast<GLuint>(17), cmd.bucket_id); 452 EXPECT_EQ(static_cast<GLuint>(17), cmd.bucket_id);
453 CheckBytesWrittenMatchesExpectedSize(
454 next_cmd, sizeof(cmd));
452 } 455 }
453 456
454 TEST(GLES2FormatTest, CompressedTexSubImage2D) { 457 TEST_F(GLES2FormatTest, CompressedTexSubImage2D) {
455 CompressedTexSubImage2D cmd = { { 0 } }; 458 CompressedTexSubImage2D& cmd = *GetBufferAs<CompressedTexSubImage2D>();
456 void* next_cmd = cmd.Set( 459 void* next_cmd = cmd.Set(
457 &cmd, 460 &cmd,
458 static_cast<GLenum>(11), 461 static_cast<GLenum>(11),
459 static_cast<GLint>(12), 462 static_cast<GLint>(12),
460 static_cast<GLint>(13), 463 static_cast<GLint>(13),
461 static_cast<GLint>(14), 464 static_cast<GLint>(14),
462 static_cast<GLsizei>(15), 465 static_cast<GLsizei>(15),
463 static_cast<GLsizei>(16), 466 static_cast<GLsizei>(16),
464 static_cast<GLenum>(17), 467 static_cast<GLenum>(17),
465 static_cast<GLsizei>(18), 468 static_cast<GLsizei>(18),
466 static_cast<uint32>(19), 469 static_cast<uint32>(19),
467 static_cast<uint32>(20)); 470 static_cast<uint32>(20));
468 EXPECT_EQ(static_cast<uint32>(CompressedTexSubImage2D::kCmdId), 471 EXPECT_EQ(static_cast<uint32>(CompressedTexSubImage2D::kCmdId),
469 cmd.header.command); 472 cmd.header.command);
470 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 473 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
471 EXPECT_EQ(static_cast<char*>(next_cmd),
472 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
473 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 474 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
474 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 475 EXPECT_EQ(static_cast<GLint>(12), cmd.level);
475 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset); 476 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset);
476 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset); 477 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset);
477 EXPECT_EQ(static_cast<GLsizei>(15), cmd.width); 478 EXPECT_EQ(static_cast<GLsizei>(15), cmd.width);
478 EXPECT_EQ(static_cast<GLsizei>(16), cmd.height); 479 EXPECT_EQ(static_cast<GLsizei>(16), cmd.height);
479 EXPECT_EQ(static_cast<GLenum>(17), cmd.format); 480 EXPECT_EQ(static_cast<GLenum>(17), cmd.format);
480 EXPECT_EQ(static_cast<GLsizei>(18), cmd.imageSize); 481 EXPECT_EQ(static_cast<GLsizei>(18), cmd.imageSize);
481 EXPECT_EQ(static_cast<uint32>(19), cmd.data_shm_id); 482 EXPECT_EQ(static_cast<uint32>(19), cmd.data_shm_id);
482 EXPECT_EQ(static_cast<uint32>(20), cmd.data_shm_offset); 483 EXPECT_EQ(static_cast<uint32>(20), cmd.data_shm_offset);
484 CheckBytesWrittenMatchesExpectedSize(
485 next_cmd, sizeof(cmd));
483 } 486 }
484 487
485 // TODO(gman): Implement test for CompressedTexSubImage2DImmediate 488 // TODO(gman): Implement test for CompressedTexSubImage2DImmediate
486 TEST(GLES2FormatTest, CompressedTexSubImage2DBucket) { 489 TEST_F(GLES2FormatTest, CompressedTexSubImage2DBucket) {
487 CompressedTexSubImage2DBucket cmd = { { 0 } }; 490 CompressedTexSubImage2DBucket& cmd =
491 *GetBufferAs<CompressedTexSubImage2DBucket>();
488 void* next_cmd = cmd.Set( 492 void* next_cmd = cmd.Set(
489 &cmd, 493 &cmd,
490 static_cast<GLenum>(11), 494 static_cast<GLenum>(11),
491 static_cast<GLint>(12), 495 static_cast<GLint>(12),
492 static_cast<GLint>(13), 496 static_cast<GLint>(13),
493 static_cast<GLint>(14), 497 static_cast<GLint>(14),
494 static_cast<GLsizei>(15), 498 static_cast<GLsizei>(15),
495 static_cast<GLsizei>(16), 499 static_cast<GLsizei>(16),
496 static_cast<GLenum>(17), 500 static_cast<GLenum>(17),
497 static_cast<GLuint>(18)); 501 static_cast<GLuint>(18));
498 EXPECT_EQ(static_cast<uint32>(CompressedTexSubImage2DBucket::kCmdId), 502 EXPECT_EQ(static_cast<uint32>(CompressedTexSubImage2DBucket::kCmdId),
499 cmd.header.command); 503 cmd.header.command);
500 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 504 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
501 EXPECT_EQ(static_cast<char*>(next_cmd),
502 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
503 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 505 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
504 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 506 EXPECT_EQ(static_cast<GLint>(12), cmd.level);
505 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset); 507 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset);
506 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset); 508 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset);
507 EXPECT_EQ(static_cast<GLsizei>(15), cmd.width); 509 EXPECT_EQ(static_cast<GLsizei>(15), cmd.width);
508 EXPECT_EQ(static_cast<GLsizei>(16), cmd.height); 510 EXPECT_EQ(static_cast<GLsizei>(16), cmd.height);
509 EXPECT_EQ(static_cast<GLenum>(17), cmd.format); 511 EXPECT_EQ(static_cast<GLenum>(17), cmd.format);
510 EXPECT_EQ(static_cast<GLuint>(18), cmd.bucket_id); 512 EXPECT_EQ(static_cast<GLuint>(18), cmd.bucket_id);
513 CheckBytesWrittenMatchesExpectedSize(
514 next_cmd, sizeof(cmd));
511 } 515 }
512 516
513 TEST(GLES2FormatTest, CopyTexImage2D) { 517 TEST_F(GLES2FormatTest, CopyTexImage2D) {
514 CopyTexImage2D cmd = { { 0 } }; 518 CopyTexImage2D& cmd = *GetBufferAs<CopyTexImage2D>();
515 void* next_cmd = cmd.Set( 519 void* next_cmd = cmd.Set(
516 &cmd, 520 &cmd,
517 static_cast<GLenum>(11), 521 static_cast<GLenum>(11),
518 static_cast<GLint>(12), 522 static_cast<GLint>(12),
519 static_cast<GLenum>(13), 523 static_cast<GLenum>(13),
520 static_cast<GLint>(14), 524 static_cast<GLint>(14),
521 static_cast<GLint>(15), 525 static_cast<GLint>(15),
522 static_cast<GLsizei>(16), 526 static_cast<GLsizei>(16),
523 static_cast<GLsizei>(17), 527 static_cast<GLsizei>(17),
524 static_cast<GLint>(18)); 528 static_cast<GLint>(18));
525 EXPECT_EQ(static_cast<uint32>(CopyTexImage2D::kCmdId), 529 EXPECT_EQ(static_cast<uint32>(CopyTexImage2D::kCmdId),
526 cmd.header.command); 530 cmd.header.command);
527 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 531 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
528 EXPECT_EQ(static_cast<char*>(next_cmd),
529 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
530 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 532 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
531 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 533 EXPECT_EQ(static_cast<GLint>(12), cmd.level);
532 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat); 534 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat);
533 EXPECT_EQ(static_cast<GLint>(14), cmd.x); 535 EXPECT_EQ(static_cast<GLint>(14), cmd.x);
534 EXPECT_EQ(static_cast<GLint>(15), cmd.y); 536 EXPECT_EQ(static_cast<GLint>(15), cmd.y);
535 EXPECT_EQ(static_cast<GLsizei>(16), cmd.width); 537 EXPECT_EQ(static_cast<GLsizei>(16), cmd.width);
536 EXPECT_EQ(static_cast<GLsizei>(17), cmd.height); 538 EXPECT_EQ(static_cast<GLsizei>(17), cmd.height);
537 EXPECT_EQ(static_cast<GLint>(18), cmd.border); 539 EXPECT_EQ(static_cast<GLint>(18), cmd.border);
540 CheckBytesWrittenMatchesExpectedSize(
541 next_cmd, sizeof(cmd));
538 } 542 }
539 543
540 TEST(GLES2FormatTest, CopyTexSubImage2D) { 544 TEST_F(GLES2FormatTest, CopyTexSubImage2D) {
541 CopyTexSubImage2D cmd = { { 0 } }; 545 CopyTexSubImage2D& cmd = *GetBufferAs<CopyTexSubImage2D>();
542 void* next_cmd = cmd.Set( 546 void* next_cmd = cmd.Set(
543 &cmd, 547 &cmd,
544 static_cast<GLenum>(11), 548 static_cast<GLenum>(11),
545 static_cast<GLint>(12), 549 static_cast<GLint>(12),
546 static_cast<GLint>(13), 550 static_cast<GLint>(13),
547 static_cast<GLint>(14), 551 static_cast<GLint>(14),
548 static_cast<GLint>(15), 552 static_cast<GLint>(15),
549 static_cast<GLint>(16), 553 static_cast<GLint>(16),
550 static_cast<GLsizei>(17), 554 static_cast<GLsizei>(17),
551 static_cast<GLsizei>(18)); 555 static_cast<GLsizei>(18));
552 EXPECT_EQ(static_cast<uint32>(CopyTexSubImage2D::kCmdId), 556 EXPECT_EQ(static_cast<uint32>(CopyTexSubImage2D::kCmdId),
553 cmd.header.command); 557 cmd.header.command);
554 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 558 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
555 EXPECT_EQ(static_cast<char*>(next_cmd),
556 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
557 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 559 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
558 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 560 EXPECT_EQ(static_cast<GLint>(12), cmd.level);
559 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset); 561 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset);
560 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset); 562 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset);
561 EXPECT_EQ(static_cast<GLint>(15), cmd.x); 563 EXPECT_EQ(static_cast<GLint>(15), cmd.x);
562 EXPECT_EQ(static_cast<GLint>(16), cmd.y); 564 EXPECT_EQ(static_cast<GLint>(16), cmd.y);
563 EXPECT_EQ(static_cast<GLsizei>(17), cmd.width); 565 EXPECT_EQ(static_cast<GLsizei>(17), cmd.width);
564 EXPECT_EQ(static_cast<GLsizei>(18), cmd.height); 566 EXPECT_EQ(static_cast<GLsizei>(18), cmd.height);
567 CheckBytesWrittenMatchesExpectedSize(
568 next_cmd, sizeof(cmd));
565 } 569 }
566 570
567 TEST(GLES2FormatTest, CreateProgram) { 571 TEST_F(GLES2FormatTest, CreateProgram) {
568 CreateProgram cmd = { { 0 } }; 572 CreateProgram& cmd = *GetBufferAs<CreateProgram>();
569 void* next_cmd = cmd.Set( 573 void* next_cmd = cmd.Set(
570 &cmd, 574 &cmd,
571 static_cast<uint32>(11)); 575 static_cast<uint32>(11));
572 EXPECT_EQ(static_cast<uint32>(CreateProgram::kCmdId), 576 EXPECT_EQ(static_cast<uint32>(CreateProgram::kCmdId),
573 cmd.header.command); 577 cmd.header.command);
574 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 578 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
575 EXPECT_EQ(static_cast<char*>(next_cmd),
576 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
577 EXPECT_EQ(static_cast<uint32>(11), cmd.client_id); 579 EXPECT_EQ(static_cast<uint32>(11), cmd.client_id);
580 CheckBytesWrittenMatchesExpectedSize(
581 next_cmd, sizeof(cmd));
578 } 582 }
579 583
580 TEST(GLES2FormatTest, CreateShader) { 584 TEST_F(GLES2FormatTest, CreateShader) {
581 CreateShader cmd = { { 0 } }; 585 CreateShader& cmd = *GetBufferAs<CreateShader>();
582 void* next_cmd = cmd.Set( 586 void* next_cmd = cmd.Set(
583 &cmd, 587 &cmd,
584 static_cast<GLenum>(11), 588 static_cast<GLenum>(11),
585 static_cast<uint32>(12)); 589 static_cast<uint32>(12));
586 EXPECT_EQ(static_cast<uint32>(CreateShader::kCmdId), 590 EXPECT_EQ(static_cast<uint32>(CreateShader::kCmdId),
587 cmd.header.command); 591 cmd.header.command);
588 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 592 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
589 EXPECT_EQ(static_cast<char*>(next_cmd),
590 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
591 EXPECT_EQ(static_cast<GLenum>(11), cmd.type); 593 EXPECT_EQ(static_cast<GLenum>(11), cmd.type);
592 EXPECT_EQ(static_cast<uint32>(12), cmd.client_id); 594 EXPECT_EQ(static_cast<uint32>(12), cmd.client_id);
595 CheckBytesWrittenMatchesExpectedSize(
596 next_cmd, sizeof(cmd));
593 } 597 }
594 598
595 TEST(GLES2FormatTest, CullFace) { 599 TEST_F(GLES2FormatTest, CullFace) {
596 CullFace cmd = { { 0 } }; 600 CullFace& cmd = *GetBufferAs<CullFace>();
597 void* next_cmd = cmd.Set( 601 void* next_cmd = cmd.Set(
598 &cmd, 602 &cmd,
599 static_cast<GLenum>(11)); 603 static_cast<GLenum>(11));
600 EXPECT_EQ(static_cast<uint32>(CullFace::kCmdId), 604 EXPECT_EQ(static_cast<uint32>(CullFace::kCmdId),
601 cmd.header.command); 605 cmd.header.command);
602 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 606 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
603 EXPECT_EQ(static_cast<char*>(next_cmd),
604 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
605 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 607 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode);
608 CheckBytesWrittenMatchesExpectedSize(
609 next_cmd, sizeof(cmd));
606 } 610 }
607 611
608 TEST(GLES2FormatTest, DeleteBuffers) { 612 TEST_F(GLES2FormatTest, DeleteBuffers) {
609 DeleteBuffers cmd = { { 0 } }; 613 DeleteBuffers& cmd = *GetBufferAs<DeleteBuffers>();
610 void* next_cmd = cmd.Set( 614 void* next_cmd = cmd.Set(
611 &cmd, 615 &cmd,
612 static_cast<GLsizei>(11), 616 static_cast<GLsizei>(11),
613 static_cast<uint32>(12), 617 static_cast<uint32>(12),
614 static_cast<uint32>(13)); 618 static_cast<uint32>(13));
615 EXPECT_EQ(static_cast<uint32>(DeleteBuffers::kCmdId), 619 EXPECT_EQ(static_cast<uint32>(DeleteBuffers::kCmdId),
616 cmd.header.command); 620 cmd.header.command);
617 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 621 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
618 EXPECT_EQ(static_cast<char*>(next_cmd),
619 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
620 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 622 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n);
621 EXPECT_EQ(static_cast<uint32>(12), cmd.buffers_shm_id); 623 EXPECT_EQ(static_cast<uint32>(12), cmd.buffers_shm_id);
622 EXPECT_EQ(static_cast<uint32>(13), cmd.buffers_shm_offset); 624 EXPECT_EQ(static_cast<uint32>(13), cmd.buffers_shm_offset);
625 CheckBytesWrittenMatchesExpectedSize(
626 next_cmd, sizeof(cmd));
623 } 627 }
624 628
625 TEST(GLES2FormatTest, DeleteBuffersImmediate) { 629 TEST_F(GLES2FormatTest, DeleteBuffersImmediate) {
626 static GLuint ids[] = { 12, 23, 34, }; 630 static GLuint ids[] = { 12, 23, 34, };
627 int8 buf[256] = { 0, }; 631 DeleteBuffersImmediate& cmd = *GetBufferAs<DeleteBuffersImmediate>();
628 DeleteBuffersImmediate& cmd =
629 *static_cast<DeleteBuffersImmediate*>(static_cast<void*>(&buf));
630 void* next_cmd = cmd.Set( 632 void* next_cmd = cmd.Set(
631 &cmd, 633 &cmd, static_cast<GLsizei>(arraysize(ids)), ids);
632 static_cast<GLsizei>(11),
633 ids);
634 EXPECT_EQ(static_cast<uint32>(DeleteBuffersImmediate::kCmdId), 634 EXPECT_EQ(static_cast<uint32>(DeleteBuffersImmediate::kCmdId),
635 cmd.header.command); 635 cmd.header.command);
636 EXPECT_EQ(sizeof(cmd) + 636 EXPECT_EQ(sizeof(cmd) +
637 RoundSizeToMultipleOfEntries(cmd.n * 4u), 637 RoundSizeToMultipleOfEntries(cmd.n * 4u),
638 cmd.header.size * 4u); 638 cmd.header.size * 4u);
639 EXPECT_EQ(static_cast<char*>(next_cmd), 639 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);
640 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + 640 CheckBytesWrittenMatchesExpectedSize(
641 RoundSizeToMultipleOfEntries(cmd.n * 4u)); 641 next_cmd, sizeof(cmd) +
642 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 642 RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));
643 // TODO(gman): Check that ids were inserted; 643 // TODO(gman): Check that ids were inserted;
644 } 644 }
645 645
646 TEST(GLES2FormatTest, DeleteFramebuffers) { 646 TEST_F(GLES2FormatTest, DeleteFramebuffers) {
647 DeleteFramebuffers cmd = { { 0 } }; 647 DeleteFramebuffers& cmd = *GetBufferAs<DeleteFramebuffers>();
648 void* next_cmd = cmd.Set( 648 void* next_cmd = cmd.Set(
649 &cmd, 649 &cmd,
650 static_cast<GLsizei>(11), 650 static_cast<GLsizei>(11),
651 static_cast<uint32>(12), 651 static_cast<uint32>(12),
652 static_cast<uint32>(13)); 652 static_cast<uint32>(13));
653 EXPECT_EQ(static_cast<uint32>(DeleteFramebuffers::kCmdId), 653 EXPECT_EQ(static_cast<uint32>(DeleteFramebuffers::kCmdId),
654 cmd.header.command); 654 cmd.header.command);
655 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 655 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
656 EXPECT_EQ(static_cast<char*>(next_cmd),
657 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
658 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 656 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n);
659 EXPECT_EQ(static_cast<uint32>(12), cmd.framebuffers_shm_id); 657 EXPECT_EQ(static_cast<uint32>(12), cmd.framebuffers_shm_id);
660 EXPECT_EQ(static_cast<uint32>(13), cmd.framebuffers_shm_offset); 658 EXPECT_EQ(static_cast<uint32>(13), cmd.framebuffers_shm_offset);
659 CheckBytesWrittenMatchesExpectedSize(
660 next_cmd, sizeof(cmd));
661 } 661 }
662 662
663 TEST(GLES2FormatTest, DeleteFramebuffersImmediate) { 663 TEST_F(GLES2FormatTest, DeleteFramebuffersImmediate) {
664 static GLuint ids[] = { 12, 23, 34, }; 664 static GLuint ids[] = { 12, 23, 34, };
665 int8 buf[256] = { 0, };
666 DeleteFramebuffersImmediate& cmd = 665 DeleteFramebuffersImmediate& cmd =
667 *static_cast<DeleteFramebuffersImmediate*>(static_cast<void*>(&buf)); 666 *GetBufferAs<DeleteFramebuffersImmediate>();
668 void* next_cmd = cmd.Set( 667 void* next_cmd = cmd.Set(
669 &cmd, 668 &cmd, static_cast<GLsizei>(arraysize(ids)), ids);
670 static_cast<GLsizei>(11),
671 ids);
672 EXPECT_EQ(static_cast<uint32>(DeleteFramebuffersImmediate::kCmdId), 669 EXPECT_EQ(static_cast<uint32>(DeleteFramebuffersImmediate::kCmdId),
673 cmd.header.command); 670 cmd.header.command);
674 EXPECT_EQ(sizeof(cmd) + 671 EXPECT_EQ(sizeof(cmd) +
675 RoundSizeToMultipleOfEntries(cmd.n * 4u), 672 RoundSizeToMultipleOfEntries(cmd.n * 4u),
676 cmd.header.size * 4u); 673 cmd.header.size * 4u);
677 EXPECT_EQ(static_cast<char*>(next_cmd), 674 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);
678 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + 675 CheckBytesWrittenMatchesExpectedSize(
679 RoundSizeToMultipleOfEntries(cmd.n * 4u)); 676 next_cmd, sizeof(cmd) +
680 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 677 RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));
681 // TODO(gman): Check that ids were inserted; 678 // TODO(gman): Check that ids were inserted;
682 } 679 }
683 680
684 TEST(GLES2FormatTest, DeleteProgram) { 681 TEST_F(GLES2FormatTest, DeleteProgram) {
685 DeleteProgram cmd = { { 0 } }; 682 DeleteProgram& cmd = *GetBufferAs<DeleteProgram>();
686 void* next_cmd = cmd.Set( 683 void* next_cmd = cmd.Set(
687 &cmd, 684 &cmd,
688 static_cast<GLuint>(11)); 685 static_cast<GLuint>(11));
689 EXPECT_EQ(static_cast<uint32>(DeleteProgram::kCmdId), 686 EXPECT_EQ(static_cast<uint32>(DeleteProgram::kCmdId),
690 cmd.header.command); 687 cmd.header.command);
691 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 688 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
692 EXPECT_EQ(static_cast<char*>(next_cmd),
693 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
694 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 689 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
690 CheckBytesWrittenMatchesExpectedSize(
691 next_cmd, sizeof(cmd));
695 } 692 }
696 693
697 TEST(GLES2FormatTest, DeleteRenderbuffers) { 694 TEST_F(GLES2FormatTest, DeleteRenderbuffers) {
698 DeleteRenderbuffers cmd = { { 0 } }; 695 DeleteRenderbuffers& cmd = *GetBufferAs<DeleteRenderbuffers>();
699 void* next_cmd = cmd.Set( 696 void* next_cmd = cmd.Set(
700 &cmd, 697 &cmd,
701 static_cast<GLsizei>(11), 698 static_cast<GLsizei>(11),
702 static_cast<uint32>(12), 699 static_cast<uint32>(12),
703 static_cast<uint32>(13)); 700 static_cast<uint32>(13));
704 EXPECT_EQ(static_cast<uint32>(DeleteRenderbuffers::kCmdId), 701 EXPECT_EQ(static_cast<uint32>(DeleteRenderbuffers::kCmdId),
705 cmd.header.command); 702 cmd.header.command);
706 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 703 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
707 EXPECT_EQ(static_cast<char*>(next_cmd),
708 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
709 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 704 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n);
710 EXPECT_EQ(static_cast<uint32>(12), cmd.renderbuffers_shm_id); 705 EXPECT_EQ(static_cast<uint32>(12), cmd.renderbuffers_shm_id);
711 EXPECT_EQ(static_cast<uint32>(13), cmd.renderbuffers_shm_offset); 706 EXPECT_EQ(static_cast<uint32>(13), cmd.renderbuffers_shm_offset);
707 CheckBytesWrittenMatchesExpectedSize(
708 next_cmd, sizeof(cmd));
712 } 709 }
713 710
714 TEST(GLES2FormatTest, DeleteRenderbuffersImmediate) { 711 TEST_F(GLES2FormatTest, DeleteRenderbuffersImmediate) {
715 static GLuint ids[] = { 12, 23, 34, }; 712 static GLuint ids[] = { 12, 23, 34, };
716 int8 buf[256] = { 0, };
717 DeleteRenderbuffersImmediate& cmd = 713 DeleteRenderbuffersImmediate& cmd =
718 *static_cast<DeleteRenderbuffersImmediate*>(static_cast<void*>(&buf)); 714 *GetBufferAs<DeleteRenderbuffersImmediate>();
719 void* next_cmd = cmd.Set( 715 void* next_cmd = cmd.Set(
720 &cmd, 716 &cmd, static_cast<GLsizei>(arraysize(ids)), ids);
721 static_cast<GLsizei>(11),
722 ids);
723 EXPECT_EQ(static_cast<uint32>(DeleteRenderbuffersImmediate::kCmdId), 717 EXPECT_EQ(static_cast<uint32>(DeleteRenderbuffersImmediate::kCmdId),
724 cmd.header.command); 718 cmd.header.command);
725 EXPECT_EQ(sizeof(cmd) + 719 EXPECT_EQ(sizeof(cmd) +
726 RoundSizeToMultipleOfEntries(cmd.n * 4u), 720 RoundSizeToMultipleOfEntries(cmd.n * 4u),
727 cmd.header.size * 4u); 721 cmd.header.size * 4u);
728 EXPECT_EQ(static_cast<char*>(next_cmd), 722 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);
729 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + 723 CheckBytesWrittenMatchesExpectedSize(
730 RoundSizeToMultipleOfEntries(cmd.n * 4u)); 724 next_cmd, sizeof(cmd) +
731 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 725 RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));
732 // TODO(gman): Check that ids were inserted; 726 // TODO(gman): Check that ids were inserted;
733 } 727 }
734 728
735 TEST(GLES2FormatTest, DeleteShader) { 729 TEST_F(GLES2FormatTest, DeleteShader) {
736 DeleteShader cmd = { { 0 } }; 730 DeleteShader& cmd = *GetBufferAs<DeleteShader>();
737 void* next_cmd = cmd.Set( 731 void* next_cmd = cmd.Set(
738 &cmd, 732 &cmd,
739 static_cast<GLuint>(11)); 733 static_cast<GLuint>(11));
740 EXPECT_EQ(static_cast<uint32>(DeleteShader::kCmdId), 734 EXPECT_EQ(static_cast<uint32>(DeleteShader::kCmdId),
741 cmd.header.command); 735 cmd.header.command);
742 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 736 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
743 EXPECT_EQ(static_cast<char*>(next_cmd),
744 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
745 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 737 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader);
738 CheckBytesWrittenMatchesExpectedSize(
739 next_cmd, sizeof(cmd));
746 } 740 }
747 741
748 TEST(GLES2FormatTest, DeleteTextures) { 742 TEST_F(GLES2FormatTest, DeleteTextures) {
749 DeleteTextures cmd = { { 0 } }; 743 DeleteTextures& cmd = *GetBufferAs<DeleteTextures>();
750 void* next_cmd = cmd.Set( 744 void* next_cmd = cmd.Set(
751 &cmd, 745 &cmd,
752 static_cast<GLsizei>(11), 746 static_cast<GLsizei>(11),
753 static_cast<uint32>(12), 747 static_cast<uint32>(12),
754 static_cast<uint32>(13)); 748 static_cast<uint32>(13));
755 EXPECT_EQ(static_cast<uint32>(DeleteTextures::kCmdId), 749 EXPECT_EQ(static_cast<uint32>(DeleteTextures::kCmdId),
756 cmd.header.command); 750 cmd.header.command);
757 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 751 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
758 EXPECT_EQ(static_cast<char*>(next_cmd),
759 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
760 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 752 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n);
761 EXPECT_EQ(static_cast<uint32>(12), cmd.textures_shm_id); 753 EXPECT_EQ(static_cast<uint32>(12), cmd.textures_shm_id);
762 EXPECT_EQ(static_cast<uint32>(13), cmd.textures_shm_offset); 754 EXPECT_EQ(static_cast<uint32>(13), cmd.textures_shm_offset);
755 CheckBytesWrittenMatchesExpectedSize(
756 next_cmd, sizeof(cmd));
763 } 757 }
764 758
765 TEST(GLES2FormatTest, DeleteTexturesImmediate) { 759 TEST_F(GLES2FormatTest, DeleteTexturesImmediate) {
766 static GLuint ids[] = { 12, 23, 34, }; 760 static GLuint ids[] = { 12, 23, 34, };
767 int8 buf[256] = { 0, }; 761 DeleteTexturesImmediate& cmd = *GetBufferAs<DeleteTexturesImmediate>();
768 DeleteTexturesImmediate& cmd =
769 *static_cast<DeleteTexturesImmediate*>(static_cast<void*>(&buf));
770 void* next_cmd = cmd.Set( 762 void* next_cmd = cmd.Set(
771 &cmd, 763 &cmd, static_cast<GLsizei>(arraysize(ids)), ids);
772 static_cast<GLsizei>(11),
773 ids);
774 EXPECT_EQ(static_cast<uint32>(DeleteTexturesImmediate::kCmdId), 764 EXPECT_EQ(static_cast<uint32>(DeleteTexturesImmediate::kCmdId),
775 cmd.header.command); 765 cmd.header.command);
776 EXPECT_EQ(sizeof(cmd) + 766 EXPECT_EQ(sizeof(cmd) +
777 RoundSizeToMultipleOfEntries(cmd.n * 4u), 767 RoundSizeToMultipleOfEntries(cmd.n * 4u),
778 cmd.header.size * 4u); 768 cmd.header.size * 4u);
779 EXPECT_EQ(static_cast<char*>(next_cmd), 769 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);
780 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + 770 CheckBytesWrittenMatchesExpectedSize(
781 RoundSizeToMultipleOfEntries(cmd.n * 4u)); 771 next_cmd, sizeof(cmd) +
782 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 772 RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));
783 // TODO(gman): Check that ids were inserted; 773 // TODO(gman): Check that ids were inserted;
784 } 774 }
785 775
786 TEST(GLES2FormatTest, DepthFunc) { 776 TEST_F(GLES2FormatTest, DepthFunc) {
787 DepthFunc cmd = { { 0 } }; 777 DepthFunc& cmd = *GetBufferAs<DepthFunc>();
788 void* next_cmd = cmd.Set( 778 void* next_cmd = cmd.Set(
789 &cmd, 779 &cmd,
790 static_cast<GLenum>(11)); 780 static_cast<GLenum>(11));
791 EXPECT_EQ(static_cast<uint32>(DepthFunc::kCmdId), 781 EXPECT_EQ(static_cast<uint32>(DepthFunc::kCmdId),
792 cmd.header.command); 782 cmd.header.command);
793 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 783 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
794 EXPECT_EQ(static_cast<char*>(next_cmd),
795 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
796 EXPECT_EQ(static_cast<GLenum>(11), cmd.func); 784 EXPECT_EQ(static_cast<GLenum>(11), cmd.func);
785 CheckBytesWrittenMatchesExpectedSize(
786 next_cmd, sizeof(cmd));
797 } 787 }
798 788
799 TEST(GLES2FormatTest, DepthMask) { 789 TEST_F(GLES2FormatTest, DepthMask) {
800 DepthMask cmd = { { 0 } }; 790 DepthMask& cmd = *GetBufferAs<DepthMask>();
801 void* next_cmd = cmd.Set( 791 void* next_cmd = cmd.Set(
802 &cmd, 792 &cmd,
803 static_cast<GLboolean>(11)); 793 static_cast<GLboolean>(11));
804 EXPECT_EQ(static_cast<uint32>(DepthMask::kCmdId), 794 EXPECT_EQ(static_cast<uint32>(DepthMask::kCmdId),
805 cmd.header.command); 795 cmd.header.command);
806 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 796 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
807 EXPECT_EQ(static_cast<char*>(next_cmd),
808 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
809 EXPECT_EQ(static_cast<GLboolean>(11), cmd.flag); 797 EXPECT_EQ(static_cast<GLboolean>(11), cmd.flag);
798 CheckBytesWrittenMatchesExpectedSize(
799 next_cmd, sizeof(cmd));
810 } 800 }
811 801
812 TEST(GLES2FormatTest, DepthRangef) { 802 TEST_F(GLES2FormatTest, DepthRangef) {
813 DepthRangef cmd = { { 0 } }; 803 DepthRangef& cmd = *GetBufferAs<DepthRangef>();
814 void* next_cmd = cmd.Set( 804 void* next_cmd = cmd.Set(
815 &cmd, 805 &cmd,
816 static_cast<GLclampf>(11), 806 static_cast<GLclampf>(11),
817 static_cast<GLclampf>(12)); 807 static_cast<GLclampf>(12));
818 EXPECT_EQ(static_cast<uint32>(DepthRangef::kCmdId), 808 EXPECT_EQ(static_cast<uint32>(DepthRangef::kCmdId),
819 cmd.header.command); 809 cmd.header.command);
820 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 810 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
821 EXPECT_EQ(static_cast<char*>(next_cmd),
822 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
823 EXPECT_EQ(static_cast<GLclampf>(11), cmd.zNear); 811 EXPECT_EQ(static_cast<GLclampf>(11), cmd.zNear);
824 EXPECT_EQ(static_cast<GLclampf>(12), cmd.zFar); 812 EXPECT_EQ(static_cast<GLclampf>(12), cmd.zFar);
813 CheckBytesWrittenMatchesExpectedSize(
814 next_cmd, sizeof(cmd));
825 } 815 }
826 816
827 TEST(GLES2FormatTest, DetachShader) { 817 TEST_F(GLES2FormatTest, DetachShader) {
828 DetachShader cmd = { { 0 } }; 818 DetachShader& cmd = *GetBufferAs<DetachShader>();
829 void* next_cmd = cmd.Set( 819 void* next_cmd = cmd.Set(
830 &cmd, 820 &cmd,
831 static_cast<GLuint>(11), 821 static_cast<GLuint>(11),
832 static_cast<GLuint>(12)); 822 static_cast<GLuint>(12));
833 EXPECT_EQ(static_cast<uint32>(DetachShader::kCmdId), 823 EXPECT_EQ(static_cast<uint32>(DetachShader::kCmdId),
834 cmd.header.command); 824 cmd.header.command);
835 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 825 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
836 EXPECT_EQ(static_cast<char*>(next_cmd),
837 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
838 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 826 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
839 EXPECT_EQ(static_cast<GLuint>(12), cmd.shader); 827 EXPECT_EQ(static_cast<GLuint>(12), cmd.shader);
828 CheckBytesWrittenMatchesExpectedSize(
829 next_cmd, sizeof(cmd));
840 } 830 }
841 831
842 TEST(GLES2FormatTest, Disable) { 832 TEST_F(GLES2FormatTest, Disable) {
843 Disable cmd = { { 0 } }; 833 Disable& cmd = *GetBufferAs<Disable>();
844 void* next_cmd = cmd.Set( 834 void* next_cmd = cmd.Set(
845 &cmd, 835 &cmd,
846 static_cast<GLenum>(11)); 836 static_cast<GLenum>(11));
847 EXPECT_EQ(static_cast<uint32>(Disable::kCmdId), 837 EXPECT_EQ(static_cast<uint32>(Disable::kCmdId),
848 cmd.header.command); 838 cmd.header.command);
849 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 839 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
850 EXPECT_EQ(static_cast<char*>(next_cmd),
851 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
852 EXPECT_EQ(static_cast<GLenum>(11), cmd.cap); 840 EXPECT_EQ(static_cast<GLenum>(11), cmd.cap);
841 CheckBytesWrittenMatchesExpectedSize(
842 next_cmd, sizeof(cmd));
853 } 843 }
854 844
855 TEST(GLES2FormatTest, DisableVertexAttribArray) { 845 TEST_F(GLES2FormatTest, DisableVertexAttribArray) {
856 DisableVertexAttribArray cmd = { { 0 } }; 846 DisableVertexAttribArray& cmd = *GetBufferAs<DisableVertexAttribArray>();
857 void* next_cmd = cmd.Set( 847 void* next_cmd = cmd.Set(
858 &cmd, 848 &cmd,
859 static_cast<GLuint>(11)); 849 static_cast<GLuint>(11));
860 EXPECT_EQ(static_cast<uint32>(DisableVertexAttribArray::kCmdId), 850 EXPECT_EQ(static_cast<uint32>(DisableVertexAttribArray::kCmdId),
861 cmd.header.command); 851 cmd.header.command);
862 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 852 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
863 EXPECT_EQ(static_cast<char*>(next_cmd),
864 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
865 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 853 EXPECT_EQ(static_cast<GLuint>(11), cmd.index);
854 CheckBytesWrittenMatchesExpectedSize(
855 next_cmd, sizeof(cmd));
866 } 856 }
867 857
868 TEST(GLES2FormatTest, DrawArrays) { 858 TEST_F(GLES2FormatTest, DrawArrays) {
869 DrawArrays cmd = { { 0 } }; 859 DrawArrays& cmd = *GetBufferAs<DrawArrays>();
870 void* next_cmd = cmd.Set( 860 void* next_cmd = cmd.Set(
871 &cmd, 861 &cmd,
872 static_cast<GLenum>(11), 862 static_cast<GLenum>(11),
873 static_cast<GLint>(12), 863 static_cast<GLint>(12),
874 static_cast<GLsizei>(13)); 864 static_cast<GLsizei>(13));
875 EXPECT_EQ(static_cast<uint32>(DrawArrays::kCmdId), 865 EXPECT_EQ(static_cast<uint32>(DrawArrays::kCmdId),
876 cmd.header.command); 866 cmd.header.command);
877 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 867 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
878 EXPECT_EQ(static_cast<char*>(next_cmd),
879 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
880 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 868 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode);
881 EXPECT_EQ(static_cast<GLint>(12), cmd.first); 869 EXPECT_EQ(static_cast<GLint>(12), cmd.first);
882 EXPECT_EQ(static_cast<GLsizei>(13), cmd.count); 870 EXPECT_EQ(static_cast<GLsizei>(13), cmd.count);
871 CheckBytesWrittenMatchesExpectedSize(
872 next_cmd, sizeof(cmd));
883 } 873 }
884 874
885 TEST(GLES2FormatTest, DrawElements) { 875 TEST_F(GLES2FormatTest, DrawElements) {
886 DrawElements cmd = { { 0 } }; 876 DrawElements& cmd = *GetBufferAs<DrawElements>();
887 void* next_cmd = cmd.Set( 877 void* next_cmd = cmd.Set(
888 &cmd, 878 &cmd,
889 static_cast<GLenum>(11), 879 static_cast<GLenum>(11),
890 static_cast<GLsizei>(12), 880 static_cast<GLsizei>(12),
891 static_cast<GLenum>(13), 881 static_cast<GLenum>(13),
892 static_cast<GLuint>(14)); 882 static_cast<GLuint>(14));
893 EXPECT_EQ(static_cast<uint32>(DrawElements::kCmdId), 883 EXPECT_EQ(static_cast<uint32>(DrawElements::kCmdId),
894 cmd.header.command); 884 cmd.header.command);
895 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 885 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
896 EXPECT_EQ(static_cast<char*>(next_cmd),
897 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
898 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 886 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode);
899 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 887 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
900 EXPECT_EQ(static_cast<GLenum>(13), cmd.type); 888 EXPECT_EQ(static_cast<GLenum>(13), cmd.type);
901 EXPECT_EQ(static_cast<GLuint>(14), cmd.index_offset); 889 EXPECT_EQ(static_cast<GLuint>(14), cmd.index_offset);
890 CheckBytesWrittenMatchesExpectedSize(
891 next_cmd, sizeof(cmd));
902 } 892 }
903 893
904 TEST(GLES2FormatTest, Enable) { 894 TEST_F(GLES2FormatTest, Enable) {
905 Enable cmd = { { 0 } }; 895 Enable& cmd = *GetBufferAs<Enable>();
906 void* next_cmd = cmd.Set( 896 void* next_cmd = cmd.Set(
907 &cmd, 897 &cmd,
908 static_cast<GLenum>(11)); 898 static_cast<GLenum>(11));
909 EXPECT_EQ(static_cast<uint32>(Enable::kCmdId), 899 EXPECT_EQ(static_cast<uint32>(Enable::kCmdId),
910 cmd.header.command); 900 cmd.header.command);
911 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 901 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
912 EXPECT_EQ(static_cast<char*>(next_cmd),
913 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
914 EXPECT_EQ(static_cast<GLenum>(11), cmd.cap); 902 EXPECT_EQ(static_cast<GLenum>(11), cmd.cap);
903 CheckBytesWrittenMatchesExpectedSize(
904 next_cmd, sizeof(cmd));
915 } 905 }
916 906
917 TEST(GLES2FormatTest, EnableVertexAttribArray) { 907 TEST_F(GLES2FormatTest, EnableVertexAttribArray) {
918 EnableVertexAttribArray cmd = { { 0 } }; 908 EnableVertexAttribArray& cmd = *GetBufferAs<EnableVertexAttribArray>();
919 void* next_cmd = cmd.Set( 909 void* next_cmd = cmd.Set(
920 &cmd, 910 &cmd,
921 static_cast<GLuint>(11)); 911 static_cast<GLuint>(11));
922 EXPECT_EQ(static_cast<uint32>(EnableVertexAttribArray::kCmdId), 912 EXPECT_EQ(static_cast<uint32>(EnableVertexAttribArray::kCmdId),
923 cmd.header.command); 913 cmd.header.command);
924 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 914 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
925 EXPECT_EQ(static_cast<char*>(next_cmd),
926 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
927 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 915 EXPECT_EQ(static_cast<GLuint>(11), cmd.index);
916 CheckBytesWrittenMatchesExpectedSize(
917 next_cmd, sizeof(cmd));
928 } 918 }
929 919
930 TEST(GLES2FormatTest, Finish) { 920 TEST_F(GLES2FormatTest, Finish) {
931 Finish cmd = { { 0 } }; 921 Finish& cmd = *GetBufferAs<Finish>();
932 void* next_cmd = cmd.Set( 922 void* next_cmd = cmd.Set(
933 &cmd); 923 &cmd);
934 EXPECT_EQ(static_cast<uint32>(Finish::kCmdId), 924 EXPECT_EQ(static_cast<uint32>(Finish::kCmdId),
935 cmd.header.command); 925 cmd.header.command);
936 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 926 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
937 EXPECT_EQ(static_cast<char*>(next_cmd), 927 CheckBytesWrittenMatchesExpectedSize(
938 reinterpret_cast<char*>(&cmd) + sizeof(cmd)); 928 next_cmd, sizeof(cmd));
939 } 929 }
940 930
941 TEST(GLES2FormatTest, Flush) { 931 TEST_F(GLES2FormatTest, Flush) {
942 Flush cmd = { { 0 } }; 932 Flush& cmd = *GetBufferAs<Flush>();
943 void* next_cmd = cmd.Set( 933 void* next_cmd = cmd.Set(
944 &cmd); 934 &cmd);
945 EXPECT_EQ(static_cast<uint32>(Flush::kCmdId), 935 EXPECT_EQ(static_cast<uint32>(Flush::kCmdId),
946 cmd.header.command); 936 cmd.header.command);
947 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 937 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
948 EXPECT_EQ(static_cast<char*>(next_cmd), 938 CheckBytesWrittenMatchesExpectedSize(
949 reinterpret_cast<char*>(&cmd) + sizeof(cmd)); 939 next_cmd, sizeof(cmd));
950 } 940 }
951 941
952 TEST(GLES2FormatTest, FramebufferRenderbuffer) { 942 TEST_F(GLES2FormatTest, FramebufferRenderbuffer) {
953 FramebufferRenderbuffer cmd = { { 0 } }; 943 FramebufferRenderbuffer& cmd = *GetBufferAs<FramebufferRenderbuffer>();
954 void* next_cmd = cmd.Set( 944 void* next_cmd = cmd.Set(
955 &cmd, 945 &cmd,
956 static_cast<GLenum>(11), 946 static_cast<GLenum>(11),
957 static_cast<GLenum>(12), 947 static_cast<GLenum>(12),
958 static_cast<GLenum>(13), 948 static_cast<GLenum>(13),
959 static_cast<GLuint>(14)); 949 static_cast<GLuint>(14));
960 EXPECT_EQ(static_cast<uint32>(FramebufferRenderbuffer::kCmdId), 950 EXPECT_EQ(static_cast<uint32>(FramebufferRenderbuffer::kCmdId),
961 cmd.header.command); 951 cmd.header.command);
962 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 952 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
963 EXPECT_EQ(static_cast<char*>(next_cmd),
964 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
965 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 953 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
966 EXPECT_EQ(static_cast<GLenum>(12), cmd.attachment); 954 EXPECT_EQ(static_cast<GLenum>(12), cmd.attachment);
967 EXPECT_EQ(static_cast<GLenum>(13), cmd.renderbuffertarget); 955 EXPECT_EQ(static_cast<GLenum>(13), cmd.renderbuffertarget);
968 EXPECT_EQ(static_cast<GLuint>(14), cmd.renderbuffer); 956 EXPECT_EQ(static_cast<GLuint>(14), cmd.renderbuffer);
957 CheckBytesWrittenMatchesExpectedSize(
958 next_cmd, sizeof(cmd));
969 } 959 }
970 960
971 TEST(GLES2FormatTest, FramebufferTexture2D) { 961 TEST_F(GLES2FormatTest, FramebufferTexture2D) {
972 FramebufferTexture2D cmd = { { 0 } }; 962 FramebufferTexture2D& cmd = *GetBufferAs<FramebufferTexture2D>();
973 void* next_cmd = cmd.Set( 963 void* next_cmd = cmd.Set(
974 &cmd, 964 &cmd,
975 static_cast<GLenum>(11), 965 static_cast<GLenum>(11),
976 static_cast<GLenum>(12), 966 static_cast<GLenum>(12),
977 static_cast<GLenum>(13), 967 static_cast<GLenum>(13),
978 static_cast<GLuint>(14), 968 static_cast<GLuint>(14),
979 static_cast<GLint>(15)); 969 static_cast<GLint>(15));
980 EXPECT_EQ(static_cast<uint32>(FramebufferTexture2D::kCmdId), 970 EXPECT_EQ(static_cast<uint32>(FramebufferTexture2D::kCmdId),
981 cmd.header.command); 971 cmd.header.command);
982 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 972 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
983 EXPECT_EQ(static_cast<char*>(next_cmd),
984 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
985 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 973 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
986 EXPECT_EQ(static_cast<GLenum>(12), cmd.attachment); 974 EXPECT_EQ(static_cast<GLenum>(12), cmd.attachment);
987 EXPECT_EQ(static_cast<GLenum>(13), cmd.textarget); 975 EXPECT_EQ(static_cast<GLenum>(13), cmd.textarget);
988 EXPECT_EQ(static_cast<GLuint>(14), cmd.texture); 976 EXPECT_EQ(static_cast<GLuint>(14), cmd.texture);
989 EXPECT_EQ(static_cast<GLint>(15), cmd.level); 977 EXPECT_EQ(static_cast<GLint>(15), cmd.level);
978 CheckBytesWrittenMatchesExpectedSize(
979 next_cmd, sizeof(cmd));
990 } 980 }
991 981
992 TEST(GLES2FormatTest, FrontFace) { 982 TEST_F(GLES2FormatTest, FrontFace) {
993 FrontFace cmd = { { 0 } }; 983 FrontFace& cmd = *GetBufferAs<FrontFace>();
994 void* next_cmd = cmd.Set( 984 void* next_cmd = cmd.Set(
995 &cmd, 985 &cmd,
996 static_cast<GLenum>(11)); 986 static_cast<GLenum>(11));
997 EXPECT_EQ(static_cast<uint32>(FrontFace::kCmdId), 987 EXPECT_EQ(static_cast<uint32>(FrontFace::kCmdId),
998 cmd.header.command); 988 cmd.header.command);
999 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 989 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1000 EXPECT_EQ(static_cast<char*>(next_cmd),
1001 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1002 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 990 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode);
991 CheckBytesWrittenMatchesExpectedSize(
992 next_cmd, sizeof(cmd));
1003 } 993 }
1004 994
1005 TEST(GLES2FormatTest, GenBuffers) { 995 TEST_F(GLES2FormatTest, GenBuffers) {
1006 GenBuffers cmd = { { 0 } }; 996 GenBuffers& cmd = *GetBufferAs<GenBuffers>();
1007 void* next_cmd = cmd.Set( 997 void* next_cmd = cmd.Set(
1008 &cmd, 998 &cmd,
1009 static_cast<GLsizei>(11), 999 static_cast<GLsizei>(11),
1010 static_cast<uint32>(12), 1000 static_cast<uint32>(12),
1011 static_cast<uint32>(13)); 1001 static_cast<uint32>(13));
1012 EXPECT_EQ(static_cast<uint32>(GenBuffers::kCmdId), 1002 EXPECT_EQ(static_cast<uint32>(GenBuffers::kCmdId),
1013 cmd.header.command); 1003 cmd.header.command);
1014 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1004 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1015 EXPECT_EQ(static_cast<char*>(next_cmd),
1016 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1017 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 1005 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n);
1018 EXPECT_EQ(static_cast<uint32>(12), cmd.buffers_shm_id); 1006 EXPECT_EQ(static_cast<uint32>(12), cmd.buffers_shm_id);
1019 EXPECT_EQ(static_cast<uint32>(13), cmd.buffers_shm_offset); 1007 EXPECT_EQ(static_cast<uint32>(13), cmd.buffers_shm_offset);
1008 CheckBytesWrittenMatchesExpectedSize(
1009 next_cmd, sizeof(cmd));
1020 } 1010 }
1021 1011
1022 TEST(GLES2FormatTest, GenBuffersImmediate) { 1012 TEST_F(GLES2FormatTest, GenBuffersImmediate) {
1023 static GLuint ids[] = { 12, 23, 34, }; 1013 static GLuint ids[] = { 12, 23, 34, };
1024 int8 buf[256] = { 0, }; 1014 GenBuffersImmediate& cmd = *GetBufferAs<GenBuffersImmediate>();
1025 GenBuffersImmediate& cmd =
1026 *static_cast<GenBuffersImmediate*>(static_cast<void*>(&buf));
1027 void* next_cmd = cmd.Set( 1015 void* next_cmd = cmd.Set(
1028 &cmd, 1016 &cmd, static_cast<GLsizei>(arraysize(ids)), ids);
1029 static_cast<GLsizei>(11),
1030 ids);
1031 EXPECT_EQ(static_cast<uint32>(GenBuffersImmediate::kCmdId), 1017 EXPECT_EQ(static_cast<uint32>(GenBuffersImmediate::kCmdId),
1032 cmd.header.command); 1018 cmd.header.command);
1033 EXPECT_EQ(sizeof(cmd) + 1019 EXPECT_EQ(sizeof(cmd) +
1034 RoundSizeToMultipleOfEntries(cmd.n * 4u), 1020 RoundSizeToMultipleOfEntries(cmd.n * 4u),
1035 cmd.header.size * 4u); 1021 cmd.header.size * 4u);
1036 EXPECT_EQ(static_cast<char*>(next_cmd), 1022 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);
1037 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + 1023 CheckBytesWrittenMatchesExpectedSize(
1038 RoundSizeToMultipleOfEntries(cmd.n * 4u)); 1024 next_cmd, sizeof(cmd) +
1039 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 1025 RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));
1040 // TODO(gman): Check that ids were inserted; 1026 // TODO(gman): Check that ids were inserted;
1041 } 1027 }
1042 1028
1043 TEST(GLES2FormatTest, GenerateMipmap) { 1029 TEST_F(GLES2FormatTest, GenerateMipmap) {
1044 GenerateMipmap cmd = { { 0 } }; 1030 GenerateMipmap& cmd = *GetBufferAs<GenerateMipmap>();
1045 void* next_cmd = cmd.Set( 1031 void* next_cmd = cmd.Set(
1046 &cmd, 1032 &cmd,
1047 static_cast<GLenum>(11)); 1033 static_cast<GLenum>(11));
1048 EXPECT_EQ(static_cast<uint32>(GenerateMipmap::kCmdId), 1034 EXPECT_EQ(static_cast<uint32>(GenerateMipmap::kCmdId),
1049 cmd.header.command); 1035 cmd.header.command);
1050 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1036 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1051 EXPECT_EQ(static_cast<char*>(next_cmd),
1052 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1053 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1037 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
1038 CheckBytesWrittenMatchesExpectedSize(
1039 next_cmd, sizeof(cmd));
1054 } 1040 }
1055 1041
1056 TEST(GLES2FormatTest, GenFramebuffers) { 1042 TEST_F(GLES2FormatTest, GenFramebuffers) {
1057 GenFramebuffers cmd = { { 0 } }; 1043 GenFramebuffers& cmd = *GetBufferAs<GenFramebuffers>();
1058 void* next_cmd = cmd.Set( 1044 void* next_cmd = cmd.Set(
1059 &cmd, 1045 &cmd,
1060 static_cast<GLsizei>(11), 1046 static_cast<GLsizei>(11),
1061 static_cast<uint32>(12), 1047 static_cast<uint32>(12),
1062 static_cast<uint32>(13)); 1048 static_cast<uint32>(13));
1063 EXPECT_EQ(static_cast<uint32>(GenFramebuffers::kCmdId), 1049 EXPECT_EQ(static_cast<uint32>(GenFramebuffers::kCmdId),
1064 cmd.header.command); 1050 cmd.header.command);
1065 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1051 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1066 EXPECT_EQ(static_cast<char*>(next_cmd),
1067 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1068 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 1052 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n);
1069 EXPECT_EQ(static_cast<uint32>(12), cmd.framebuffers_shm_id); 1053 EXPECT_EQ(static_cast<uint32>(12), cmd.framebuffers_shm_id);
1070 EXPECT_EQ(static_cast<uint32>(13), cmd.framebuffers_shm_offset); 1054 EXPECT_EQ(static_cast<uint32>(13), cmd.framebuffers_shm_offset);
1055 CheckBytesWrittenMatchesExpectedSize(
1056 next_cmd, sizeof(cmd));
1071 } 1057 }
1072 1058
1073 TEST(GLES2FormatTest, GenFramebuffersImmediate) { 1059 TEST_F(GLES2FormatTest, GenFramebuffersImmediate) {
1074 static GLuint ids[] = { 12, 23, 34, }; 1060 static GLuint ids[] = { 12, 23, 34, };
1075 int8 buf[256] = { 0, }; 1061 GenFramebuffersImmediate& cmd = *GetBufferAs<GenFramebuffersImmediate>();
1076 GenFramebuffersImmediate& cmd =
1077 *static_cast<GenFramebuffersImmediate*>(static_cast<void*>(&buf));
1078 void* next_cmd = cmd.Set( 1062 void* next_cmd = cmd.Set(
1079 &cmd, 1063 &cmd, static_cast<GLsizei>(arraysize(ids)), ids);
1080 static_cast<GLsizei>(11),
1081 ids);
1082 EXPECT_EQ(static_cast<uint32>(GenFramebuffersImmediate::kCmdId), 1064 EXPECT_EQ(static_cast<uint32>(GenFramebuffersImmediate::kCmdId),
1083 cmd.header.command); 1065 cmd.header.command);
1084 EXPECT_EQ(sizeof(cmd) + 1066 EXPECT_EQ(sizeof(cmd) +
1085 RoundSizeToMultipleOfEntries(cmd.n * 4u), 1067 RoundSizeToMultipleOfEntries(cmd.n * 4u),
1086 cmd.header.size * 4u); 1068 cmd.header.size * 4u);
1087 EXPECT_EQ(static_cast<char*>(next_cmd), 1069 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);
1088 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + 1070 CheckBytesWrittenMatchesExpectedSize(
1089 RoundSizeToMultipleOfEntries(cmd.n * 4u)); 1071 next_cmd, sizeof(cmd) +
1090 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 1072 RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));
1091 // TODO(gman): Check that ids were inserted; 1073 // TODO(gman): Check that ids were inserted;
1092 } 1074 }
1093 1075
1094 TEST(GLES2FormatTest, GenRenderbuffers) { 1076 TEST_F(GLES2FormatTest, GenRenderbuffers) {
1095 GenRenderbuffers cmd = { { 0 } }; 1077 GenRenderbuffers& cmd = *GetBufferAs<GenRenderbuffers>();
1096 void* next_cmd = cmd.Set( 1078 void* next_cmd = cmd.Set(
1097 &cmd, 1079 &cmd,
1098 static_cast<GLsizei>(11), 1080 static_cast<GLsizei>(11),
1099 static_cast<uint32>(12), 1081 static_cast<uint32>(12),
1100 static_cast<uint32>(13)); 1082 static_cast<uint32>(13));
1101 EXPECT_EQ(static_cast<uint32>(GenRenderbuffers::kCmdId), 1083 EXPECT_EQ(static_cast<uint32>(GenRenderbuffers::kCmdId),
1102 cmd.header.command); 1084 cmd.header.command);
1103 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1085 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1104 EXPECT_EQ(static_cast<char*>(next_cmd),
1105 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1106 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 1086 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n);
1107 EXPECT_EQ(static_cast<uint32>(12), cmd.renderbuffers_shm_id); 1087 EXPECT_EQ(static_cast<uint32>(12), cmd.renderbuffers_shm_id);
1108 EXPECT_EQ(static_cast<uint32>(13), cmd.renderbuffers_shm_offset); 1088 EXPECT_EQ(static_cast<uint32>(13), cmd.renderbuffers_shm_offset);
1089 CheckBytesWrittenMatchesExpectedSize(
1090 next_cmd, sizeof(cmd));
1109 } 1091 }
1110 1092
1111 TEST(GLES2FormatTest, GenRenderbuffersImmediate) { 1093 TEST_F(GLES2FormatTest, GenRenderbuffersImmediate) {
1112 static GLuint ids[] = { 12, 23, 34, }; 1094 static GLuint ids[] = { 12, 23, 34, };
1113 int8 buf[256] = { 0, }; 1095 GenRenderbuffersImmediate& cmd = *GetBufferAs<GenRenderbuffersImmediate>();
1114 GenRenderbuffersImmediate& cmd =
1115 *static_cast<GenRenderbuffersImmediate*>(static_cast<void*>(&buf));
1116 void* next_cmd = cmd.Set( 1096 void* next_cmd = cmd.Set(
1117 &cmd, 1097 &cmd, static_cast<GLsizei>(arraysize(ids)), ids);
1118 static_cast<GLsizei>(11),
1119 ids);
1120 EXPECT_EQ(static_cast<uint32>(GenRenderbuffersImmediate::kCmdId), 1098 EXPECT_EQ(static_cast<uint32>(GenRenderbuffersImmediate::kCmdId),
1121 cmd.header.command); 1099 cmd.header.command);
1122 EXPECT_EQ(sizeof(cmd) + 1100 EXPECT_EQ(sizeof(cmd) +
1123 RoundSizeToMultipleOfEntries(cmd.n * 4u), 1101 RoundSizeToMultipleOfEntries(cmd.n * 4u),
1124 cmd.header.size * 4u); 1102 cmd.header.size * 4u);
1125 EXPECT_EQ(static_cast<char*>(next_cmd), 1103 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);
1126 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + 1104 CheckBytesWrittenMatchesExpectedSize(
1127 RoundSizeToMultipleOfEntries(cmd.n * 4u)); 1105 next_cmd, sizeof(cmd) +
1128 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 1106 RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));
1129 // TODO(gman): Check that ids were inserted; 1107 // TODO(gman): Check that ids were inserted;
1130 } 1108 }
1131 1109
1132 TEST(GLES2FormatTest, GenTextures) { 1110 TEST_F(GLES2FormatTest, GenTextures) {
1133 GenTextures cmd = { { 0 } }; 1111 GenTextures& cmd = *GetBufferAs<GenTextures>();
1134 void* next_cmd = cmd.Set( 1112 void* next_cmd = cmd.Set(
1135 &cmd, 1113 &cmd,
1136 static_cast<GLsizei>(11), 1114 static_cast<GLsizei>(11),
1137 static_cast<uint32>(12), 1115 static_cast<uint32>(12),
1138 static_cast<uint32>(13)); 1116 static_cast<uint32>(13));
1139 EXPECT_EQ(static_cast<uint32>(GenTextures::kCmdId), 1117 EXPECT_EQ(static_cast<uint32>(GenTextures::kCmdId),
1140 cmd.header.command); 1118 cmd.header.command);
1141 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1119 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1142 EXPECT_EQ(static_cast<char*>(next_cmd),
1143 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1144 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 1120 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n);
1145 EXPECT_EQ(static_cast<uint32>(12), cmd.textures_shm_id); 1121 EXPECT_EQ(static_cast<uint32>(12), cmd.textures_shm_id);
1146 EXPECT_EQ(static_cast<uint32>(13), cmd.textures_shm_offset); 1122 EXPECT_EQ(static_cast<uint32>(13), cmd.textures_shm_offset);
1123 CheckBytesWrittenMatchesExpectedSize(
1124 next_cmd, sizeof(cmd));
1147 } 1125 }
1148 1126
1149 TEST(GLES2FormatTest, GenTexturesImmediate) { 1127 TEST_F(GLES2FormatTest, GenTexturesImmediate) {
1150 static GLuint ids[] = { 12, 23, 34, }; 1128 static GLuint ids[] = { 12, 23, 34, };
1151 int8 buf[256] = { 0, }; 1129 GenTexturesImmediate& cmd = *GetBufferAs<GenTexturesImmediate>();
1152 GenTexturesImmediate& cmd =
1153 *static_cast<GenTexturesImmediate*>(static_cast<void*>(&buf));
1154 void* next_cmd = cmd.Set( 1130 void* next_cmd = cmd.Set(
1155 &cmd, 1131 &cmd, static_cast<GLsizei>(arraysize(ids)), ids);
1156 static_cast<GLsizei>(11),
1157 ids);
1158 EXPECT_EQ(static_cast<uint32>(GenTexturesImmediate::kCmdId), 1132 EXPECT_EQ(static_cast<uint32>(GenTexturesImmediate::kCmdId),
1159 cmd.header.command); 1133 cmd.header.command);
1160 EXPECT_EQ(sizeof(cmd) + 1134 EXPECT_EQ(sizeof(cmd) +
1161 RoundSizeToMultipleOfEntries(cmd.n * 4u), 1135 RoundSizeToMultipleOfEntries(cmd.n * 4u),
1162 cmd.header.size * 4u); 1136 cmd.header.size * 4u);
1163 EXPECT_EQ(static_cast<char*>(next_cmd), 1137 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);
1164 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + 1138 CheckBytesWrittenMatchesExpectedSize(
1165 RoundSizeToMultipleOfEntries(cmd.n * 4u)); 1139 next_cmd, sizeof(cmd) +
1166 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 1140 RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));
1167 // TODO(gman): Check that ids were inserted; 1141 // TODO(gman): Check that ids were inserted;
1168 } 1142 }
1169 1143
1170 TEST(GLES2FormatTest, GetActiveAttrib) { 1144 TEST_F(GLES2FormatTest, GetActiveAttrib) {
1171 GetActiveAttrib cmd = { { 0 } }; 1145 GetActiveAttrib& cmd = *GetBufferAs<GetActiveAttrib>();
1172 void* next_cmd = cmd.Set( 1146 void* next_cmd = cmd.Set(
1173 &cmd, 1147 &cmd,
1174 static_cast<GLuint>(11), 1148 static_cast<GLuint>(11),
1175 static_cast<GLuint>(12), 1149 static_cast<GLuint>(12),
1176 static_cast<uint32>(13), 1150 static_cast<uint32>(13),
1177 static_cast<uint32>(14), 1151 static_cast<uint32>(14),
1178 static_cast<uint32>(15)); 1152 static_cast<uint32>(15));
1179 EXPECT_EQ(static_cast<uint32>(GetActiveAttrib::kCmdId), 1153 EXPECT_EQ(static_cast<uint32>(GetActiveAttrib::kCmdId),
1180 cmd.header.command); 1154 cmd.header.command);
1181 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1155 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1182 EXPECT_EQ(static_cast<char*>(next_cmd),
1183 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1184 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1156 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
1185 EXPECT_EQ(static_cast<GLuint>(12), cmd.index); 1157 EXPECT_EQ(static_cast<GLuint>(12), cmd.index);
1186 EXPECT_EQ(static_cast<uint32>(13), cmd.name_bucket_id); 1158 EXPECT_EQ(static_cast<uint32>(13), cmd.name_bucket_id);
1187 EXPECT_EQ(static_cast<uint32>(14), cmd.result_shm_id); 1159 EXPECT_EQ(static_cast<uint32>(14), cmd.result_shm_id);
1188 EXPECT_EQ(static_cast<uint32>(15), cmd.result_shm_offset); 1160 EXPECT_EQ(static_cast<uint32>(15), cmd.result_shm_offset);
1161 CheckBytesWrittenMatchesExpectedSize(
1162 next_cmd, sizeof(cmd));
1189 } 1163 }
1190 1164
1191 TEST(GLES2FormatTest, GetActiveUniform) { 1165 TEST_F(GLES2FormatTest, GetActiveUniform) {
1192 GetActiveUniform cmd = { { 0 } }; 1166 GetActiveUniform& cmd = *GetBufferAs<GetActiveUniform>();
1193 void* next_cmd = cmd.Set( 1167 void* next_cmd = cmd.Set(
1194 &cmd, 1168 &cmd,
1195 static_cast<GLuint>(11), 1169 static_cast<GLuint>(11),
1196 static_cast<GLuint>(12), 1170 static_cast<GLuint>(12),
1197 static_cast<uint32>(13), 1171 static_cast<uint32>(13),
1198 static_cast<uint32>(14), 1172 static_cast<uint32>(14),
1199 static_cast<uint32>(15)); 1173 static_cast<uint32>(15));
1200 EXPECT_EQ(static_cast<uint32>(GetActiveUniform::kCmdId), 1174 EXPECT_EQ(static_cast<uint32>(GetActiveUniform::kCmdId),
1201 cmd.header.command); 1175 cmd.header.command);
1202 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1176 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1203 EXPECT_EQ(static_cast<char*>(next_cmd),
1204 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1205 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1177 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
1206 EXPECT_EQ(static_cast<GLuint>(12), cmd.index); 1178 EXPECT_EQ(static_cast<GLuint>(12), cmd.index);
1207 EXPECT_EQ(static_cast<uint32>(13), cmd.name_bucket_id); 1179 EXPECT_EQ(static_cast<uint32>(13), cmd.name_bucket_id);
1208 EXPECT_EQ(static_cast<uint32>(14), cmd.result_shm_id); 1180 EXPECT_EQ(static_cast<uint32>(14), cmd.result_shm_id);
1209 EXPECT_EQ(static_cast<uint32>(15), cmd.result_shm_offset); 1181 EXPECT_EQ(static_cast<uint32>(15), cmd.result_shm_offset);
1182 CheckBytesWrittenMatchesExpectedSize(
1183 next_cmd, sizeof(cmd));
1210 } 1184 }
1211 1185
1212 TEST(GLES2FormatTest, GetAttachedShaders) { 1186 TEST_F(GLES2FormatTest, GetAttachedShaders) {
1213 GetAttachedShaders cmd = { { 0 } }; 1187 GetAttachedShaders& cmd = *GetBufferAs<GetAttachedShaders>();
1214 void* next_cmd = cmd.Set( 1188 void* next_cmd = cmd.Set(
1215 &cmd, 1189 &cmd,
1216 static_cast<GLuint>(11), 1190 static_cast<GLuint>(11),
1217 static_cast<uint32>(12), 1191 static_cast<uint32>(12),
1218 static_cast<uint32>(13), 1192 static_cast<uint32>(13),
1219 static_cast<uint32>(14)); 1193 static_cast<uint32>(14));
1220 EXPECT_EQ(static_cast<uint32>(GetAttachedShaders::kCmdId), 1194 EXPECT_EQ(static_cast<uint32>(GetAttachedShaders::kCmdId),
1221 cmd.header.command); 1195 cmd.header.command);
1222 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1196 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1223 EXPECT_EQ(static_cast<char*>(next_cmd),
1224 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1225 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1197 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
1226 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1198 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id);
1227 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1199 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset);
1228 EXPECT_EQ(static_cast<uint32>(14), cmd.result_size); 1200 EXPECT_EQ(static_cast<uint32>(14), cmd.result_size);
1201 CheckBytesWrittenMatchesExpectedSize(
1202 next_cmd, sizeof(cmd));
1229 } 1203 }
1230 1204
1231 // TODO(gman): Write test for GetAttribLocation 1205 // TODO(gman): Write test for GetAttribLocation
1232 // TODO(gman): Write test for GetAttribLocationImmediate 1206 // TODO(gman): Write test for GetAttribLocationImmediate
1233 // TODO(gman): Write test for GetAttribLocationBucket 1207 // TODO(gman): Write test for GetAttribLocationBucket
1234 TEST(GLES2FormatTest, GetBooleanv) { 1208 TEST_F(GLES2FormatTest, GetBooleanv) {
1235 GetBooleanv cmd = { { 0 } }; 1209 GetBooleanv& cmd = *GetBufferAs<GetBooleanv>();
1236 void* next_cmd = cmd.Set( 1210 void* next_cmd = cmd.Set(
1237 &cmd, 1211 &cmd,
1238 static_cast<GLenum>(11), 1212 static_cast<GLenum>(11),
1239 static_cast<uint32>(12), 1213 static_cast<uint32>(12),
1240 static_cast<uint32>(13)); 1214 static_cast<uint32>(13));
1241 EXPECT_EQ(static_cast<uint32>(GetBooleanv::kCmdId), 1215 EXPECT_EQ(static_cast<uint32>(GetBooleanv::kCmdId),
1242 cmd.header.command); 1216 cmd.header.command);
1243 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1217 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1244 EXPECT_EQ(static_cast<char*>(next_cmd),
1245 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1246 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname); 1218 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname);
1247 EXPECT_EQ(static_cast<uint32>(12), cmd.params_shm_id); 1219 EXPECT_EQ(static_cast<uint32>(12), cmd.params_shm_id);
1248 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_offset); 1220 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_offset);
1221 CheckBytesWrittenMatchesExpectedSize(
1222 next_cmd, sizeof(cmd));
1249 } 1223 }
1250 1224
1251 TEST(GLES2FormatTest, GetBufferParameteriv) { 1225 TEST_F(GLES2FormatTest, GetBufferParameteriv) {
1252 GetBufferParameteriv cmd = { { 0 } }; 1226 GetBufferParameteriv& cmd = *GetBufferAs<GetBufferParameteriv>();
1253 void* next_cmd = cmd.Set( 1227 void* next_cmd = cmd.Set(
1254 &cmd, 1228 &cmd,
1255 static_cast<GLenum>(11), 1229 static_cast<GLenum>(11),
1256 static_cast<GLenum>(12), 1230 static_cast<GLenum>(12),
1257 static_cast<uint32>(13), 1231 static_cast<uint32>(13),
1258 static_cast<uint32>(14)); 1232 static_cast<uint32>(14));
1259 EXPECT_EQ(static_cast<uint32>(GetBufferParameteriv::kCmdId), 1233 EXPECT_EQ(static_cast<uint32>(GetBufferParameteriv::kCmdId),
1260 cmd.header.command); 1234 cmd.header.command);
1261 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1235 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1262 EXPECT_EQ(static_cast<char*>(next_cmd),
1263 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1264 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1236 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
1265 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1237 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
1266 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1238 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
1267 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1239 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
1240 CheckBytesWrittenMatchesExpectedSize(
1241 next_cmd, sizeof(cmd));
1268 } 1242 }
1269 1243
1270 TEST(GLES2FormatTest, GetError) { 1244 TEST_F(GLES2FormatTest, GetError) {
1271 GetError cmd = { { 0 } }; 1245 GetError& cmd = *GetBufferAs<GetError>();
1272 void* next_cmd = cmd.Set( 1246 void* next_cmd = cmd.Set(
1273 &cmd, 1247 &cmd,
1274 static_cast<uint32>(11), 1248 static_cast<uint32>(11),
1275 static_cast<uint32>(12)); 1249 static_cast<uint32>(12));
1276 EXPECT_EQ(static_cast<uint32>(GetError::kCmdId), 1250 EXPECT_EQ(static_cast<uint32>(GetError::kCmdId),
1277 cmd.header.command); 1251 cmd.header.command);
1278 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1252 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1279 EXPECT_EQ(static_cast<char*>(next_cmd),
1280 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1281 EXPECT_EQ(static_cast<uint32>(11), cmd.result_shm_id); 1253 EXPECT_EQ(static_cast<uint32>(11), cmd.result_shm_id);
1282 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_offset); 1254 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_offset);
1255 CheckBytesWrittenMatchesExpectedSize(
1256 next_cmd, sizeof(cmd));
1283 } 1257 }
1284 1258
1285 TEST(GLES2FormatTest, GetFloatv) { 1259 TEST_F(GLES2FormatTest, GetFloatv) {
1286 GetFloatv cmd = { { 0 } }; 1260 GetFloatv& cmd = *GetBufferAs<GetFloatv>();
1287 void* next_cmd = cmd.Set( 1261 void* next_cmd = cmd.Set(
1288 &cmd, 1262 &cmd,
1289 static_cast<GLenum>(11), 1263 static_cast<GLenum>(11),
1290 static_cast<uint32>(12), 1264 static_cast<uint32>(12),
1291 static_cast<uint32>(13)); 1265 static_cast<uint32>(13));
1292 EXPECT_EQ(static_cast<uint32>(GetFloatv::kCmdId), 1266 EXPECT_EQ(static_cast<uint32>(GetFloatv::kCmdId),
1293 cmd.header.command); 1267 cmd.header.command);
1294 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1268 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1295 EXPECT_EQ(static_cast<char*>(next_cmd),
1296 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1297 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname); 1269 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname);
1298 EXPECT_EQ(static_cast<uint32>(12), cmd.params_shm_id); 1270 EXPECT_EQ(static_cast<uint32>(12), cmd.params_shm_id);
1299 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_offset); 1271 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_offset);
1272 CheckBytesWrittenMatchesExpectedSize(
1273 next_cmd, sizeof(cmd));
1300 } 1274 }
1301 1275
1302 TEST(GLES2FormatTest, GetFramebufferAttachmentParameteriv) { 1276 TEST_F(GLES2FormatTest, GetFramebufferAttachmentParameteriv) {
1303 GetFramebufferAttachmentParameteriv cmd = { { 0 } }; 1277 GetFramebufferAttachmentParameteriv& cmd =
1278 *GetBufferAs<GetFramebufferAttachmentParameteriv>();
1304 void* next_cmd = cmd.Set( 1279 void* next_cmd = cmd.Set(
1305 &cmd, 1280 &cmd,
1306 static_cast<GLenum>(11), 1281 static_cast<GLenum>(11),
1307 static_cast<GLenum>(12), 1282 static_cast<GLenum>(12),
1308 static_cast<GLenum>(13), 1283 static_cast<GLenum>(13),
1309 static_cast<uint32>(14), 1284 static_cast<uint32>(14),
1310 static_cast<uint32>(15)); 1285 static_cast<uint32>(15));
1311 EXPECT_EQ(static_cast<uint32>(GetFramebufferAttachmentParameteriv::kCmdId), 1286 EXPECT_EQ(static_cast<uint32>(GetFramebufferAttachmentParameteriv::kCmdId),
1312 cmd.header.command); 1287 cmd.header.command);
1313 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1288 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1314 EXPECT_EQ(static_cast<char*>(next_cmd),
1315 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1316 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1289 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
1317 EXPECT_EQ(static_cast<GLenum>(12), cmd.attachment); 1290 EXPECT_EQ(static_cast<GLenum>(12), cmd.attachment);
1318 EXPECT_EQ(static_cast<GLenum>(13), cmd.pname); 1291 EXPECT_EQ(static_cast<GLenum>(13), cmd.pname);
1319 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_id); 1292 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_id);
1320 EXPECT_EQ(static_cast<uint32>(15), cmd.params_shm_offset); 1293 EXPECT_EQ(static_cast<uint32>(15), cmd.params_shm_offset);
1294 CheckBytesWrittenMatchesExpectedSize(
1295 next_cmd, sizeof(cmd));
1321 } 1296 }
1322 1297
1323 TEST(GLES2FormatTest, GetIntegerv) { 1298 TEST_F(GLES2FormatTest, GetIntegerv) {
1324 GetIntegerv cmd = { { 0 } }; 1299 GetIntegerv& cmd = *GetBufferAs<GetIntegerv>();
1325 void* next_cmd = cmd.Set( 1300 void* next_cmd = cmd.Set(
1326 &cmd, 1301 &cmd,
1327 static_cast<GLenum>(11), 1302 static_cast<GLenum>(11),
1328 static_cast<uint32>(12), 1303 static_cast<uint32>(12),
1329 static_cast<uint32>(13)); 1304 static_cast<uint32>(13));
1330 EXPECT_EQ(static_cast<uint32>(GetIntegerv::kCmdId), 1305 EXPECT_EQ(static_cast<uint32>(GetIntegerv::kCmdId),
1331 cmd.header.command); 1306 cmd.header.command);
1332 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1307 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1333 EXPECT_EQ(static_cast<char*>(next_cmd),
1334 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1335 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname); 1308 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname);
1336 EXPECT_EQ(static_cast<uint32>(12), cmd.params_shm_id); 1309 EXPECT_EQ(static_cast<uint32>(12), cmd.params_shm_id);
1337 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_offset); 1310 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_offset);
1311 CheckBytesWrittenMatchesExpectedSize(
1312 next_cmd, sizeof(cmd));
1338 } 1313 }
1339 1314
1340 TEST(GLES2FormatTest, GetProgramiv) { 1315 TEST_F(GLES2FormatTest, GetProgramiv) {
1341 GetProgramiv cmd = { { 0 } }; 1316 GetProgramiv& cmd = *GetBufferAs<GetProgramiv>();
1342 void* next_cmd = cmd.Set( 1317 void* next_cmd = cmd.Set(
1343 &cmd, 1318 &cmd,
1344 static_cast<GLuint>(11), 1319 static_cast<GLuint>(11),
1345 static_cast<GLenum>(12), 1320 static_cast<GLenum>(12),
1346 static_cast<uint32>(13), 1321 static_cast<uint32>(13),
1347 static_cast<uint32>(14)); 1322 static_cast<uint32>(14));
1348 EXPECT_EQ(static_cast<uint32>(GetProgramiv::kCmdId), 1323 EXPECT_EQ(static_cast<uint32>(GetProgramiv::kCmdId),
1349 cmd.header.command); 1324 cmd.header.command);
1350 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1325 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1351 EXPECT_EQ(static_cast<char*>(next_cmd),
1352 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1353 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1326 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
1354 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1327 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
1355 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1328 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
1356 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1329 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
1330 CheckBytesWrittenMatchesExpectedSize(
1331 next_cmd, sizeof(cmd));
1357 } 1332 }
1358 1333
1359 TEST(GLES2FormatTest, GetProgramInfoLog) { 1334 TEST_F(GLES2FormatTest, GetProgramInfoLog) {
1360 GetProgramInfoLog cmd = { { 0 } }; 1335 GetProgramInfoLog& cmd = *GetBufferAs<GetProgramInfoLog>();
1361 void* next_cmd = cmd.Set( 1336 void* next_cmd = cmd.Set(
1362 &cmd, 1337 &cmd,
1363 static_cast<GLuint>(11), 1338 static_cast<GLuint>(11),
1364 static_cast<uint32>(12)); 1339 static_cast<uint32>(12));
1365 EXPECT_EQ(static_cast<uint32>(GetProgramInfoLog::kCmdId), 1340 EXPECT_EQ(static_cast<uint32>(GetProgramInfoLog::kCmdId),
1366 cmd.header.command); 1341 cmd.header.command);
1367 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1342 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1368 EXPECT_EQ(static_cast<char*>(next_cmd),
1369 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1370 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1343 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
1371 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 1344 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id);
1345 CheckBytesWrittenMatchesExpectedSize(
1346 next_cmd, sizeof(cmd));
1372 } 1347 }
1373 1348
1374 TEST(GLES2FormatTest, GetRenderbufferParameteriv) { 1349 TEST_F(GLES2FormatTest, GetRenderbufferParameteriv) {
1375 GetRenderbufferParameteriv cmd = { { 0 } }; 1350 GetRenderbufferParameteriv& cmd = *GetBufferAs<GetRenderbufferParameteriv>();
1376 void* next_cmd = cmd.Set( 1351 void* next_cmd = cmd.Set(
1377 &cmd, 1352 &cmd,
1378 static_cast<GLenum>(11), 1353 static_cast<GLenum>(11),
1379 static_cast<GLenum>(12), 1354 static_cast<GLenum>(12),
1380 static_cast<uint32>(13), 1355 static_cast<uint32>(13),
1381 static_cast<uint32>(14)); 1356 static_cast<uint32>(14));
1382 EXPECT_EQ(static_cast<uint32>(GetRenderbufferParameteriv::kCmdId), 1357 EXPECT_EQ(static_cast<uint32>(GetRenderbufferParameteriv::kCmdId),
1383 cmd.header.command); 1358 cmd.header.command);
1384 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1359 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1385 EXPECT_EQ(static_cast<char*>(next_cmd),
1386 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1387 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1360 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
1388 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1361 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
1389 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1362 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
1390 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1363 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
1364 CheckBytesWrittenMatchesExpectedSize(
1365 next_cmd, sizeof(cmd));
1391 } 1366 }
1392 1367
1393 TEST(GLES2FormatTest, GetShaderiv) { 1368 TEST_F(GLES2FormatTest, GetShaderiv) {
1394 GetShaderiv cmd = { { 0 } }; 1369 GetShaderiv& cmd = *GetBufferAs<GetShaderiv>();
1395 void* next_cmd = cmd.Set( 1370 void* next_cmd = cmd.Set(
1396 &cmd, 1371 &cmd,
1397 static_cast<GLuint>(11), 1372 static_cast<GLuint>(11),
1398 static_cast<GLenum>(12), 1373 static_cast<GLenum>(12),
1399 static_cast<uint32>(13), 1374 static_cast<uint32>(13),
1400 static_cast<uint32>(14)); 1375 static_cast<uint32>(14));
1401 EXPECT_EQ(static_cast<uint32>(GetShaderiv::kCmdId), 1376 EXPECT_EQ(static_cast<uint32>(GetShaderiv::kCmdId),
1402 cmd.header.command); 1377 cmd.header.command);
1403 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1378 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1404 EXPECT_EQ(static_cast<char*>(next_cmd),
1405 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1406 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1379 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader);
1407 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1380 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
1408 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1381 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
1409 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1382 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
1383 CheckBytesWrittenMatchesExpectedSize(
1384 next_cmd, sizeof(cmd));
1410 } 1385 }
1411 1386
1412 TEST(GLES2FormatTest, GetShaderInfoLog) { 1387 TEST_F(GLES2FormatTest, GetShaderInfoLog) {
1413 GetShaderInfoLog cmd = { { 0 } }; 1388 GetShaderInfoLog& cmd = *GetBufferAs<GetShaderInfoLog>();
1414 void* next_cmd = cmd.Set( 1389 void* next_cmd = cmd.Set(
1415 &cmd, 1390 &cmd,
1416 static_cast<GLuint>(11), 1391 static_cast<GLuint>(11),
1417 static_cast<uint32>(12)); 1392 static_cast<uint32>(12));
1418 EXPECT_EQ(static_cast<uint32>(GetShaderInfoLog::kCmdId), 1393 EXPECT_EQ(static_cast<uint32>(GetShaderInfoLog::kCmdId),
1419 cmd.header.command); 1394 cmd.header.command);
1420 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1395 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1421 EXPECT_EQ(static_cast<char*>(next_cmd),
1422 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1423 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1396 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader);
1424 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 1397 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id);
1398 CheckBytesWrittenMatchesExpectedSize(
1399 next_cmd, sizeof(cmd));
1425 } 1400 }
1426 1401
1427 TEST(GLES2FormatTest, GetShaderPrecisionFormat) { 1402 TEST_F(GLES2FormatTest, GetShaderPrecisionFormat) {
1428 GetShaderPrecisionFormat cmd = { { 0 } }; 1403 GetShaderPrecisionFormat& cmd = *GetBufferAs<GetShaderPrecisionFormat>();
1429 void* next_cmd = cmd.Set( 1404 void* next_cmd = cmd.Set(
1430 &cmd, 1405 &cmd,
1431 static_cast<GLenum>(11), 1406 static_cast<GLenum>(11),
1432 static_cast<GLenum>(12), 1407 static_cast<GLenum>(12),
1433 static_cast<uint32>(13), 1408 static_cast<uint32>(13),
1434 static_cast<uint32>(14)); 1409 static_cast<uint32>(14));
1435 EXPECT_EQ(static_cast<uint32>(GetShaderPrecisionFormat::kCmdId), 1410 EXPECT_EQ(static_cast<uint32>(GetShaderPrecisionFormat::kCmdId),
1436 cmd.header.command); 1411 cmd.header.command);
1437 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1412 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1438 EXPECT_EQ(static_cast<char*>(next_cmd),
1439 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1440 EXPECT_EQ(static_cast<GLenum>(11), cmd.shadertype); 1413 EXPECT_EQ(static_cast<GLenum>(11), cmd.shadertype);
1441 EXPECT_EQ(static_cast<GLenum>(12), cmd.precisiontype); 1414 EXPECT_EQ(static_cast<GLenum>(12), cmd.precisiontype);
1442 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_id); 1415 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_id);
1443 EXPECT_EQ(static_cast<uint32>(14), cmd.result_shm_offset); 1416 EXPECT_EQ(static_cast<uint32>(14), cmd.result_shm_offset);
1417 CheckBytesWrittenMatchesExpectedSize(
1418 next_cmd, sizeof(cmd));
1444 } 1419 }
1445 1420
1446 TEST(GLES2FormatTest, GetShaderSource) { 1421 TEST_F(GLES2FormatTest, GetShaderSource) {
1447 GetShaderSource cmd = { { 0 } }; 1422 GetShaderSource& cmd = *GetBufferAs<GetShaderSource>();
1448 void* next_cmd = cmd.Set( 1423 void* next_cmd = cmd.Set(
1449 &cmd, 1424 &cmd,
1450 static_cast<GLuint>(11), 1425 static_cast<GLuint>(11),
1451 static_cast<uint32>(12)); 1426 static_cast<uint32>(12));
1452 EXPECT_EQ(static_cast<uint32>(GetShaderSource::kCmdId), 1427 EXPECT_EQ(static_cast<uint32>(GetShaderSource::kCmdId),
1453 cmd.header.command); 1428 cmd.header.command);
1454 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1429 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1455 EXPECT_EQ(static_cast<char*>(next_cmd),
1456 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1457 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1430 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader);
1458 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 1431 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id);
1432 CheckBytesWrittenMatchesExpectedSize(
1433 next_cmd, sizeof(cmd));
1459 } 1434 }
1460 1435
1461 TEST(GLES2FormatTest, GetString) { 1436 TEST_F(GLES2FormatTest, GetString) {
1462 GetString cmd = { { 0 } }; 1437 GetString& cmd = *GetBufferAs<GetString>();
1463 void* next_cmd = cmd.Set( 1438 void* next_cmd = cmd.Set(
1464 &cmd, 1439 &cmd,
1465 static_cast<GLenum>(11), 1440 static_cast<GLenum>(11),
1466 static_cast<uint32>(12)); 1441 static_cast<uint32>(12));
1467 EXPECT_EQ(static_cast<uint32>(GetString::kCmdId), 1442 EXPECT_EQ(static_cast<uint32>(GetString::kCmdId),
1468 cmd.header.command); 1443 cmd.header.command);
1469 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1444 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1470 EXPECT_EQ(static_cast<char*>(next_cmd),
1471 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1472 EXPECT_EQ(static_cast<GLenum>(11), cmd.name); 1445 EXPECT_EQ(static_cast<GLenum>(11), cmd.name);
1473 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 1446 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id);
1447 CheckBytesWrittenMatchesExpectedSize(
1448 next_cmd, sizeof(cmd));
1474 } 1449 }
1475 1450
1476 TEST(GLES2FormatTest, GetTexParameterfv) { 1451 TEST_F(GLES2FormatTest, GetTexParameterfv) {
1477 GetTexParameterfv cmd = { { 0 } }; 1452 GetTexParameterfv& cmd = *GetBufferAs<GetTexParameterfv>();
1478 void* next_cmd = cmd.Set( 1453 void* next_cmd = cmd.Set(
1479 &cmd, 1454 &cmd,
1480 static_cast<GLenum>(11), 1455 static_cast<GLenum>(11),
1481 static_cast<GLenum>(12), 1456 static_cast<GLenum>(12),
1482 static_cast<uint32>(13), 1457 static_cast<uint32>(13),
1483 static_cast<uint32>(14)); 1458 static_cast<uint32>(14));
1484 EXPECT_EQ(static_cast<uint32>(GetTexParameterfv::kCmdId), 1459 EXPECT_EQ(static_cast<uint32>(GetTexParameterfv::kCmdId),
1485 cmd.header.command); 1460 cmd.header.command);
1486 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1461 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1487 EXPECT_EQ(static_cast<char*>(next_cmd),
1488 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1489 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1462 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
1490 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1463 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
1491 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1464 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
1492 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1465 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
1466 CheckBytesWrittenMatchesExpectedSize(
1467 next_cmd, sizeof(cmd));
1493 } 1468 }
1494 1469
1495 TEST(GLES2FormatTest, GetTexParameteriv) { 1470 TEST_F(GLES2FormatTest, GetTexParameteriv) {
1496 GetTexParameteriv cmd = { { 0 } }; 1471 GetTexParameteriv& cmd = *GetBufferAs<GetTexParameteriv>();
1497 void* next_cmd = cmd.Set( 1472 void* next_cmd = cmd.Set(
1498 &cmd, 1473 &cmd,
1499 static_cast<GLenum>(11), 1474 static_cast<GLenum>(11),
1500 static_cast<GLenum>(12), 1475 static_cast<GLenum>(12),
1501 static_cast<uint32>(13), 1476 static_cast<uint32>(13),
1502 static_cast<uint32>(14)); 1477 static_cast<uint32>(14));
1503 EXPECT_EQ(static_cast<uint32>(GetTexParameteriv::kCmdId), 1478 EXPECT_EQ(static_cast<uint32>(GetTexParameteriv::kCmdId),
1504 cmd.header.command); 1479 cmd.header.command);
1505 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1480 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1506 EXPECT_EQ(static_cast<char*>(next_cmd),
1507 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1508 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1481 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
1509 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1482 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
1510 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1483 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
1511 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1484 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
1485 CheckBytesWrittenMatchesExpectedSize(
1486 next_cmd, sizeof(cmd));
1512 } 1487 }
1513 1488
1514 TEST(GLES2FormatTest, GetUniformfv) { 1489 TEST_F(GLES2FormatTest, GetUniformfv) {
1515 GetUniformfv cmd = { { 0 } }; 1490 GetUniformfv& cmd = *GetBufferAs<GetUniformfv>();
1516 void* next_cmd = cmd.Set( 1491 void* next_cmd = cmd.Set(
1517 &cmd, 1492 &cmd,
1518 static_cast<GLuint>(11), 1493 static_cast<GLuint>(11),
1519 static_cast<GLint>(12), 1494 static_cast<GLint>(12),
1520 static_cast<uint32>(13), 1495 static_cast<uint32>(13),
1521 static_cast<uint32>(14)); 1496 static_cast<uint32>(14));
1522 EXPECT_EQ(static_cast<uint32>(GetUniformfv::kCmdId), 1497 EXPECT_EQ(static_cast<uint32>(GetUniformfv::kCmdId),
1523 cmd.header.command); 1498 cmd.header.command);
1524 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1499 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1525 EXPECT_EQ(static_cast<char*>(next_cmd),
1526 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1527 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1500 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
1528 EXPECT_EQ(static_cast<GLint>(12), cmd.location); 1501 EXPECT_EQ(static_cast<GLint>(12), cmd.location);
1529 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1502 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
1530 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1503 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
1504 CheckBytesWrittenMatchesExpectedSize(
1505 next_cmd, sizeof(cmd));
1531 } 1506 }
1532 1507
1533 TEST(GLES2FormatTest, GetUniformiv) { 1508 TEST_F(GLES2FormatTest, GetUniformiv) {
1534 GetUniformiv cmd = { { 0 } }; 1509 GetUniformiv& cmd = *GetBufferAs<GetUniformiv>();
1535 void* next_cmd = cmd.Set( 1510 void* next_cmd = cmd.Set(
1536 &cmd, 1511 &cmd,
1537 static_cast<GLuint>(11), 1512 static_cast<GLuint>(11),
1538 static_cast<GLint>(12), 1513 static_cast<GLint>(12),
1539 static_cast<uint32>(13), 1514 static_cast<uint32>(13),
1540 static_cast<uint32>(14)); 1515 static_cast<uint32>(14));
1541 EXPECT_EQ(static_cast<uint32>(GetUniformiv::kCmdId), 1516 EXPECT_EQ(static_cast<uint32>(GetUniformiv::kCmdId),
1542 cmd.header.command); 1517 cmd.header.command);
1543 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1518 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1544 EXPECT_EQ(static_cast<char*>(next_cmd),
1545 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1546 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1519 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
1547 EXPECT_EQ(static_cast<GLint>(12), cmd.location); 1520 EXPECT_EQ(static_cast<GLint>(12), cmd.location);
1548 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1521 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
1549 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1522 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
1523 CheckBytesWrittenMatchesExpectedSize(
1524 next_cmd, sizeof(cmd));
1550 } 1525 }
1551 1526
1552 // TODO(gman): Write test for GetUniformLocation 1527 // TODO(gman): Write test for GetUniformLocation
1553 // TODO(gman): Write test for GetUniformLocationImmediate 1528 // TODO(gman): Write test for GetUniformLocationImmediate
1554 // TODO(gman): Write test for GetUniformLocationBucket 1529 // TODO(gman): Write test for GetUniformLocationBucket
1555 TEST(GLES2FormatTest, GetVertexAttribfv) { 1530 TEST_F(GLES2FormatTest, GetVertexAttribfv) {
1556 GetVertexAttribfv cmd = { { 0 } }; 1531 GetVertexAttribfv& cmd = *GetBufferAs<GetVertexAttribfv>();
1557 void* next_cmd = cmd.Set( 1532 void* next_cmd = cmd.Set(
1558 &cmd, 1533 &cmd,
1559 static_cast<GLuint>(11), 1534 static_cast<GLuint>(11),
1560 static_cast<GLenum>(12), 1535 static_cast<GLenum>(12),
1561 static_cast<uint32>(13), 1536 static_cast<uint32>(13),
1562 static_cast<uint32>(14)); 1537 static_cast<uint32>(14));
1563 EXPECT_EQ(static_cast<uint32>(GetVertexAttribfv::kCmdId), 1538 EXPECT_EQ(static_cast<uint32>(GetVertexAttribfv::kCmdId),
1564 cmd.header.command); 1539 cmd.header.command);
1565 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1540 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1566 EXPECT_EQ(static_cast<char*>(next_cmd),
1567 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1568 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 1541 EXPECT_EQ(static_cast<GLuint>(11), cmd.index);
1569 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1542 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
1570 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1543 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
1571 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1544 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
1545 CheckBytesWrittenMatchesExpectedSize(
1546 next_cmd, sizeof(cmd));
1572 } 1547 }
1573 1548
1574 TEST(GLES2FormatTest, GetVertexAttribiv) { 1549 TEST_F(GLES2FormatTest, GetVertexAttribiv) {
1575 GetVertexAttribiv cmd = { { 0 } }; 1550 GetVertexAttribiv& cmd = *GetBufferAs<GetVertexAttribiv>();
1576 void* next_cmd = cmd.Set( 1551 void* next_cmd = cmd.Set(
1577 &cmd, 1552 &cmd,
1578 static_cast<GLuint>(11), 1553 static_cast<GLuint>(11),
1579 static_cast<GLenum>(12), 1554 static_cast<GLenum>(12),
1580 static_cast<uint32>(13), 1555 static_cast<uint32>(13),
1581 static_cast<uint32>(14)); 1556 static_cast<uint32>(14));
1582 EXPECT_EQ(static_cast<uint32>(GetVertexAttribiv::kCmdId), 1557 EXPECT_EQ(static_cast<uint32>(GetVertexAttribiv::kCmdId),
1583 cmd.header.command); 1558 cmd.header.command);
1584 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1559 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1585 EXPECT_EQ(static_cast<char*>(next_cmd),
1586 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1587 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 1560 EXPECT_EQ(static_cast<GLuint>(11), cmd.index);
1588 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1561 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
1589 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1562 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
1590 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1563 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
1564 CheckBytesWrittenMatchesExpectedSize(
1565 next_cmd, sizeof(cmd));
1591 } 1566 }
1592 1567
1593 TEST(GLES2FormatTest, GetVertexAttribPointerv) { 1568 TEST_F(GLES2FormatTest, GetVertexAttribPointerv) {
1594 GetVertexAttribPointerv cmd = { { 0 } }; 1569 GetVertexAttribPointerv& cmd = *GetBufferAs<GetVertexAttribPointerv>();
1595 void* next_cmd = cmd.Set( 1570 void* next_cmd = cmd.Set(
1596 &cmd, 1571 &cmd,
1597 static_cast<GLuint>(11), 1572 static_cast<GLuint>(11),
1598 static_cast<GLenum>(12), 1573 static_cast<GLenum>(12),
1599 static_cast<uint32>(13), 1574 static_cast<uint32>(13),
1600 static_cast<uint32>(14)); 1575 static_cast<uint32>(14));
1601 EXPECT_EQ(static_cast<uint32>(GetVertexAttribPointerv::kCmdId), 1576 EXPECT_EQ(static_cast<uint32>(GetVertexAttribPointerv::kCmdId),
1602 cmd.header.command); 1577 cmd.header.command);
1603 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1578 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1604 EXPECT_EQ(static_cast<char*>(next_cmd),
1605 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1606 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 1579 EXPECT_EQ(static_cast<GLuint>(11), cmd.index);
1607 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1580 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
1608 EXPECT_EQ(static_cast<uint32>(13), cmd.pointer_shm_id); 1581 EXPECT_EQ(static_cast<uint32>(13), cmd.pointer_shm_id);
1609 EXPECT_EQ(static_cast<uint32>(14), cmd.pointer_shm_offset); 1582 EXPECT_EQ(static_cast<uint32>(14), cmd.pointer_shm_offset);
1583 CheckBytesWrittenMatchesExpectedSize(
1584 next_cmd, sizeof(cmd));
1610 } 1585 }
1611 1586
1612 TEST(GLES2FormatTest, Hint) { 1587 TEST_F(GLES2FormatTest, Hint) {
1613 Hint cmd = { { 0 } }; 1588 Hint& cmd = *GetBufferAs<Hint>();
1614 void* next_cmd = cmd.Set( 1589 void* next_cmd = cmd.Set(
1615 &cmd, 1590 &cmd,
1616 static_cast<GLenum>(11), 1591 static_cast<GLenum>(11),
1617 static_cast<GLenum>(12)); 1592 static_cast<GLenum>(12));
1618 EXPECT_EQ(static_cast<uint32>(Hint::kCmdId), 1593 EXPECT_EQ(static_cast<uint32>(Hint::kCmdId),
1619 cmd.header.command); 1594 cmd.header.command);
1620 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1595 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1621 EXPECT_EQ(static_cast<char*>(next_cmd),
1622 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1623 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1596 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
1624 EXPECT_EQ(static_cast<GLenum>(12), cmd.mode); 1597 EXPECT_EQ(static_cast<GLenum>(12), cmd.mode);
1598 CheckBytesWrittenMatchesExpectedSize(
1599 next_cmd, sizeof(cmd));
1625 } 1600 }
1626 1601
1627 TEST(GLES2FormatTest, IsBuffer) { 1602 TEST_F(GLES2FormatTest, IsBuffer) {
1628 IsBuffer cmd = { { 0 } }; 1603 IsBuffer& cmd = *GetBufferAs<IsBuffer>();
1629 void* next_cmd = cmd.Set( 1604 void* next_cmd = cmd.Set(
1630 &cmd, 1605 &cmd,
1631 static_cast<GLuint>(11), 1606 static_cast<GLuint>(11),
1632 static_cast<uint32>(12), 1607 static_cast<uint32>(12),
1633 static_cast<uint32>(13)); 1608 static_cast<uint32>(13));
1634 EXPECT_EQ(static_cast<uint32>(IsBuffer::kCmdId), 1609 EXPECT_EQ(static_cast<uint32>(IsBuffer::kCmdId),
1635 cmd.header.command); 1610 cmd.header.command);
1636 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1611 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1637 EXPECT_EQ(static_cast<char*>(next_cmd),
1638 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1639 EXPECT_EQ(static_cast<GLuint>(11), cmd.buffer); 1612 EXPECT_EQ(static_cast<GLuint>(11), cmd.buffer);
1640 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1613 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id);
1641 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1614 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset);
1615 CheckBytesWrittenMatchesExpectedSize(
1616 next_cmd, sizeof(cmd));
1642 } 1617 }
1643 1618
1644 TEST(GLES2FormatTest, IsEnabled) { 1619 TEST_F(GLES2FormatTest, IsEnabled) {
1645 IsEnabled cmd = { { 0 } }; 1620 IsEnabled& cmd = *GetBufferAs<IsEnabled>();
1646 void* next_cmd = cmd.Set( 1621 void* next_cmd = cmd.Set(
1647 &cmd, 1622 &cmd,
1648 static_cast<GLenum>(11), 1623 static_cast<GLenum>(11),
1649 static_cast<uint32>(12), 1624 static_cast<uint32>(12),
1650 static_cast<uint32>(13)); 1625 static_cast<uint32>(13));
1651 EXPECT_EQ(static_cast<uint32>(IsEnabled::kCmdId), 1626 EXPECT_EQ(static_cast<uint32>(IsEnabled::kCmdId),
1652 cmd.header.command); 1627 cmd.header.command);
1653 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1628 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1654 EXPECT_EQ(static_cast<char*>(next_cmd),
1655 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1656 EXPECT_EQ(static_cast<GLenum>(11), cmd.cap); 1629 EXPECT_EQ(static_cast<GLenum>(11), cmd.cap);
1657 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1630 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id);
1658 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1631 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset);
1632 CheckBytesWrittenMatchesExpectedSize(
1633 next_cmd, sizeof(cmd));
1659 } 1634 }
1660 1635
1661 TEST(GLES2FormatTest, IsFramebuffer) { 1636 TEST_F(GLES2FormatTest, IsFramebuffer) {
1662 IsFramebuffer cmd = { { 0 } }; 1637 IsFramebuffer& cmd = *GetBufferAs<IsFramebuffer>();
1663 void* next_cmd = cmd.Set( 1638 void* next_cmd = cmd.Set(
1664 &cmd, 1639 &cmd,
1665 static_cast<GLuint>(11), 1640 static_cast<GLuint>(11),
1666 static_cast<uint32>(12), 1641 static_cast<uint32>(12),
1667 static_cast<uint32>(13)); 1642 static_cast<uint32>(13));
1668 EXPECT_EQ(static_cast<uint32>(IsFramebuffer::kCmdId), 1643 EXPECT_EQ(static_cast<uint32>(IsFramebuffer::kCmdId),
1669 cmd.header.command); 1644 cmd.header.command);
1670 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1645 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1671 EXPECT_EQ(static_cast<char*>(next_cmd),
1672 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1673 EXPECT_EQ(static_cast<GLuint>(11), cmd.framebuffer); 1646 EXPECT_EQ(static_cast<GLuint>(11), cmd.framebuffer);
1674 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1647 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id);
1675 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1648 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset);
1649 CheckBytesWrittenMatchesExpectedSize(
1650 next_cmd, sizeof(cmd));
1676 } 1651 }
1677 1652
1678 TEST(GLES2FormatTest, IsProgram) { 1653 TEST_F(GLES2FormatTest, IsProgram) {
1679 IsProgram cmd = { { 0 } }; 1654 IsProgram& cmd = *GetBufferAs<IsProgram>();
1680 void* next_cmd = cmd.Set( 1655 void* next_cmd = cmd.Set(
1681 &cmd, 1656 &cmd,
1682 static_cast<GLuint>(11), 1657 static_cast<GLuint>(11),
1683 static_cast<uint32>(12), 1658 static_cast<uint32>(12),
1684 static_cast<uint32>(13)); 1659 static_cast<uint32>(13));
1685 EXPECT_EQ(static_cast<uint32>(IsProgram::kCmdId), 1660 EXPECT_EQ(static_cast<uint32>(IsProgram::kCmdId),
1686 cmd.header.command); 1661 cmd.header.command);
1687 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1662 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1688 EXPECT_EQ(static_cast<char*>(next_cmd),
1689 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1690 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1663 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
1691 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1664 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id);
1692 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1665 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset);
1666 CheckBytesWrittenMatchesExpectedSize(
1667 next_cmd, sizeof(cmd));
1693 } 1668 }
1694 1669
1695 TEST(GLES2FormatTest, IsRenderbuffer) { 1670 TEST_F(GLES2FormatTest, IsRenderbuffer) {
1696 IsRenderbuffer cmd = { { 0 } }; 1671 IsRenderbuffer& cmd = *GetBufferAs<IsRenderbuffer>();
1697 void* next_cmd = cmd.Set( 1672 void* next_cmd = cmd.Set(
1698 &cmd, 1673 &cmd,
1699 static_cast<GLuint>(11), 1674 static_cast<GLuint>(11),
1700 static_cast<uint32>(12), 1675 static_cast<uint32>(12),
1701 static_cast<uint32>(13)); 1676 static_cast<uint32>(13));
1702 EXPECT_EQ(static_cast<uint32>(IsRenderbuffer::kCmdId), 1677 EXPECT_EQ(static_cast<uint32>(IsRenderbuffer::kCmdId),
1703 cmd.header.command); 1678 cmd.header.command);
1704 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1679 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1705 EXPECT_EQ(static_cast<char*>(next_cmd),
1706 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1707 EXPECT_EQ(static_cast<GLuint>(11), cmd.renderbuffer); 1680 EXPECT_EQ(static_cast<GLuint>(11), cmd.renderbuffer);
1708 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1681 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id);
1709 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1682 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset);
1683 CheckBytesWrittenMatchesExpectedSize(
1684 next_cmd, sizeof(cmd));
1710 } 1685 }
1711 1686
1712 TEST(GLES2FormatTest, IsShader) { 1687 TEST_F(GLES2FormatTest, IsShader) {
1713 IsShader cmd = { { 0 } }; 1688 IsShader& cmd = *GetBufferAs<IsShader>();
1714 void* next_cmd = cmd.Set( 1689 void* next_cmd = cmd.Set(
1715 &cmd, 1690 &cmd,
1716 static_cast<GLuint>(11), 1691 static_cast<GLuint>(11),
1717 static_cast<uint32>(12), 1692 static_cast<uint32>(12),
1718 static_cast<uint32>(13)); 1693 static_cast<uint32>(13));
1719 EXPECT_EQ(static_cast<uint32>(IsShader::kCmdId), 1694 EXPECT_EQ(static_cast<uint32>(IsShader::kCmdId),
1720 cmd.header.command); 1695 cmd.header.command);
1721 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1696 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1722 EXPECT_EQ(static_cast<char*>(next_cmd),
1723 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1724 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1697 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader);
1725 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1698 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id);
1726 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1699 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset);
1700 CheckBytesWrittenMatchesExpectedSize(
1701 next_cmd, sizeof(cmd));
1727 } 1702 }
1728 1703
1729 TEST(GLES2FormatTest, IsTexture) { 1704 TEST_F(GLES2FormatTest, IsTexture) {
1730 IsTexture cmd = { { 0 } }; 1705 IsTexture& cmd = *GetBufferAs<IsTexture>();
1731 void* next_cmd = cmd.Set( 1706 void* next_cmd = cmd.Set(
1732 &cmd, 1707 &cmd,
1733 static_cast<GLuint>(11), 1708 static_cast<GLuint>(11),
1734 static_cast<uint32>(12), 1709 static_cast<uint32>(12),
1735 static_cast<uint32>(13)); 1710 static_cast<uint32>(13));
1736 EXPECT_EQ(static_cast<uint32>(IsTexture::kCmdId), 1711 EXPECT_EQ(static_cast<uint32>(IsTexture::kCmdId),
1737 cmd.header.command); 1712 cmd.header.command);
1738 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1713 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1739 EXPECT_EQ(static_cast<char*>(next_cmd),
1740 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1741 EXPECT_EQ(static_cast<GLuint>(11), cmd.texture); 1714 EXPECT_EQ(static_cast<GLuint>(11), cmd.texture);
1742 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1715 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id);
1743 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1716 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset);
1717 CheckBytesWrittenMatchesExpectedSize(
1718 next_cmd, sizeof(cmd));
1744 } 1719 }
1745 1720
1746 TEST(GLES2FormatTest, LineWidth) { 1721 TEST_F(GLES2FormatTest, LineWidth) {
1747 LineWidth cmd = { { 0 } }; 1722 LineWidth& cmd = *GetBufferAs<LineWidth>();
1748 void* next_cmd = cmd.Set( 1723 void* next_cmd = cmd.Set(
1749 &cmd, 1724 &cmd,
1750 static_cast<GLfloat>(11)); 1725 static_cast<GLfloat>(11));
1751 EXPECT_EQ(static_cast<uint32>(LineWidth::kCmdId), 1726 EXPECT_EQ(static_cast<uint32>(LineWidth::kCmdId),
1752 cmd.header.command); 1727 cmd.header.command);
1753 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1728 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1754 EXPECT_EQ(static_cast<char*>(next_cmd),
1755 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1756 EXPECT_EQ(static_cast<GLfloat>(11), cmd.width); 1729 EXPECT_EQ(static_cast<GLfloat>(11), cmd.width);
1730 CheckBytesWrittenMatchesExpectedSize(
1731 next_cmd, sizeof(cmd));
1757 } 1732 }
1758 1733
1759 TEST(GLES2FormatTest, LinkProgram) { 1734 TEST_F(GLES2FormatTest, LinkProgram) {
1760 LinkProgram cmd = { { 0 } }; 1735 LinkProgram& cmd = *GetBufferAs<LinkProgram>();
1761 void* next_cmd = cmd.Set( 1736 void* next_cmd = cmd.Set(
1762 &cmd, 1737 &cmd,
1763 static_cast<GLuint>(11)); 1738 static_cast<GLuint>(11));
1764 EXPECT_EQ(static_cast<uint32>(LinkProgram::kCmdId), 1739 EXPECT_EQ(static_cast<uint32>(LinkProgram::kCmdId),
1765 cmd.header.command); 1740 cmd.header.command);
1766 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1741 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1767 EXPECT_EQ(static_cast<char*>(next_cmd),
1768 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1769 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1742 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
1743 CheckBytesWrittenMatchesExpectedSize(
1744 next_cmd, sizeof(cmd));
1770 } 1745 }
1771 1746
1772 TEST(GLES2FormatTest, PixelStorei) { 1747 TEST_F(GLES2FormatTest, PixelStorei) {
1773 PixelStorei cmd = { { 0 } }; 1748 PixelStorei& cmd = *GetBufferAs<PixelStorei>();
1774 void* next_cmd = cmd.Set( 1749 void* next_cmd = cmd.Set(
1775 &cmd, 1750 &cmd,
1776 static_cast<GLenum>(11), 1751 static_cast<GLenum>(11),
1777 static_cast<GLint>(12)); 1752 static_cast<GLint>(12));
1778 EXPECT_EQ(static_cast<uint32>(PixelStorei::kCmdId), 1753 EXPECT_EQ(static_cast<uint32>(PixelStorei::kCmdId),
1779 cmd.header.command); 1754 cmd.header.command);
1780 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1755 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1781 EXPECT_EQ(static_cast<char*>(next_cmd),
1782 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1783 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname); 1756 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname);
1784 EXPECT_EQ(static_cast<GLint>(12), cmd.param); 1757 EXPECT_EQ(static_cast<GLint>(12), cmd.param);
1758 CheckBytesWrittenMatchesExpectedSize(
1759 next_cmd, sizeof(cmd));
1785 } 1760 }
1786 1761
1787 TEST(GLES2FormatTest, PolygonOffset) { 1762 TEST_F(GLES2FormatTest, PolygonOffset) {
1788 PolygonOffset cmd = { { 0 } }; 1763 PolygonOffset& cmd = *GetBufferAs<PolygonOffset>();
1789 void* next_cmd = cmd.Set( 1764 void* next_cmd = cmd.Set(
1790 &cmd, 1765 &cmd,
1791 static_cast<GLfloat>(11), 1766 static_cast<GLfloat>(11),
1792 static_cast<GLfloat>(12)); 1767 static_cast<GLfloat>(12));
1793 EXPECT_EQ(static_cast<uint32>(PolygonOffset::kCmdId), 1768 EXPECT_EQ(static_cast<uint32>(PolygonOffset::kCmdId),
1794 cmd.header.command); 1769 cmd.header.command);
1795 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1770 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1796 EXPECT_EQ(static_cast<char*>(next_cmd),
1797 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1798 EXPECT_EQ(static_cast<GLfloat>(11), cmd.factor); 1771 EXPECT_EQ(static_cast<GLfloat>(11), cmd.factor);
1799 EXPECT_EQ(static_cast<GLfloat>(12), cmd.units); 1772 EXPECT_EQ(static_cast<GLfloat>(12), cmd.units);
1773 CheckBytesWrittenMatchesExpectedSize(
1774 next_cmd, sizeof(cmd));
1800 } 1775 }
1801 1776
1802 TEST(GLES2FormatTest, ReadPixels) { 1777 TEST_F(GLES2FormatTest, ReadPixels) {
1803 ReadPixels cmd = { { 0 } }; 1778 ReadPixels& cmd = *GetBufferAs<ReadPixels>();
1804 void* next_cmd = cmd.Set( 1779 void* next_cmd = cmd.Set(
1805 &cmd, 1780 &cmd,
1806 static_cast<GLint>(11), 1781 static_cast<GLint>(11),
1807 static_cast<GLint>(12), 1782 static_cast<GLint>(12),
1808 static_cast<GLsizei>(13), 1783 static_cast<GLsizei>(13),
1809 static_cast<GLsizei>(14), 1784 static_cast<GLsizei>(14),
1810 static_cast<GLenum>(15), 1785 static_cast<GLenum>(15),
1811 static_cast<GLenum>(16), 1786 static_cast<GLenum>(16),
1812 static_cast<uint32>(17), 1787 static_cast<uint32>(17),
1813 static_cast<uint32>(18), 1788 static_cast<uint32>(18),
1814 static_cast<uint32>(19), 1789 static_cast<uint32>(19),
1815 static_cast<uint32>(20)); 1790 static_cast<uint32>(20));
1816 EXPECT_EQ(static_cast<uint32>(ReadPixels::kCmdId), 1791 EXPECT_EQ(static_cast<uint32>(ReadPixels::kCmdId),
1817 cmd.header.command); 1792 cmd.header.command);
1818 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1793 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1819 EXPECT_EQ(static_cast<char*>(next_cmd),
1820 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1821 EXPECT_EQ(static_cast<GLint>(11), cmd.x); 1794 EXPECT_EQ(static_cast<GLint>(11), cmd.x);
1822 EXPECT_EQ(static_cast<GLint>(12), cmd.y); 1795 EXPECT_EQ(static_cast<GLint>(12), cmd.y);
1823 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width); 1796 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width);
1824 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height); 1797 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height);
1825 EXPECT_EQ(static_cast<GLenum>(15), cmd.format); 1798 EXPECT_EQ(static_cast<GLenum>(15), cmd.format);
1826 EXPECT_EQ(static_cast<GLenum>(16), cmd.type); 1799 EXPECT_EQ(static_cast<GLenum>(16), cmd.type);
1827 EXPECT_EQ(static_cast<uint32>(17), cmd.pixels_shm_id); 1800 EXPECT_EQ(static_cast<uint32>(17), cmd.pixels_shm_id);
1828 EXPECT_EQ(static_cast<uint32>(18), cmd.pixels_shm_offset); 1801 EXPECT_EQ(static_cast<uint32>(18), cmd.pixels_shm_offset);
1829 EXPECT_EQ(static_cast<uint32>(19), cmd.result_shm_id); 1802 EXPECT_EQ(static_cast<uint32>(19), cmd.result_shm_id);
1830 EXPECT_EQ(static_cast<uint32>(20), cmd.result_shm_offset); 1803 EXPECT_EQ(static_cast<uint32>(20), cmd.result_shm_offset);
1804 CheckBytesWrittenMatchesExpectedSize(
1805 next_cmd, sizeof(cmd));
1831 } 1806 }
1832 1807
1833 TEST(GLES2FormatTest, ReleaseShaderCompiler) { 1808 TEST_F(GLES2FormatTest, ReleaseShaderCompiler) {
1834 ReleaseShaderCompiler cmd = { { 0 } }; 1809 ReleaseShaderCompiler& cmd = *GetBufferAs<ReleaseShaderCompiler>();
1835 void* next_cmd = cmd.Set( 1810 void* next_cmd = cmd.Set(
1836 &cmd); 1811 &cmd);
1837 EXPECT_EQ(static_cast<uint32>(ReleaseShaderCompiler::kCmdId), 1812 EXPECT_EQ(static_cast<uint32>(ReleaseShaderCompiler::kCmdId),
1838 cmd.header.command); 1813 cmd.header.command);
1839 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1814 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1840 EXPECT_EQ(static_cast<char*>(next_cmd), 1815 CheckBytesWrittenMatchesExpectedSize(
1841 reinterpret_cast<char*>(&cmd) + sizeof(cmd)); 1816 next_cmd, sizeof(cmd));
1842 } 1817 }
1843 1818
1844 TEST(GLES2FormatTest, RenderbufferStorage) { 1819 TEST_F(GLES2FormatTest, RenderbufferStorage) {
1845 RenderbufferStorage cmd = { { 0 } }; 1820 RenderbufferStorage& cmd = *GetBufferAs<RenderbufferStorage>();
1846 void* next_cmd = cmd.Set( 1821 void* next_cmd = cmd.Set(
1847 &cmd, 1822 &cmd,
1848 static_cast<GLenum>(11), 1823 static_cast<GLenum>(11),
1849 static_cast<GLenum>(12), 1824 static_cast<GLenum>(12),
1850 static_cast<GLsizei>(13), 1825 static_cast<GLsizei>(13),
1851 static_cast<GLsizei>(14)); 1826 static_cast<GLsizei>(14));
1852 EXPECT_EQ(static_cast<uint32>(RenderbufferStorage::kCmdId), 1827 EXPECT_EQ(static_cast<uint32>(RenderbufferStorage::kCmdId),
1853 cmd.header.command); 1828 cmd.header.command);
1854 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1829 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1855 EXPECT_EQ(static_cast<char*>(next_cmd),
1856 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1857 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1830 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
1858 EXPECT_EQ(static_cast<GLenum>(12), cmd.internalformat); 1831 EXPECT_EQ(static_cast<GLenum>(12), cmd.internalformat);
1859 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width); 1832 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width);
1860 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height); 1833 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height);
1834 CheckBytesWrittenMatchesExpectedSize(
1835 next_cmd, sizeof(cmd));
1861 } 1836 }
1862 1837
1863 TEST(GLES2FormatTest, SampleCoverage) { 1838 TEST_F(GLES2FormatTest, SampleCoverage) {
1864 SampleCoverage cmd = { { 0 } }; 1839 SampleCoverage& cmd = *GetBufferAs<SampleCoverage>();
1865 void* next_cmd = cmd.Set( 1840 void* next_cmd = cmd.Set(
1866 &cmd, 1841 &cmd,
1867 static_cast<GLclampf>(11), 1842 static_cast<GLclampf>(11),
1868 static_cast<GLboolean>(12)); 1843 static_cast<GLboolean>(12));
1869 EXPECT_EQ(static_cast<uint32>(SampleCoverage::kCmdId), 1844 EXPECT_EQ(static_cast<uint32>(SampleCoverage::kCmdId),
1870 cmd.header.command); 1845 cmd.header.command);
1871 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1846 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1872 EXPECT_EQ(static_cast<char*>(next_cmd),
1873 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1874 EXPECT_EQ(static_cast<GLclampf>(11), cmd.value); 1847 EXPECT_EQ(static_cast<GLclampf>(11), cmd.value);
1875 EXPECT_EQ(static_cast<GLboolean>(12), cmd.invert); 1848 EXPECT_EQ(static_cast<GLboolean>(12), cmd.invert);
1849 CheckBytesWrittenMatchesExpectedSize(
1850 next_cmd, sizeof(cmd));
1876 } 1851 }
1877 1852
1878 TEST(GLES2FormatTest, Scissor) { 1853 TEST_F(GLES2FormatTest, Scissor) {
1879 Scissor cmd = { { 0 } }; 1854 Scissor& cmd = *GetBufferAs<Scissor>();
1880 void* next_cmd = cmd.Set( 1855 void* next_cmd = cmd.Set(
1881 &cmd, 1856 &cmd,
1882 static_cast<GLint>(11), 1857 static_cast<GLint>(11),
1883 static_cast<GLint>(12), 1858 static_cast<GLint>(12),
1884 static_cast<GLsizei>(13), 1859 static_cast<GLsizei>(13),
1885 static_cast<GLsizei>(14)); 1860 static_cast<GLsizei>(14));
1886 EXPECT_EQ(static_cast<uint32>(Scissor::kCmdId), 1861 EXPECT_EQ(static_cast<uint32>(Scissor::kCmdId),
1887 cmd.header.command); 1862 cmd.header.command);
1888 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1863 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1889 EXPECT_EQ(static_cast<char*>(next_cmd),
1890 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1891 EXPECT_EQ(static_cast<GLint>(11), cmd.x); 1864 EXPECT_EQ(static_cast<GLint>(11), cmd.x);
1892 EXPECT_EQ(static_cast<GLint>(12), cmd.y); 1865 EXPECT_EQ(static_cast<GLint>(12), cmd.y);
1893 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width); 1866 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width);
1894 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height); 1867 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height);
1868 CheckBytesWrittenMatchesExpectedSize(
1869 next_cmd, sizeof(cmd));
1895 } 1870 }
1896 1871
1897 TEST(GLES2FormatTest, ShaderBinary) { 1872 TEST_F(GLES2FormatTest, ShaderBinary) {
1898 ShaderBinary cmd = { { 0 } }; 1873 ShaderBinary& cmd = *GetBufferAs<ShaderBinary>();
1899 void* next_cmd = cmd.Set( 1874 void* next_cmd = cmd.Set(
1900 &cmd, 1875 &cmd,
1901 static_cast<GLsizei>(11), 1876 static_cast<GLsizei>(11),
1902 static_cast<uint32>(12), 1877 static_cast<uint32>(12),
1903 static_cast<uint32>(13), 1878 static_cast<uint32>(13),
1904 static_cast<GLenum>(14), 1879 static_cast<GLenum>(14),
1905 static_cast<uint32>(15), 1880 static_cast<uint32>(15),
1906 static_cast<uint32>(16), 1881 static_cast<uint32>(16),
1907 static_cast<GLsizei>(17)); 1882 static_cast<GLsizei>(17));
1908 EXPECT_EQ(static_cast<uint32>(ShaderBinary::kCmdId), 1883 EXPECT_EQ(static_cast<uint32>(ShaderBinary::kCmdId),
1909 cmd.header.command); 1884 cmd.header.command);
1910 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1885 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1911 EXPECT_EQ(static_cast<char*>(next_cmd),
1912 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1913 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 1886 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n);
1914 EXPECT_EQ(static_cast<uint32>(12), cmd.shaders_shm_id); 1887 EXPECT_EQ(static_cast<uint32>(12), cmd.shaders_shm_id);
1915 EXPECT_EQ(static_cast<uint32>(13), cmd.shaders_shm_offset); 1888 EXPECT_EQ(static_cast<uint32>(13), cmd.shaders_shm_offset);
1916 EXPECT_EQ(static_cast<GLenum>(14), cmd.binaryformat); 1889 EXPECT_EQ(static_cast<GLenum>(14), cmd.binaryformat);
1917 EXPECT_EQ(static_cast<uint32>(15), cmd.binary_shm_id); 1890 EXPECT_EQ(static_cast<uint32>(15), cmd.binary_shm_id);
1918 EXPECT_EQ(static_cast<uint32>(16), cmd.binary_shm_offset); 1891 EXPECT_EQ(static_cast<uint32>(16), cmd.binary_shm_offset);
1919 EXPECT_EQ(static_cast<GLsizei>(17), cmd.length); 1892 EXPECT_EQ(static_cast<GLsizei>(17), cmd.length);
1893 CheckBytesWrittenMatchesExpectedSize(
1894 next_cmd, sizeof(cmd));
1920 } 1895 }
1921 1896
1922 TEST(GLES2FormatTest, ShaderSource) { 1897 TEST_F(GLES2FormatTest, ShaderSource) {
1923 ShaderSource cmd = { { 0 } }; 1898 ShaderSource& cmd = *GetBufferAs<ShaderSource>();
1924 void* next_cmd = cmd.Set( 1899 void* next_cmd = cmd.Set(
1925 &cmd, 1900 &cmd,
1926 static_cast<GLuint>(11), 1901 static_cast<GLuint>(11),
1927 static_cast<uint32>(12), 1902 static_cast<uint32>(12),
1928 static_cast<uint32>(13), 1903 static_cast<uint32>(13),
1929 static_cast<uint32>(14)); 1904 static_cast<uint32>(14));
1930 EXPECT_EQ(static_cast<uint32>(ShaderSource::kCmdId), 1905 EXPECT_EQ(static_cast<uint32>(ShaderSource::kCmdId),
1931 cmd.header.command); 1906 cmd.header.command);
1932 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1907 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1933 EXPECT_EQ(static_cast<char*>(next_cmd),
1934 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1935 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1908 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader);
1936 EXPECT_EQ(static_cast<uint32>(12), cmd.data_shm_id); 1909 EXPECT_EQ(static_cast<uint32>(12), cmd.data_shm_id);
1937 EXPECT_EQ(static_cast<uint32>(13), cmd.data_shm_offset); 1910 EXPECT_EQ(static_cast<uint32>(13), cmd.data_shm_offset);
1938 EXPECT_EQ(static_cast<uint32>(14), cmd.data_size); 1911 EXPECT_EQ(static_cast<uint32>(14), cmd.data_size);
1912 CheckBytesWrittenMatchesExpectedSize(
1913 next_cmd, sizeof(cmd));
1939 } 1914 }
1940 1915
1941 // TODO(gman): Implement test for ShaderSourceImmediate 1916 // TODO(gman): Implement test for ShaderSourceImmediate
1942 TEST(GLES2FormatTest, ShaderSourceBucket) { 1917 TEST_F(GLES2FormatTest, ShaderSourceBucket) {
1943 ShaderSourceBucket cmd = { { 0 } }; 1918 ShaderSourceBucket& cmd = *GetBufferAs<ShaderSourceBucket>();
1944 void* next_cmd = cmd.Set( 1919 void* next_cmd = cmd.Set(
1945 &cmd, 1920 &cmd,
1946 static_cast<GLuint>(11), 1921 static_cast<GLuint>(11),
1947 static_cast<uint32>(12)); 1922 static_cast<uint32>(12));
1948 EXPECT_EQ(static_cast<uint32>(ShaderSourceBucket::kCmdId), 1923 EXPECT_EQ(static_cast<uint32>(ShaderSourceBucket::kCmdId),
1949 cmd.header.command); 1924 cmd.header.command);
1950 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1925 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1951 EXPECT_EQ(static_cast<char*>(next_cmd),
1952 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1953 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1926 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader);
1954 EXPECT_EQ(static_cast<uint32>(12), cmd.data_bucket_id); 1927 EXPECT_EQ(static_cast<uint32>(12), cmd.data_bucket_id);
1928 CheckBytesWrittenMatchesExpectedSize(
1929 next_cmd, sizeof(cmd));
1955 } 1930 }
1956 1931
1957 TEST(GLES2FormatTest, StencilFunc) { 1932 TEST_F(GLES2FormatTest, StencilFunc) {
1958 StencilFunc cmd = { { 0 } }; 1933 StencilFunc& cmd = *GetBufferAs<StencilFunc>();
1959 void* next_cmd = cmd.Set( 1934 void* next_cmd = cmd.Set(
1960 &cmd, 1935 &cmd,
1961 static_cast<GLenum>(11), 1936 static_cast<GLenum>(11),
1962 static_cast<GLint>(12), 1937 static_cast<GLint>(12),
1963 static_cast<GLuint>(13)); 1938 static_cast<GLuint>(13));
1964 EXPECT_EQ(static_cast<uint32>(StencilFunc::kCmdId), 1939 EXPECT_EQ(static_cast<uint32>(StencilFunc::kCmdId),
1965 cmd.header.command); 1940 cmd.header.command);
1966 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1941 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1967 EXPECT_EQ(static_cast<char*>(next_cmd),
1968 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1969 EXPECT_EQ(static_cast<GLenum>(11), cmd.func); 1942 EXPECT_EQ(static_cast<GLenum>(11), cmd.func);
1970 EXPECT_EQ(static_cast<GLint>(12), cmd.ref); 1943 EXPECT_EQ(static_cast<GLint>(12), cmd.ref);
1971 EXPECT_EQ(static_cast<GLuint>(13), cmd.mask); 1944 EXPECT_EQ(static_cast<GLuint>(13), cmd.mask);
1945 CheckBytesWrittenMatchesExpectedSize(
1946 next_cmd, sizeof(cmd));
1972 } 1947 }
1973 1948
1974 TEST(GLES2FormatTest, StencilFuncSeparate) { 1949 TEST_F(GLES2FormatTest, StencilFuncSeparate) {
1975 StencilFuncSeparate cmd = { { 0 } }; 1950 StencilFuncSeparate& cmd = *GetBufferAs<StencilFuncSeparate>();
1976 void* next_cmd = cmd.Set( 1951 void* next_cmd = cmd.Set(
1977 &cmd, 1952 &cmd,
1978 static_cast<GLenum>(11), 1953 static_cast<GLenum>(11),
1979 static_cast<GLenum>(12), 1954 static_cast<GLenum>(12),
1980 static_cast<GLint>(13), 1955 static_cast<GLint>(13),
1981 static_cast<GLuint>(14)); 1956 static_cast<GLuint>(14));
1982 EXPECT_EQ(static_cast<uint32>(StencilFuncSeparate::kCmdId), 1957 EXPECT_EQ(static_cast<uint32>(StencilFuncSeparate::kCmdId),
1983 cmd.header.command); 1958 cmd.header.command);
1984 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1959 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
1985 EXPECT_EQ(static_cast<char*>(next_cmd),
1986 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
1987 EXPECT_EQ(static_cast<GLenum>(11), cmd.face); 1960 EXPECT_EQ(static_cast<GLenum>(11), cmd.face);
1988 EXPECT_EQ(static_cast<GLenum>(12), cmd.func); 1961 EXPECT_EQ(static_cast<GLenum>(12), cmd.func);
1989 EXPECT_EQ(static_cast<GLint>(13), cmd.ref); 1962 EXPECT_EQ(static_cast<GLint>(13), cmd.ref);
1990 EXPECT_EQ(static_cast<GLuint>(14), cmd.mask); 1963 EXPECT_EQ(static_cast<GLuint>(14), cmd.mask);
1964 CheckBytesWrittenMatchesExpectedSize(
1965 next_cmd, sizeof(cmd));
1991 } 1966 }
1992 1967
1993 TEST(GLES2FormatTest, StencilMask) { 1968 TEST_F(GLES2FormatTest, StencilMask) {
1994 StencilMask cmd = { { 0 } }; 1969 StencilMask& cmd = *GetBufferAs<StencilMask>();
1995 void* next_cmd = cmd.Set( 1970 void* next_cmd = cmd.Set(
1996 &cmd, 1971 &cmd,
1997 static_cast<GLuint>(11)); 1972 static_cast<GLuint>(11));
1998 EXPECT_EQ(static_cast<uint32>(StencilMask::kCmdId), 1973 EXPECT_EQ(static_cast<uint32>(StencilMask::kCmdId),
1999 cmd.header.command); 1974 cmd.header.command);
2000 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1975 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2001 EXPECT_EQ(static_cast<char*>(next_cmd),
2002 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2003 EXPECT_EQ(static_cast<GLuint>(11), cmd.mask); 1976 EXPECT_EQ(static_cast<GLuint>(11), cmd.mask);
1977 CheckBytesWrittenMatchesExpectedSize(
1978 next_cmd, sizeof(cmd));
2004 } 1979 }
2005 1980
2006 TEST(GLES2FormatTest, StencilMaskSeparate) { 1981 TEST_F(GLES2FormatTest, StencilMaskSeparate) {
2007 StencilMaskSeparate cmd = { { 0 } }; 1982 StencilMaskSeparate& cmd = *GetBufferAs<StencilMaskSeparate>();
2008 void* next_cmd = cmd.Set( 1983 void* next_cmd = cmd.Set(
2009 &cmd, 1984 &cmd,
2010 static_cast<GLenum>(11), 1985 static_cast<GLenum>(11),
2011 static_cast<GLuint>(12)); 1986 static_cast<GLuint>(12));
2012 EXPECT_EQ(static_cast<uint32>(StencilMaskSeparate::kCmdId), 1987 EXPECT_EQ(static_cast<uint32>(StencilMaskSeparate::kCmdId),
2013 cmd.header.command); 1988 cmd.header.command);
2014 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1989 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2015 EXPECT_EQ(static_cast<char*>(next_cmd),
2016 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2017 EXPECT_EQ(static_cast<GLenum>(11), cmd.face); 1990 EXPECT_EQ(static_cast<GLenum>(11), cmd.face);
2018 EXPECT_EQ(static_cast<GLuint>(12), cmd.mask); 1991 EXPECT_EQ(static_cast<GLuint>(12), cmd.mask);
1992 CheckBytesWrittenMatchesExpectedSize(
1993 next_cmd, sizeof(cmd));
2019 } 1994 }
2020 1995
2021 TEST(GLES2FormatTest, StencilOp) { 1996 TEST_F(GLES2FormatTest, StencilOp) {
2022 StencilOp cmd = { { 0 } }; 1997 StencilOp& cmd = *GetBufferAs<StencilOp>();
2023 void* next_cmd = cmd.Set( 1998 void* next_cmd = cmd.Set(
2024 &cmd, 1999 &cmd,
2025 static_cast<GLenum>(11), 2000 static_cast<GLenum>(11),
2026 static_cast<GLenum>(12), 2001 static_cast<GLenum>(12),
2027 static_cast<GLenum>(13)); 2002 static_cast<GLenum>(13));
2028 EXPECT_EQ(static_cast<uint32>(StencilOp::kCmdId), 2003 EXPECT_EQ(static_cast<uint32>(StencilOp::kCmdId),
2029 cmd.header.command); 2004 cmd.header.command);
2030 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2005 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2031 EXPECT_EQ(static_cast<char*>(next_cmd),
2032 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2033 EXPECT_EQ(static_cast<GLenum>(11), cmd.fail); 2006 EXPECT_EQ(static_cast<GLenum>(11), cmd.fail);
2034 EXPECT_EQ(static_cast<GLenum>(12), cmd.zfail); 2007 EXPECT_EQ(static_cast<GLenum>(12), cmd.zfail);
2035 EXPECT_EQ(static_cast<GLenum>(13), cmd.zpass); 2008 EXPECT_EQ(static_cast<GLenum>(13), cmd.zpass);
2009 CheckBytesWrittenMatchesExpectedSize(
2010 next_cmd, sizeof(cmd));
2036 } 2011 }
2037 2012
2038 TEST(GLES2FormatTest, StencilOpSeparate) { 2013 TEST_F(GLES2FormatTest, StencilOpSeparate) {
2039 StencilOpSeparate cmd = { { 0 } }; 2014 StencilOpSeparate& cmd = *GetBufferAs<StencilOpSeparate>();
2040 void* next_cmd = cmd.Set( 2015 void* next_cmd = cmd.Set(
2041 &cmd, 2016 &cmd,
2042 static_cast<GLenum>(11), 2017 static_cast<GLenum>(11),
2043 static_cast<GLenum>(12), 2018 static_cast<GLenum>(12),
2044 static_cast<GLenum>(13), 2019 static_cast<GLenum>(13),
2045 static_cast<GLenum>(14)); 2020 static_cast<GLenum>(14));
2046 EXPECT_EQ(static_cast<uint32>(StencilOpSeparate::kCmdId), 2021 EXPECT_EQ(static_cast<uint32>(StencilOpSeparate::kCmdId),
2047 cmd.header.command); 2022 cmd.header.command);
2048 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2023 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2049 EXPECT_EQ(static_cast<char*>(next_cmd),
2050 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2051 EXPECT_EQ(static_cast<GLenum>(11), cmd.face); 2024 EXPECT_EQ(static_cast<GLenum>(11), cmd.face);
2052 EXPECT_EQ(static_cast<GLenum>(12), cmd.fail); 2025 EXPECT_EQ(static_cast<GLenum>(12), cmd.fail);
2053 EXPECT_EQ(static_cast<GLenum>(13), cmd.zfail); 2026 EXPECT_EQ(static_cast<GLenum>(13), cmd.zfail);
2054 EXPECT_EQ(static_cast<GLenum>(14), cmd.zpass); 2027 EXPECT_EQ(static_cast<GLenum>(14), cmd.zpass);
2028 CheckBytesWrittenMatchesExpectedSize(
2029 next_cmd, sizeof(cmd));
2055 } 2030 }
2056 2031
2057 TEST(GLES2FormatTest, TexImage2D) { 2032 TEST_F(GLES2FormatTest, TexImage2D) {
2058 TexImage2D cmd = { { 0 } }; 2033 TexImage2D& cmd = *GetBufferAs<TexImage2D>();
2059 void* next_cmd = cmd.Set( 2034 void* next_cmd = cmd.Set(
2060 &cmd, 2035 &cmd,
2061 static_cast<GLenum>(11), 2036 static_cast<GLenum>(11),
2062 static_cast<GLint>(12), 2037 static_cast<GLint>(12),
2063 static_cast<GLint>(13), 2038 static_cast<GLint>(13),
2064 static_cast<GLsizei>(14), 2039 static_cast<GLsizei>(14),
2065 static_cast<GLsizei>(15), 2040 static_cast<GLsizei>(15),
2066 static_cast<GLint>(16), 2041 static_cast<GLint>(16),
2067 static_cast<GLenum>(17), 2042 static_cast<GLenum>(17),
2068 static_cast<GLenum>(18), 2043 static_cast<GLenum>(18),
2069 static_cast<uint32>(19), 2044 static_cast<uint32>(19),
2070 static_cast<uint32>(20)); 2045 static_cast<uint32>(20));
2071 EXPECT_EQ(static_cast<uint32>(TexImage2D::kCmdId), 2046 EXPECT_EQ(static_cast<uint32>(TexImage2D::kCmdId),
2072 cmd.header.command); 2047 cmd.header.command);
2073 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2048 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2074 EXPECT_EQ(static_cast<char*>(next_cmd),
2075 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2076 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2049 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
2077 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 2050 EXPECT_EQ(static_cast<GLint>(12), cmd.level);
2078 EXPECT_EQ(static_cast<GLint>(13), cmd.internalformat); 2051 EXPECT_EQ(static_cast<GLint>(13), cmd.internalformat);
2079 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 2052 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width);
2080 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 2053 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height);
2081 EXPECT_EQ(static_cast<GLint>(16), cmd.border); 2054 EXPECT_EQ(static_cast<GLint>(16), cmd.border);
2082 EXPECT_EQ(static_cast<GLenum>(17), cmd.format); 2055 EXPECT_EQ(static_cast<GLenum>(17), cmd.format);
2083 EXPECT_EQ(static_cast<GLenum>(18), cmd.type); 2056 EXPECT_EQ(static_cast<GLenum>(18), cmd.type);
2084 EXPECT_EQ(static_cast<uint32>(19), cmd.pixels_shm_id); 2057 EXPECT_EQ(static_cast<uint32>(19), cmd.pixels_shm_id);
2085 EXPECT_EQ(static_cast<uint32>(20), cmd.pixels_shm_offset); 2058 EXPECT_EQ(static_cast<uint32>(20), cmd.pixels_shm_offset);
2059 CheckBytesWrittenMatchesExpectedSize(
2060 next_cmd, sizeof(cmd));
2086 } 2061 }
2087 2062
2088 // TODO(gman): Implement test for TexImage2DImmediate 2063 // TODO(gman): Implement test for TexImage2DImmediate
2089 TEST(GLES2FormatTest, TexParameterf) { 2064 TEST_F(GLES2FormatTest, TexParameterf) {
2090 TexParameterf cmd = { { 0 } }; 2065 TexParameterf& cmd = *GetBufferAs<TexParameterf>();
2091 void* next_cmd = cmd.Set( 2066 void* next_cmd = cmd.Set(
2092 &cmd, 2067 &cmd,
2093 static_cast<GLenum>(11), 2068 static_cast<GLenum>(11),
2094 static_cast<GLenum>(12), 2069 static_cast<GLenum>(12),
2095 static_cast<GLfloat>(13)); 2070 static_cast<GLfloat>(13));
2096 EXPECT_EQ(static_cast<uint32>(TexParameterf::kCmdId), 2071 EXPECT_EQ(static_cast<uint32>(TexParameterf::kCmdId),
2097 cmd.header.command); 2072 cmd.header.command);
2098 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2073 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2099 EXPECT_EQ(static_cast<char*>(next_cmd),
2100 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2101 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2074 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
2102 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 2075 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
2103 EXPECT_EQ(static_cast<GLfloat>(13), cmd.param); 2076 EXPECT_EQ(static_cast<GLfloat>(13), cmd.param);
2077 CheckBytesWrittenMatchesExpectedSize(
2078 next_cmd, sizeof(cmd));
2104 } 2079 }
2105 2080
2106 TEST(GLES2FormatTest, TexParameterfv) { 2081 TEST_F(GLES2FormatTest, TexParameterfv) {
2107 TexParameterfv cmd = { { 0 } }; 2082 TexParameterfv& cmd = *GetBufferAs<TexParameterfv>();
2108 void* next_cmd = cmd.Set( 2083 void* next_cmd = cmd.Set(
2109 &cmd, 2084 &cmd,
2110 static_cast<GLenum>(11), 2085 static_cast<GLenum>(11),
2111 static_cast<GLenum>(12), 2086 static_cast<GLenum>(12),
2112 static_cast<uint32>(13), 2087 static_cast<uint32>(13),
2113 static_cast<uint32>(14)); 2088 static_cast<uint32>(14));
2114 EXPECT_EQ(static_cast<uint32>(TexParameterfv::kCmdId), 2089 EXPECT_EQ(static_cast<uint32>(TexParameterfv::kCmdId),
2115 cmd.header.command); 2090 cmd.header.command);
2116 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2091 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2117 EXPECT_EQ(static_cast<char*>(next_cmd),
2118 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2119 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2092 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
2120 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 2093 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
2121 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 2094 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
2122 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 2095 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
2096 CheckBytesWrittenMatchesExpectedSize(
2097 next_cmd, sizeof(cmd));
2123 } 2098 }
2124 2099
2125 TEST(GLES2FormatTest, TexParameterfvImmediate) { 2100 TEST_F(GLES2FormatTest, TexParameterfvImmediate) {
2126 const int kSomeBaseValueToTestWith = 51; 2101 const int kSomeBaseValueToTestWith = 51;
2127 static GLfloat data[] = { 2102 static GLfloat data[] = {
2128 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2103 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
2129 }; 2104 };
2130 int8 buf[256] = { 0, }; 2105 TexParameterfvImmediate& cmd = *GetBufferAs<TexParameterfvImmediate>();
2131 TexParameterfvImmediate& cmd =
2132 *static_cast<TexParameterfvImmediate*>(static_cast<void*>(&buf));
2133 void* next_cmd = cmd.Set( 2106 void* next_cmd = cmd.Set(
2134 &cmd, 2107 &cmd,
2135 static_cast<GLenum>(11), 2108 static_cast<GLenum>(11),
2136 static_cast<GLenum>(12), 2109 static_cast<GLenum>(12),
2137 data); 2110 data);
2138 EXPECT_EQ(static_cast<uint32>(TexParameterfvImmediate::kCmdId), 2111 EXPECT_EQ(static_cast<uint32>(TexParameterfvImmediate::kCmdId),
2139 cmd.header.command); 2112 cmd.header.command);
2140 EXPECT_EQ(sizeof(cmd) + 2113 EXPECT_EQ(sizeof(cmd) +
2141 RoundSizeToMultipleOfEntries(sizeof(data)), 2114 RoundSizeToMultipleOfEntries(sizeof(data)),
2142 cmd.header.size * 4u); 2115 cmd.header.size * 4u);
2143 EXPECT_EQ(static_cast<char*>(next_cmd),
2144 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2145 RoundSizeToMultipleOfEntries(sizeof(data)));
2146 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2116 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
2147 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 2117 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
2118 CheckBytesWrittenMatchesExpectedSize(
2119 next_cmd, sizeof(cmd) +
2120 RoundSizeToMultipleOfEntries(sizeof(data)));
2148 // TODO(gman): Check that data was inserted; 2121 // TODO(gman): Check that data was inserted;
2149 } 2122 }
2150 2123
2151 TEST(GLES2FormatTest, TexParameteri) { 2124 TEST_F(GLES2FormatTest, TexParameteri) {
2152 TexParameteri cmd = { { 0 } }; 2125 TexParameteri& cmd = *GetBufferAs<TexParameteri>();
2153 void* next_cmd = cmd.Set( 2126 void* next_cmd = cmd.Set(
2154 &cmd, 2127 &cmd,
2155 static_cast<GLenum>(11), 2128 static_cast<GLenum>(11),
2156 static_cast<GLenum>(12), 2129 static_cast<GLenum>(12),
2157 static_cast<GLint>(13)); 2130 static_cast<GLint>(13));
2158 EXPECT_EQ(static_cast<uint32>(TexParameteri::kCmdId), 2131 EXPECT_EQ(static_cast<uint32>(TexParameteri::kCmdId),
2159 cmd.header.command); 2132 cmd.header.command);
2160 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2133 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2161 EXPECT_EQ(static_cast<char*>(next_cmd),
2162 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2163 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2134 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
2164 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 2135 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
2165 EXPECT_EQ(static_cast<GLint>(13), cmd.param); 2136 EXPECT_EQ(static_cast<GLint>(13), cmd.param);
2137 CheckBytesWrittenMatchesExpectedSize(
2138 next_cmd, sizeof(cmd));
2166 } 2139 }
2167 2140
2168 TEST(GLES2FormatTest, TexParameteriv) { 2141 TEST_F(GLES2FormatTest, TexParameteriv) {
2169 TexParameteriv cmd = { { 0 } }; 2142 TexParameteriv& cmd = *GetBufferAs<TexParameteriv>();
2170 void* next_cmd = cmd.Set( 2143 void* next_cmd = cmd.Set(
2171 &cmd, 2144 &cmd,
2172 static_cast<GLenum>(11), 2145 static_cast<GLenum>(11),
2173 static_cast<GLenum>(12), 2146 static_cast<GLenum>(12),
2174 static_cast<uint32>(13), 2147 static_cast<uint32>(13),
2175 static_cast<uint32>(14)); 2148 static_cast<uint32>(14));
2176 EXPECT_EQ(static_cast<uint32>(TexParameteriv::kCmdId), 2149 EXPECT_EQ(static_cast<uint32>(TexParameteriv::kCmdId),
2177 cmd.header.command); 2150 cmd.header.command);
2178 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2151 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2179 EXPECT_EQ(static_cast<char*>(next_cmd),
2180 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2181 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2152 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
2182 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 2153 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
2183 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 2154 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id);
2184 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 2155 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset);
2156 CheckBytesWrittenMatchesExpectedSize(
2157 next_cmd, sizeof(cmd));
2185 } 2158 }
2186 2159
2187 TEST(GLES2FormatTest, TexParameterivImmediate) { 2160 TEST_F(GLES2FormatTest, TexParameterivImmediate) {
2188 const int kSomeBaseValueToTestWith = 51; 2161 const int kSomeBaseValueToTestWith = 51;
2189 static GLint data[] = { 2162 static GLint data[] = {
2190 static_cast<GLint>(kSomeBaseValueToTestWith + 0), 2163 static_cast<GLint>(kSomeBaseValueToTestWith + 0),
2191 }; 2164 };
2192 int8 buf[256] = { 0, }; 2165 TexParameterivImmediate& cmd = *GetBufferAs<TexParameterivImmediate>();
2193 TexParameterivImmediate& cmd =
2194 *static_cast<TexParameterivImmediate*>(static_cast<void*>(&buf));
2195 void* next_cmd = cmd.Set( 2166 void* next_cmd = cmd.Set(
2196 &cmd, 2167 &cmd,
2197 static_cast<GLenum>(11), 2168 static_cast<GLenum>(11),
2198 static_cast<GLenum>(12), 2169 static_cast<GLenum>(12),
2199 data); 2170 data);
2200 EXPECT_EQ(static_cast<uint32>(TexParameterivImmediate::kCmdId), 2171 EXPECT_EQ(static_cast<uint32>(TexParameterivImmediate::kCmdId),
2201 cmd.header.command); 2172 cmd.header.command);
2202 EXPECT_EQ(sizeof(cmd) + 2173 EXPECT_EQ(sizeof(cmd) +
2203 RoundSizeToMultipleOfEntries(sizeof(data)), 2174 RoundSizeToMultipleOfEntries(sizeof(data)),
2204 cmd.header.size * 4u); 2175 cmd.header.size * 4u);
2205 EXPECT_EQ(static_cast<char*>(next_cmd),
2206 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2207 RoundSizeToMultipleOfEntries(sizeof(data)));
2208 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2176 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
2209 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 2177 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname);
2178 CheckBytesWrittenMatchesExpectedSize(
2179 next_cmd, sizeof(cmd) +
2180 RoundSizeToMultipleOfEntries(sizeof(data)));
2210 // TODO(gman): Check that data was inserted; 2181 // TODO(gman): Check that data was inserted;
2211 } 2182 }
2212 2183
2213 TEST(GLES2FormatTest, TexSubImage2D) { 2184 TEST_F(GLES2FormatTest, TexSubImage2D) {
2214 TexSubImage2D cmd = { { 0 } }; 2185 TexSubImage2D& cmd = *GetBufferAs<TexSubImage2D>();
2215 void* next_cmd = cmd.Set( 2186 void* next_cmd = cmd.Set(
2216 &cmd, 2187 &cmd,
2217 static_cast<GLenum>(11), 2188 static_cast<GLenum>(11),
2218 static_cast<GLint>(12), 2189 static_cast<GLint>(12),
2219 static_cast<GLint>(13), 2190 static_cast<GLint>(13),
2220 static_cast<GLint>(14), 2191 static_cast<GLint>(14),
2221 static_cast<GLsizei>(15), 2192 static_cast<GLsizei>(15),
2222 static_cast<GLsizei>(16), 2193 static_cast<GLsizei>(16),
2223 static_cast<GLenum>(17), 2194 static_cast<GLenum>(17),
2224 static_cast<GLenum>(18), 2195 static_cast<GLenum>(18),
2225 static_cast<uint32>(19), 2196 static_cast<uint32>(19),
2226 static_cast<uint32>(20), 2197 static_cast<uint32>(20),
2227 static_cast<GLboolean>(21)); 2198 static_cast<GLboolean>(21));
2228 EXPECT_EQ(static_cast<uint32>(TexSubImage2D::kCmdId), 2199 EXPECT_EQ(static_cast<uint32>(TexSubImage2D::kCmdId),
2229 cmd.header.command); 2200 cmd.header.command);
2230 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2201 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2231 EXPECT_EQ(static_cast<char*>(next_cmd),
2232 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2233 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2202 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
2234 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 2203 EXPECT_EQ(static_cast<GLint>(12), cmd.level);
2235 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset); 2204 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset);
2236 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset); 2205 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset);
2237 EXPECT_EQ(static_cast<GLsizei>(15), cmd.width); 2206 EXPECT_EQ(static_cast<GLsizei>(15), cmd.width);
2238 EXPECT_EQ(static_cast<GLsizei>(16), cmd.height); 2207 EXPECT_EQ(static_cast<GLsizei>(16), cmd.height);
2239 EXPECT_EQ(static_cast<GLenum>(17), cmd.format); 2208 EXPECT_EQ(static_cast<GLenum>(17), cmd.format);
2240 EXPECT_EQ(static_cast<GLenum>(18), cmd.type); 2209 EXPECT_EQ(static_cast<GLenum>(18), cmd.type);
2241 EXPECT_EQ(static_cast<uint32>(19), cmd.pixels_shm_id); 2210 EXPECT_EQ(static_cast<uint32>(19), cmd.pixels_shm_id);
2242 EXPECT_EQ(static_cast<uint32>(20), cmd.pixels_shm_offset); 2211 EXPECT_EQ(static_cast<uint32>(20), cmd.pixels_shm_offset);
2243 EXPECT_EQ(static_cast<GLboolean>(21), cmd.internal); 2212 EXPECT_EQ(static_cast<GLboolean>(21), cmd.internal);
2213 CheckBytesWrittenMatchesExpectedSize(
2214 next_cmd, sizeof(cmd));
2244 } 2215 }
2245 2216
2246 // TODO(gman): Implement test for TexSubImage2DImmediate 2217 // TODO(gman): Implement test for TexSubImage2DImmediate
2247 TEST(GLES2FormatTest, Uniform1f) { 2218 TEST_F(GLES2FormatTest, Uniform1f) {
2248 Uniform1f cmd = { { 0 } }; 2219 Uniform1f& cmd = *GetBufferAs<Uniform1f>();
2249 void* next_cmd = cmd.Set( 2220 void* next_cmd = cmd.Set(
2250 &cmd, 2221 &cmd,
2251 static_cast<GLint>(11), 2222 static_cast<GLint>(11),
2252 static_cast<GLfloat>(12)); 2223 static_cast<GLfloat>(12));
2253 EXPECT_EQ(static_cast<uint32>(Uniform1f::kCmdId), 2224 EXPECT_EQ(static_cast<uint32>(Uniform1f::kCmdId),
2254 cmd.header.command); 2225 cmd.header.command);
2255 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2226 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2256 EXPECT_EQ(static_cast<char*>(next_cmd),
2257 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2258 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2227 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2259 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2228 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x);
2229 CheckBytesWrittenMatchesExpectedSize(
2230 next_cmd, sizeof(cmd));
2260 } 2231 }
2261 2232
2262 TEST(GLES2FormatTest, Uniform1fv) { 2233 TEST_F(GLES2FormatTest, Uniform1fv) {
2263 Uniform1fv cmd = { { 0 } }; 2234 Uniform1fv& cmd = *GetBufferAs<Uniform1fv>();
2264 void* next_cmd = cmd.Set( 2235 void* next_cmd = cmd.Set(
2265 &cmd, 2236 &cmd,
2266 static_cast<GLint>(11), 2237 static_cast<GLint>(11),
2267 static_cast<GLsizei>(12), 2238 static_cast<GLsizei>(12),
2268 static_cast<uint32>(13), 2239 static_cast<uint32>(13),
2269 static_cast<uint32>(14)); 2240 static_cast<uint32>(14));
2270 EXPECT_EQ(static_cast<uint32>(Uniform1fv::kCmdId), 2241 EXPECT_EQ(static_cast<uint32>(Uniform1fv::kCmdId),
2271 cmd.header.command); 2242 cmd.header.command);
2272 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2243 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2273 EXPECT_EQ(static_cast<char*>(next_cmd),
2274 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2275 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2244 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2276 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2245 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2277 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2246 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id);
2278 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2247 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset);
2248 CheckBytesWrittenMatchesExpectedSize(
2249 next_cmd, sizeof(cmd));
2279 } 2250 }
2280 2251
2281 TEST(GLES2FormatTest, Uniform1fvImmediate) { 2252 TEST_F(GLES2FormatTest, Uniform1fvImmediate) {
2282 const int kSomeBaseValueToTestWith = 51; 2253 const int kSomeBaseValueToTestWith = 51;
2283 static GLfloat data[] = { 2254 static GLfloat data[] = {
2284 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2255 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
2285 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2256 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1),
2286 }; 2257 };
2287 int8 buf[256] = { 0, }; 2258 Uniform1fvImmediate& cmd = *GetBufferAs<Uniform1fvImmediate>();
2288 Uniform1fvImmediate& cmd = 2259 const GLsizei kNumElements = 2;
2289 *static_cast<Uniform1fvImmediate*>(static_cast<void*>(&buf)); 2260 const size_t kExpectedCmdSize =
2261 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 1;
2290 void* next_cmd = cmd.Set( 2262 void* next_cmd = cmd.Set(
2291 &cmd, 2263 &cmd,
2292 static_cast<GLint>(1), 2264 static_cast<GLint>(1),
2293 static_cast<GLsizei>(2), 2265 static_cast<GLsizei>(2),
2294 data); 2266 data);
2295 EXPECT_EQ(static_cast<uint32>(Uniform1fvImmediate::kCmdId), 2267 EXPECT_EQ(static_cast<uint32>(Uniform1fvImmediate::kCmdId),
2296 cmd.header.command); 2268 cmd.header.command);
2297 EXPECT_EQ(sizeof(cmd) + 2269 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2298 RoundSizeToMultipleOfEntries(sizeof(data)),
2299 cmd.header.size * 4u);
2300 EXPECT_EQ(static_cast<char*>(next_cmd),
2301 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2302 RoundSizeToMultipleOfEntries(sizeof(data)));
2303 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2270 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2304 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2271 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2272 CheckBytesWrittenMatchesExpectedSize(
2273 next_cmd, sizeof(cmd) +
2274 RoundSizeToMultipleOfEntries(sizeof(data)));
2305 // TODO(gman): Check that data was inserted; 2275 // TODO(gman): Check that data was inserted;
2306 } 2276 }
2307 2277
2308 TEST(GLES2FormatTest, Uniform1i) { 2278 TEST_F(GLES2FormatTest, Uniform1i) {
2309 Uniform1i cmd = { { 0 } }; 2279 Uniform1i& cmd = *GetBufferAs<Uniform1i>();
2310 void* next_cmd = cmd.Set( 2280 void* next_cmd = cmd.Set(
2311 &cmd, 2281 &cmd,
2312 static_cast<GLint>(11), 2282 static_cast<GLint>(11),
2313 static_cast<GLint>(12)); 2283 static_cast<GLint>(12));
2314 EXPECT_EQ(static_cast<uint32>(Uniform1i::kCmdId), 2284 EXPECT_EQ(static_cast<uint32>(Uniform1i::kCmdId),
2315 cmd.header.command); 2285 cmd.header.command);
2316 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2286 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2317 EXPECT_EQ(static_cast<char*>(next_cmd),
2318 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2319 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2287 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2320 EXPECT_EQ(static_cast<GLint>(12), cmd.x); 2288 EXPECT_EQ(static_cast<GLint>(12), cmd.x);
2289 CheckBytesWrittenMatchesExpectedSize(
2290 next_cmd, sizeof(cmd));
2321 } 2291 }
2322 2292
2323 TEST(GLES2FormatTest, Uniform1iv) { 2293 TEST_F(GLES2FormatTest, Uniform1iv) {
2324 Uniform1iv cmd = { { 0 } }; 2294 Uniform1iv& cmd = *GetBufferAs<Uniform1iv>();
2325 void* next_cmd = cmd.Set( 2295 void* next_cmd = cmd.Set(
2326 &cmd, 2296 &cmd,
2327 static_cast<GLint>(11), 2297 static_cast<GLint>(11),
2328 static_cast<GLsizei>(12), 2298 static_cast<GLsizei>(12),
2329 static_cast<uint32>(13), 2299 static_cast<uint32>(13),
2330 static_cast<uint32>(14)); 2300 static_cast<uint32>(14));
2331 EXPECT_EQ(static_cast<uint32>(Uniform1iv::kCmdId), 2301 EXPECT_EQ(static_cast<uint32>(Uniform1iv::kCmdId),
2332 cmd.header.command); 2302 cmd.header.command);
2333 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2303 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2334 EXPECT_EQ(static_cast<char*>(next_cmd),
2335 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2336 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2304 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2337 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2305 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2338 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2306 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id);
2339 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2307 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset);
2308 CheckBytesWrittenMatchesExpectedSize(
2309 next_cmd, sizeof(cmd));
2340 } 2310 }
2341 2311
2342 TEST(GLES2FormatTest, Uniform1ivImmediate) { 2312 TEST_F(GLES2FormatTest, Uniform1ivImmediate) {
2343 const int kSomeBaseValueToTestWith = 51; 2313 const int kSomeBaseValueToTestWith = 51;
2344 static GLint data[] = { 2314 static GLint data[] = {
2345 static_cast<GLint>(kSomeBaseValueToTestWith + 0), 2315 static_cast<GLint>(kSomeBaseValueToTestWith + 0),
2346 static_cast<GLint>(kSomeBaseValueToTestWith + 1), 2316 static_cast<GLint>(kSomeBaseValueToTestWith + 1),
2347 }; 2317 };
2348 int8 buf[256] = { 0, }; 2318 Uniform1ivImmediate& cmd = *GetBufferAs<Uniform1ivImmediate>();
2349 Uniform1ivImmediate& cmd = 2319 const GLsizei kNumElements = 2;
2350 *static_cast<Uniform1ivImmediate*>(static_cast<void*>(&buf)); 2320 const size_t kExpectedCmdSize =
2321 sizeof(cmd) + kNumElements * sizeof(GLint) * 1;
2351 void* next_cmd = cmd.Set( 2322 void* next_cmd = cmd.Set(
2352 &cmd, 2323 &cmd,
2353 static_cast<GLint>(1), 2324 static_cast<GLint>(1),
2354 static_cast<GLsizei>(2), 2325 static_cast<GLsizei>(2),
2355 data); 2326 data);
2356 EXPECT_EQ(static_cast<uint32>(Uniform1ivImmediate::kCmdId), 2327 EXPECT_EQ(static_cast<uint32>(Uniform1ivImmediate::kCmdId),
2357 cmd.header.command); 2328 cmd.header.command);
2358 EXPECT_EQ(sizeof(cmd) + 2329 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2359 RoundSizeToMultipleOfEntries(sizeof(data)),
2360 cmd.header.size * 4u);
2361 EXPECT_EQ(static_cast<char*>(next_cmd),
2362 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2363 RoundSizeToMultipleOfEntries(sizeof(data)));
2364 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2330 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2365 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2331 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2332 CheckBytesWrittenMatchesExpectedSize(
2333 next_cmd, sizeof(cmd) +
2334 RoundSizeToMultipleOfEntries(sizeof(data)));
2366 // TODO(gman): Check that data was inserted; 2335 // TODO(gman): Check that data was inserted;
2367 } 2336 }
2368 2337
2369 TEST(GLES2FormatTest, Uniform2f) { 2338 TEST_F(GLES2FormatTest, Uniform2f) {
2370 Uniform2f cmd = { { 0 } }; 2339 Uniform2f& cmd = *GetBufferAs<Uniform2f>();
2371 void* next_cmd = cmd.Set( 2340 void* next_cmd = cmd.Set(
2372 &cmd, 2341 &cmd,
2373 static_cast<GLint>(11), 2342 static_cast<GLint>(11),
2374 static_cast<GLfloat>(12), 2343 static_cast<GLfloat>(12),
2375 static_cast<GLfloat>(13)); 2344 static_cast<GLfloat>(13));
2376 EXPECT_EQ(static_cast<uint32>(Uniform2f::kCmdId), 2345 EXPECT_EQ(static_cast<uint32>(Uniform2f::kCmdId),
2377 cmd.header.command); 2346 cmd.header.command);
2378 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2347 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2379 EXPECT_EQ(static_cast<char*>(next_cmd),
2380 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2381 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2348 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2382 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2349 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x);
2383 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 2350 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y);
2351 CheckBytesWrittenMatchesExpectedSize(
2352 next_cmd, sizeof(cmd));
2384 } 2353 }
2385 2354
2386 TEST(GLES2FormatTest, Uniform2fv) { 2355 TEST_F(GLES2FormatTest, Uniform2fv) {
2387 Uniform2fv cmd = { { 0 } }; 2356 Uniform2fv& cmd = *GetBufferAs<Uniform2fv>();
2388 void* next_cmd = cmd.Set( 2357 void* next_cmd = cmd.Set(
2389 &cmd, 2358 &cmd,
2390 static_cast<GLint>(11), 2359 static_cast<GLint>(11),
2391 static_cast<GLsizei>(12), 2360 static_cast<GLsizei>(12),
2392 static_cast<uint32>(13), 2361 static_cast<uint32>(13),
2393 static_cast<uint32>(14)); 2362 static_cast<uint32>(14));
2394 EXPECT_EQ(static_cast<uint32>(Uniform2fv::kCmdId), 2363 EXPECT_EQ(static_cast<uint32>(Uniform2fv::kCmdId),
2395 cmd.header.command); 2364 cmd.header.command);
2396 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2365 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2397 EXPECT_EQ(static_cast<char*>(next_cmd),
2398 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2399 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2366 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2400 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2367 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2401 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2368 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id);
2402 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2369 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset);
2370 CheckBytesWrittenMatchesExpectedSize(
2371 next_cmd, sizeof(cmd));
2403 } 2372 }
2404 2373
2405 TEST(GLES2FormatTest, Uniform2fvImmediate) { 2374 TEST_F(GLES2FormatTest, Uniform2fvImmediate) {
2406 const int kSomeBaseValueToTestWith = 51; 2375 const int kSomeBaseValueToTestWith = 51;
2407 static GLfloat data[] = { 2376 static GLfloat data[] = {
2408 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2377 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
2409 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2378 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1),
2410 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2379 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2),
2411 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2380 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3),
2412 }; 2381 };
2413 int8 buf[256] = { 0, }; 2382 Uniform2fvImmediate& cmd = *GetBufferAs<Uniform2fvImmediate>();
2414 Uniform2fvImmediate& cmd = 2383 const GLsizei kNumElements = 2;
2415 *static_cast<Uniform2fvImmediate*>(static_cast<void*>(&buf)); 2384 const size_t kExpectedCmdSize =
2385 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 2;
2416 void* next_cmd = cmd.Set( 2386 void* next_cmd = cmd.Set(
2417 &cmd, 2387 &cmd,
2418 static_cast<GLint>(1), 2388 static_cast<GLint>(1),
2419 static_cast<GLsizei>(2), 2389 static_cast<GLsizei>(2),
2420 data); 2390 data);
2421 EXPECT_EQ(static_cast<uint32>(Uniform2fvImmediate::kCmdId), 2391 EXPECT_EQ(static_cast<uint32>(Uniform2fvImmediate::kCmdId),
2422 cmd.header.command); 2392 cmd.header.command);
2423 EXPECT_EQ(sizeof(cmd) + 2393 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2424 RoundSizeToMultipleOfEntries(sizeof(data)),
2425 cmd.header.size * 4u);
2426 EXPECT_EQ(static_cast<char*>(next_cmd),
2427 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2428 RoundSizeToMultipleOfEntries(sizeof(data)));
2429 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2394 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2430 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2395 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2396 CheckBytesWrittenMatchesExpectedSize(
2397 next_cmd, sizeof(cmd) +
2398 RoundSizeToMultipleOfEntries(sizeof(data)));
2431 // TODO(gman): Check that data was inserted; 2399 // TODO(gman): Check that data was inserted;
2432 } 2400 }
2433 2401
2434 TEST(GLES2FormatTest, Uniform2i) { 2402 TEST_F(GLES2FormatTest, Uniform2i) {
2435 Uniform2i cmd = { { 0 } }; 2403 Uniform2i& cmd = *GetBufferAs<Uniform2i>();
2436 void* next_cmd = cmd.Set( 2404 void* next_cmd = cmd.Set(
2437 &cmd, 2405 &cmd,
2438 static_cast<GLint>(11), 2406 static_cast<GLint>(11),
2439 static_cast<GLint>(12), 2407 static_cast<GLint>(12),
2440 static_cast<GLint>(13)); 2408 static_cast<GLint>(13));
2441 EXPECT_EQ(static_cast<uint32>(Uniform2i::kCmdId), 2409 EXPECT_EQ(static_cast<uint32>(Uniform2i::kCmdId),
2442 cmd.header.command); 2410 cmd.header.command);
2443 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2411 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2444 EXPECT_EQ(static_cast<char*>(next_cmd),
2445 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2446 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2412 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2447 EXPECT_EQ(static_cast<GLint>(12), cmd.x); 2413 EXPECT_EQ(static_cast<GLint>(12), cmd.x);
2448 EXPECT_EQ(static_cast<GLint>(13), cmd.y); 2414 EXPECT_EQ(static_cast<GLint>(13), cmd.y);
2415 CheckBytesWrittenMatchesExpectedSize(
2416 next_cmd, sizeof(cmd));
2449 } 2417 }
2450 2418
2451 TEST(GLES2FormatTest, Uniform2iv) { 2419 TEST_F(GLES2FormatTest, Uniform2iv) {
2452 Uniform2iv cmd = { { 0 } }; 2420 Uniform2iv& cmd = *GetBufferAs<Uniform2iv>();
2453 void* next_cmd = cmd.Set( 2421 void* next_cmd = cmd.Set(
2454 &cmd, 2422 &cmd,
2455 static_cast<GLint>(11), 2423 static_cast<GLint>(11),
2456 static_cast<GLsizei>(12), 2424 static_cast<GLsizei>(12),
2457 static_cast<uint32>(13), 2425 static_cast<uint32>(13),
2458 static_cast<uint32>(14)); 2426 static_cast<uint32>(14));
2459 EXPECT_EQ(static_cast<uint32>(Uniform2iv::kCmdId), 2427 EXPECT_EQ(static_cast<uint32>(Uniform2iv::kCmdId),
2460 cmd.header.command); 2428 cmd.header.command);
2461 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2429 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2462 EXPECT_EQ(static_cast<char*>(next_cmd),
2463 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2464 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2430 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2465 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2431 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2466 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2432 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id);
2467 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2433 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset);
2434 CheckBytesWrittenMatchesExpectedSize(
2435 next_cmd, sizeof(cmd));
2468 } 2436 }
2469 2437
2470 TEST(GLES2FormatTest, Uniform2ivImmediate) { 2438 TEST_F(GLES2FormatTest, Uniform2ivImmediate) {
2471 const int kSomeBaseValueToTestWith = 51; 2439 const int kSomeBaseValueToTestWith = 51;
2472 static GLint data[] = { 2440 static GLint data[] = {
2473 static_cast<GLint>(kSomeBaseValueToTestWith + 0), 2441 static_cast<GLint>(kSomeBaseValueToTestWith + 0),
2474 static_cast<GLint>(kSomeBaseValueToTestWith + 1), 2442 static_cast<GLint>(kSomeBaseValueToTestWith + 1),
2475 static_cast<GLint>(kSomeBaseValueToTestWith + 2), 2443 static_cast<GLint>(kSomeBaseValueToTestWith + 2),
2476 static_cast<GLint>(kSomeBaseValueToTestWith + 3), 2444 static_cast<GLint>(kSomeBaseValueToTestWith + 3),
2477 }; 2445 };
2478 int8 buf[256] = { 0, }; 2446 Uniform2ivImmediate& cmd = *GetBufferAs<Uniform2ivImmediate>();
2479 Uniform2ivImmediate& cmd = 2447 const GLsizei kNumElements = 2;
2480 *static_cast<Uniform2ivImmediate*>(static_cast<void*>(&buf)); 2448 const size_t kExpectedCmdSize =
2449 sizeof(cmd) + kNumElements * sizeof(GLint) * 2;
2481 void* next_cmd = cmd.Set( 2450 void* next_cmd = cmd.Set(
2482 &cmd, 2451 &cmd,
2483 static_cast<GLint>(1), 2452 static_cast<GLint>(1),
2484 static_cast<GLsizei>(2), 2453 static_cast<GLsizei>(2),
2485 data); 2454 data);
2486 EXPECT_EQ(static_cast<uint32>(Uniform2ivImmediate::kCmdId), 2455 EXPECT_EQ(static_cast<uint32>(Uniform2ivImmediate::kCmdId),
2487 cmd.header.command); 2456 cmd.header.command);
2488 EXPECT_EQ(sizeof(cmd) + 2457 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2489 RoundSizeToMultipleOfEntries(sizeof(data)),
2490 cmd.header.size * 4u);
2491 EXPECT_EQ(static_cast<char*>(next_cmd),
2492 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2493 RoundSizeToMultipleOfEntries(sizeof(data)));
2494 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2458 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2495 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2459 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2460 CheckBytesWrittenMatchesExpectedSize(
2461 next_cmd, sizeof(cmd) +
2462 RoundSizeToMultipleOfEntries(sizeof(data)));
2496 // TODO(gman): Check that data was inserted; 2463 // TODO(gman): Check that data was inserted;
2497 } 2464 }
2498 2465
2499 TEST(GLES2FormatTest, Uniform3f) { 2466 TEST_F(GLES2FormatTest, Uniform3f) {
2500 Uniform3f cmd = { { 0 } }; 2467 Uniform3f& cmd = *GetBufferAs<Uniform3f>();
2501 void* next_cmd = cmd.Set( 2468 void* next_cmd = cmd.Set(
2502 &cmd, 2469 &cmd,
2503 static_cast<GLint>(11), 2470 static_cast<GLint>(11),
2504 static_cast<GLfloat>(12), 2471 static_cast<GLfloat>(12),
2505 static_cast<GLfloat>(13), 2472 static_cast<GLfloat>(13),
2506 static_cast<GLfloat>(14)); 2473 static_cast<GLfloat>(14));
2507 EXPECT_EQ(static_cast<uint32>(Uniform3f::kCmdId), 2474 EXPECT_EQ(static_cast<uint32>(Uniform3f::kCmdId),
2508 cmd.header.command); 2475 cmd.header.command);
2509 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2476 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2510 EXPECT_EQ(static_cast<char*>(next_cmd),
2511 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2512 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2477 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2513 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2478 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x);
2514 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 2479 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y);
2515 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z); 2480 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z);
2481 CheckBytesWrittenMatchesExpectedSize(
2482 next_cmd, sizeof(cmd));
2516 } 2483 }
2517 2484
2518 TEST(GLES2FormatTest, Uniform3fv) { 2485 TEST_F(GLES2FormatTest, Uniform3fv) {
2519 Uniform3fv cmd = { { 0 } }; 2486 Uniform3fv& cmd = *GetBufferAs<Uniform3fv>();
2520 void* next_cmd = cmd.Set( 2487 void* next_cmd = cmd.Set(
2521 &cmd, 2488 &cmd,
2522 static_cast<GLint>(11), 2489 static_cast<GLint>(11),
2523 static_cast<GLsizei>(12), 2490 static_cast<GLsizei>(12),
2524 static_cast<uint32>(13), 2491 static_cast<uint32>(13),
2525 static_cast<uint32>(14)); 2492 static_cast<uint32>(14));
2526 EXPECT_EQ(static_cast<uint32>(Uniform3fv::kCmdId), 2493 EXPECT_EQ(static_cast<uint32>(Uniform3fv::kCmdId),
2527 cmd.header.command); 2494 cmd.header.command);
2528 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2495 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2529 EXPECT_EQ(static_cast<char*>(next_cmd),
2530 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2531 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2496 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2532 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2497 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2533 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2498 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id);
2534 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2499 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset);
2500 CheckBytesWrittenMatchesExpectedSize(
2501 next_cmd, sizeof(cmd));
2535 } 2502 }
2536 2503
2537 TEST(GLES2FormatTest, Uniform3fvImmediate) { 2504 TEST_F(GLES2FormatTest, Uniform3fvImmediate) {
2538 const int kSomeBaseValueToTestWith = 51; 2505 const int kSomeBaseValueToTestWith = 51;
2539 static GLfloat data[] = { 2506 static GLfloat data[] = {
2540 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2507 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
2541 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2508 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1),
2542 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2509 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2),
2543 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2510 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3),
2544 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4), 2511 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4),
2545 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5), 2512 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5),
2546 }; 2513 };
2547 int8 buf[256] = { 0, }; 2514 Uniform3fvImmediate& cmd = *GetBufferAs<Uniform3fvImmediate>();
2548 Uniform3fvImmediate& cmd = 2515 const GLsizei kNumElements = 2;
2549 *static_cast<Uniform3fvImmediate*>(static_cast<void*>(&buf)); 2516 const size_t kExpectedCmdSize =
2517 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 3;
2550 void* next_cmd = cmd.Set( 2518 void* next_cmd = cmd.Set(
2551 &cmd, 2519 &cmd,
2552 static_cast<GLint>(1), 2520 static_cast<GLint>(1),
2553 static_cast<GLsizei>(2), 2521 static_cast<GLsizei>(2),
2554 data); 2522 data);
2555 EXPECT_EQ(static_cast<uint32>(Uniform3fvImmediate::kCmdId), 2523 EXPECT_EQ(static_cast<uint32>(Uniform3fvImmediate::kCmdId),
2556 cmd.header.command); 2524 cmd.header.command);
2557 EXPECT_EQ(sizeof(cmd) + 2525 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2558 RoundSizeToMultipleOfEntries(sizeof(data)),
2559 cmd.header.size * 4u);
2560 EXPECT_EQ(static_cast<char*>(next_cmd),
2561 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2562 RoundSizeToMultipleOfEntries(sizeof(data)));
2563 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2526 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2564 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2527 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2528 CheckBytesWrittenMatchesExpectedSize(
2529 next_cmd, sizeof(cmd) +
2530 RoundSizeToMultipleOfEntries(sizeof(data)));
2565 // TODO(gman): Check that data was inserted; 2531 // TODO(gman): Check that data was inserted;
2566 } 2532 }
2567 2533
2568 TEST(GLES2FormatTest, Uniform3i) { 2534 TEST_F(GLES2FormatTest, Uniform3i) {
2569 Uniform3i cmd = { { 0 } }; 2535 Uniform3i& cmd = *GetBufferAs<Uniform3i>();
2570 void* next_cmd = cmd.Set( 2536 void* next_cmd = cmd.Set(
2571 &cmd, 2537 &cmd,
2572 static_cast<GLint>(11), 2538 static_cast<GLint>(11),
2573 static_cast<GLint>(12), 2539 static_cast<GLint>(12),
2574 static_cast<GLint>(13), 2540 static_cast<GLint>(13),
2575 static_cast<GLint>(14)); 2541 static_cast<GLint>(14));
2576 EXPECT_EQ(static_cast<uint32>(Uniform3i::kCmdId), 2542 EXPECT_EQ(static_cast<uint32>(Uniform3i::kCmdId),
2577 cmd.header.command); 2543 cmd.header.command);
2578 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2544 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2579 EXPECT_EQ(static_cast<char*>(next_cmd),
2580 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2581 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2545 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2582 EXPECT_EQ(static_cast<GLint>(12), cmd.x); 2546 EXPECT_EQ(static_cast<GLint>(12), cmd.x);
2583 EXPECT_EQ(static_cast<GLint>(13), cmd.y); 2547 EXPECT_EQ(static_cast<GLint>(13), cmd.y);
2584 EXPECT_EQ(static_cast<GLint>(14), cmd.z); 2548 EXPECT_EQ(static_cast<GLint>(14), cmd.z);
2549 CheckBytesWrittenMatchesExpectedSize(
2550 next_cmd, sizeof(cmd));
2585 } 2551 }
2586 2552
2587 TEST(GLES2FormatTest, Uniform3iv) { 2553 TEST_F(GLES2FormatTest, Uniform3iv) {
2588 Uniform3iv cmd = { { 0 } }; 2554 Uniform3iv& cmd = *GetBufferAs<Uniform3iv>();
2589 void* next_cmd = cmd.Set( 2555 void* next_cmd = cmd.Set(
2590 &cmd, 2556 &cmd,
2591 static_cast<GLint>(11), 2557 static_cast<GLint>(11),
2592 static_cast<GLsizei>(12), 2558 static_cast<GLsizei>(12),
2593 static_cast<uint32>(13), 2559 static_cast<uint32>(13),
2594 static_cast<uint32>(14)); 2560 static_cast<uint32>(14));
2595 EXPECT_EQ(static_cast<uint32>(Uniform3iv::kCmdId), 2561 EXPECT_EQ(static_cast<uint32>(Uniform3iv::kCmdId),
2596 cmd.header.command); 2562 cmd.header.command);
2597 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2563 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2598 EXPECT_EQ(static_cast<char*>(next_cmd),
2599 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2600 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2564 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2601 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2565 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2602 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2566 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id);
2603 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2567 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset);
2568 CheckBytesWrittenMatchesExpectedSize(
2569 next_cmd, sizeof(cmd));
2604 } 2570 }
2605 2571
2606 TEST(GLES2FormatTest, Uniform3ivImmediate) { 2572 TEST_F(GLES2FormatTest, Uniform3ivImmediate) {
2607 const int kSomeBaseValueToTestWith = 51; 2573 const int kSomeBaseValueToTestWith = 51;
2608 static GLint data[] = { 2574 static GLint data[] = {
2609 static_cast<GLint>(kSomeBaseValueToTestWith + 0), 2575 static_cast<GLint>(kSomeBaseValueToTestWith + 0),
2610 static_cast<GLint>(kSomeBaseValueToTestWith + 1), 2576 static_cast<GLint>(kSomeBaseValueToTestWith + 1),
2611 static_cast<GLint>(kSomeBaseValueToTestWith + 2), 2577 static_cast<GLint>(kSomeBaseValueToTestWith + 2),
2612 static_cast<GLint>(kSomeBaseValueToTestWith + 3), 2578 static_cast<GLint>(kSomeBaseValueToTestWith + 3),
2613 static_cast<GLint>(kSomeBaseValueToTestWith + 4), 2579 static_cast<GLint>(kSomeBaseValueToTestWith + 4),
2614 static_cast<GLint>(kSomeBaseValueToTestWith + 5), 2580 static_cast<GLint>(kSomeBaseValueToTestWith + 5),
2615 }; 2581 };
2616 int8 buf[256] = { 0, }; 2582 Uniform3ivImmediate& cmd = *GetBufferAs<Uniform3ivImmediate>();
2617 Uniform3ivImmediate& cmd = 2583 const GLsizei kNumElements = 2;
2618 *static_cast<Uniform3ivImmediate*>(static_cast<void*>(&buf)); 2584 const size_t kExpectedCmdSize =
2585 sizeof(cmd) + kNumElements * sizeof(GLint) * 3;
2619 void* next_cmd = cmd.Set( 2586 void* next_cmd = cmd.Set(
2620 &cmd, 2587 &cmd,
2621 static_cast<GLint>(1), 2588 static_cast<GLint>(1),
2622 static_cast<GLsizei>(2), 2589 static_cast<GLsizei>(2),
2623 data); 2590 data);
2624 EXPECT_EQ(static_cast<uint32>(Uniform3ivImmediate::kCmdId), 2591 EXPECT_EQ(static_cast<uint32>(Uniform3ivImmediate::kCmdId),
2625 cmd.header.command); 2592 cmd.header.command);
2626 EXPECT_EQ(sizeof(cmd) + 2593 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2627 RoundSizeToMultipleOfEntries(sizeof(data)),
2628 cmd.header.size * 4u);
2629 EXPECT_EQ(static_cast<char*>(next_cmd),
2630 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2631 RoundSizeToMultipleOfEntries(sizeof(data)));
2632 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2594 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2633 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2595 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2596 CheckBytesWrittenMatchesExpectedSize(
2597 next_cmd, sizeof(cmd) +
2598 RoundSizeToMultipleOfEntries(sizeof(data)));
2634 // TODO(gman): Check that data was inserted; 2599 // TODO(gman): Check that data was inserted;
2635 } 2600 }
2636 2601
2637 TEST(GLES2FormatTest, Uniform4f) { 2602 TEST_F(GLES2FormatTest, Uniform4f) {
2638 Uniform4f cmd = { { 0 } }; 2603 Uniform4f& cmd = *GetBufferAs<Uniform4f>();
2639 void* next_cmd = cmd.Set( 2604 void* next_cmd = cmd.Set(
2640 &cmd, 2605 &cmd,
2641 static_cast<GLint>(11), 2606 static_cast<GLint>(11),
2642 static_cast<GLfloat>(12), 2607 static_cast<GLfloat>(12),
2643 static_cast<GLfloat>(13), 2608 static_cast<GLfloat>(13),
2644 static_cast<GLfloat>(14), 2609 static_cast<GLfloat>(14),
2645 static_cast<GLfloat>(15)); 2610 static_cast<GLfloat>(15));
2646 EXPECT_EQ(static_cast<uint32>(Uniform4f::kCmdId), 2611 EXPECT_EQ(static_cast<uint32>(Uniform4f::kCmdId),
2647 cmd.header.command); 2612 cmd.header.command);
2648 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2613 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2649 EXPECT_EQ(static_cast<char*>(next_cmd),
2650 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2651 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2614 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2652 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2615 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x);
2653 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 2616 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y);
2654 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z); 2617 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z);
2655 EXPECT_EQ(static_cast<GLfloat>(15), cmd.w); 2618 EXPECT_EQ(static_cast<GLfloat>(15), cmd.w);
2619 CheckBytesWrittenMatchesExpectedSize(
2620 next_cmd, sizeof(cmd));
2656 } 2621 }
2657 2622
2658 TEST(GLES2FormatTest, Uniform4fv) { 2623 TEST_F(GLES2FormatTest, Uniform4fv) {
2659 Uniform4fv cmd = { { 0 } }; 2624 Uniform4fv& cmd = *GetBufferAs<Uniform4fv>();
2660 void* next_cmd = cmd.Set( 2625 void* next_cmd = cmd.Set(
2661 &cmd, 2626 &cmd,
2662 static_cast<GLint>(11), 2627 static_cast<GLint>(11),
2663 static_cast<GLsizei>(12), 2628 static_cast<GLsizei>(12),
2664 static_cast<uint32>(13), 2629 static_cast<uint32>(13),
2665 static_cast<uint32>(14)); 2630 static_cast<uint32>(14));
2666 EXPECT_EQ(static_cast<uint32>(Uniform4fv::kCmdId), 2631 EXPECT_EQ(static_cast<uint32>(Uniform4fv::kCmdId),
2667 cmd.header.command); 2632 cmd.header.command);
2668 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2633 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2669 EXPECT_EQ(static_cast<char*>(next_cmd),
2670 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2671 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2634 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2672 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2635 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2673 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2636 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id);
2674 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2637 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset);
2638 CheckBytesWrittenMatchesExpectedSize(
2639 next_cmd, sizeof(cmd));
2675 } 2640 }
2676 2641
2677 TEST(GLES2FormatTest, Uniform4fvImmediate) { 2642 TEST_F(GLES2FormatTest, Uniform4fvImmediate) {
2678 const int kSomeBaseValueToTestWith = 51; 2643 const int kSomeBaseValueToTestWith = 51;
2679 static GLfloat data[] = { 2644 static GLfloat data[] = {
2680 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2645 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
2681 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2646 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1),
2682 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2647 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2),
2683 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2648 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3),
2684 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4), 2649 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4),
2685 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5), 2650 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5),
2686 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6), 2651 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6),
2687 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7), 2652 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7),
2688 }; 2653 };
2689 int8 buf[256] = { 0, }; 2654 Uniform4fvImmediate& cmd = *GetBufferAs<Uniform4fvImmediate>();
2690 Uniform4fvImmediate& cmd = 2655 const GLsizei kNumElements = 2;
2691 *static_cast<Uniform4fvImmediate*>(static_cast<void*>(&buf)); 2656 const size_t kExpectedCmdSize =
2657 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 4;
2692 void* next_cmd = cmd.Set( 2658 void* next_cmd = cmd.Set(
2693 &cmd, 2659 &cmd,
2694 static_cast<GLint>(1), 2660 static_cast<GLint>(1),
2695 static_cast<GLsizei>(2), 2661 static_cast<GLsizei>(2),
2696 data); 2662 data);
2697 EXPECT_EQ(static_cast<uint32>(Uniform4fvImmediate::kCmdId), 2663 EXPECT_EQ(static_cast<uint32>(Uniform4fvImmediate::kCmdId),
2698 cmd.header.command); 2664 cmd.header.command);
2699 EXPECT_EQ(sizeof(cmd) + 2665 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2700 RoundSizeToMultipleOfEntries(sizeof(data)),
2701 cmd.header.size * 4u);
2702 EXPECT_EQ(static_cast<char*>(next_cmd),
2703 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2704 RoundSizeToMultipleOfEntries(sizeof(data)));
2705 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2666 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2706 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2667 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2668 CheckBytesWrittenMatchesExpectedSize(
2669 next_cmd, sizeof(cmd) +
2670 RoundSizeToMultipleOfEntries(sizeof(data)));
2707 // TODO(gman): Check that data was inserted; 2671 // TODO(gman): Check that data was inserted;
2708 } 2672 }
2709 2673
2710 TEST(GLES2FormatTest, Uniform4i) { 2674 TEST_F(GLES2FormatTest, Uniform4i) {
2711 Uniform4i cmd = { { 0 } }; 2675 Uniform4i& cmd = *GetBufferAs<Uniform4i>();
2712 void* next_cmd = cmd.Set( 2676 void* next_cmd = cmd.Set(
2713 &cmd, 2677 &cmd,
2714 static_cast<GLint>(11), 2678 static_cast<GLint>(11),
2715 static_cast<GLint>(12), 2679 static_cast<GLint>(12),
2716 static_cast<GLint>(13), 2680 static_cast<GLint>(13),
2717 static_cast<GLint>(14), 2681 static_cast<GLint>(14),
2718 static_cast<GLint>(15)); 2682 static_cast<GLint>(15));
2719 EXPECT_EQ(static_cast<uint32>(Uniform4i::kCmdId), 2683 EXPECT_EQ(static_cast<uint32>(Uniform4i::kCmdId),
2720 cmd.header.command); 2684 cmd.header.command);
2721 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2685 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2722 EXPECT_EQ(static_cast<char*>(next_cmd),
2723 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2724 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2686 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2725 EXPECT_EQ(static_cast<GLint>(12), cmd.x); 2687 EXPECT_EQ(static_cast<GLint>(12), cmd.x);
2726 EXPECT_EQ(static_cast<GLint>(13), cmd.y); 2688 EXPECT_EQ(static_cast<GLint>(13), cmd.y);
2727 EXPECT_EQ(static_cast<GLint>(14), cmd.z); 2689 EXPECT_EQ(static_cast<GLint>(14), cmd.z);
2728 EXPECT_EQ(static_cast<GLint>(15), cmd.w); 2690 EXPECT_EQ(static_cast<GLint>(15), cmd.w);
2691 CheckBytesWrittenMatchesExpectedSize(
2692 next_cmd, sizeof(cmd));
2729 } 2693 }
2730 2694
2731 TEST(GLES2FormatTest, Uniform4iv) { 2695 TEST_F(GLES2FormatTest, Uniform4iv) {
2732 Uniform4iv cmd = { { 0 } }; 2696 Uniform4iv& cmd = *GetBufferAs<Uniform4iv>();
2733 void* next_cmd = cmd.Set( 2697 void* next_cmd = cmd.Set(
2734 &cmd, 2698 &cmd,
2735 static_cast<GLint>(11), 2699 static_cast<GLint>(11),
2736 static_cast<GLsizei>(12), 2700 static_cast<GLsizei>(12),
2737 static_cast<uint32>(13), 2701 static_cast<uint32>(13),
2738 static_cast<uint32>(14)); 2702 static_cast<uint32>(14));
2739 EXPECT_EQ(static_cast<uint32>(Uniform4iv::kCmdId), 2703 EXPECT_EQ(static_cast<uint32>(Uniform4iv::kCmdId),
2740 cmd.header.command); 2704 cmd.header.command);
2741 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2705 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2742 EXPECT_EQ(static_cast<char*>(next_cmd),
2743 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2744 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2706 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2745 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2707 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2746 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2708 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id);
2747 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2709 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset);
2710 CheckBytesWrittenMatchesExpectedSize(
2711 next_cmd, sizeof(cmd));
2748 } 2712 }
2749 2713
2750 TEST(GLES2FormatTest, Uniform4ivImmediate) { 2714 TEST_F(GLES2FormatTest, Uniform4ivImmediate) {
2751 const int kSomeBaseValueToTestWith = 51; 2715 const int kSomeBaseValueToTestWith = 51;
2752 static GLint data[] = { 2716 static GLint data[] = {
2753 static_cast<GLint>(kSomeBaseValueToTestWith + 0), 2717 static_cast<GLint>(kSomeBaseValueToTestWith + 0),
2754 static_cast<GLint>(kSomeBaseValueToTestWith + 1), 2718 static_cast<GLint>(kSomeBaseValueToTestWith + 1),
2755 static_cast<GLint>(kSomeBaseValueToTestWith + 2), 2719 static_cast<GLint>(kSomeBaseValueToTestWith + 2),
2756 static_cast<GLint>(kSomeBaseValueToTestWith + 3), 2720 static_cast<GLint>(kSomeBaseValueToTestWith + 3),
2757 static_cast<GLint>(kSomeBaseValueToTestWith + 4), 2721 static_cast<GLint>(kSomeBaseValueToTestWith + 4),
2758 static_cast<GLint>(kSomeBaseValueToTestWith + 5), 2722 static_cast<GLint>(kSomeBaseValueToTestWith + 5),
2759 static_cast<GLint>(kSomeBaseValueToTestWith + 6), 2723 static_cast<GLint>(kSomeBaseValueToTestWith + 6),
2760 static_cast<GLint>(kSomeBaseValueToTestWith + 7), 2724 static_cast<GLint>(kSomeBaseValueToTestWith + 7),
2761 }; 2725 };
2762 int8 buf[256] = { 0, }; 2726 Uniform4ivImmediate& cmd = *GetBufferAs<Uniform4ivImmediate>();
2763 Uniform4ivImmediate& cmd = 2727 const GLsizei kNumElements = 2;
2764 *static_cast<Uniform4ivImmediate*>(static_cast<void*>(&buf)); 2728 const size_t kExpectedCmdSize =
2729 sizeof(cmd) + kNumElements * sizeof(GLint) * 4;
2765 void* next_cmd = cmd.Set( 2730 void* next_cmd = cmd.Set(
2766 &cmd, 2731 &cmd,
2767 static_cast<GLint>(1), 2732 static_cast<GLint>(1),
2768 static_cast<GLsizei>(2), 2733 static_cast<GLsizei>(2),
2769 data); 2734 data);
2770 EXPECT_EQ(static_cast<uint32>(Uniform4ivImmediate::kCmdId), 2735 EXPECT_EQ(static_cast<uint32>(Uniform4ivImmediate::kCmdId),
2771 cmd.header.command); 2736 cmd.header.command);
2772 EXPECT_EQ(sizeof(cmd) + 2737 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2773 RoundSizeToMultipleOfEntries(sizeof(data)),
2774 cmd.header.size * 4u);
2775 EXPECT_EQ(static_cast<char*>(next_cmd),
2776 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2777 RoundSizeToMultipleOfEntries(sizeof(data)));
2778 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2738 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2779 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2739 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2740 CheckBytesWrittenMatchesExpectedSize(
2741 next_cmd, sizeof(cmd) +
2742 RoundSizeToMultipleOfEntries(sizeof(data)));
2780 // TODO(gman): Check that data was inserted; 2743 // TODO(gman): Check that data was inserted;
2781 } 2744 }
2782 2745
2783 TEST(GLES2FormatTest, UniformMatrix2fv) { 2746 TEST_F(GLES2FormatTest, UniformMatrix2fv) {
2784 UniformMatrix2fv cmd = { { 0 } }; 2747 UniformMatrix2fv& cmd = *GetBufferAs<UniformMatrix2fv>();
2785 void* next_cmd = cmd.Set( 2748 void* next_cmd = cmd.Set(
2786 &cmd, 2749 &cmd,
2787 static_cast<GLint>(11), 2750 static_cast<GLint>(11),
2788 static_cast<GLsizei>(12), 2751 static_cast<GLsizei>(12),
2789 static_cast<GLboolean>(13), 2752 static_cast<GLboolean>(13),
2790 static_cast<uint32>(14), 2753 static_cast<uint32>(14),
2791 static_cast<uint32>(15)); 2754 static_cast<uint32>(15));
2792 EXPECT_EQ(static_cast<uint32>(UniformMatrix2fv::kCmdId), 2755 EXPECT_EQ(static_cast<uint32>(UniformMatrix2fv::kCmdId),
2793 cmd.header.command); 2756 cmd.header.command);
2794 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2757 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2795 EXPECT_EQ(static_cast<char*>(next_cmd),
2796 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2797 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2758 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2798 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2759 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2799 EXPECT_EQ(static_cast<GLboolean>(13), cmd.transpose); 2760 EXPECT_EQ(static_cast<GLboolean>(13), cmd.transpose);
2800 EXPECT_EQ(static_cast<uint32>(14), cmd.value_shm_id); 2761 EXPECT_EQ(static_cast<uint32>(14), cmd.value_shm_id);
2801 EXPECT_EQ(static_cast<uint32>(15), cmd.value_shm_offset); 2762 EXPECT_EQ(static_cast<uint32>(15), cmd.value_shm_offset);
2763 CheckBytesWrittenMatchesExpectedSize(
2764 next_cmd, sizeof(cmd));
2802 } 2765 }
2803 2766
2804 TEST(GLES2FormatTest, UniformMatrix2fvImmediate) { 2767 TEST_F(GLES2FormatTest, UniformMatrix2fvImmediate) {
2805 const int kSomeBaseValueToTestWith = 51; 2768 const int kSomeBaseValueToTestWith = 51;
2806 static GLfloat data[] = { 2769 static GLfloat data[] = {
2807 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2770 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
2808 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2771 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1),
2809 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2772 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2),
2810 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2773 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3),
2811 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4), 2774 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4),
2812 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5), 2775 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5),
2813 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6), 2776 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6),
2814 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7), 2777 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7),
2815 }; 2778 };
2816 int8 buf[256] = { 0, }; 2779 UniformMatrix2fvImmediate& cmd = *GetBufferAs<UniformMatrix2fvImmediate>();
2817 UniformMatrix2fvImmediate& cmd = 2780 const GLsizei kNumElements = 2;
2818 *static_cast<UniformMatrix2fvImmediate*>(static_cast<void*>(&buf)); 2781 const size_t kExpectedCmdSize =
2782 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 4;
2819 void* next_cmd = cmd.Set( 2783 void* next_cmd = cmd.Set(
2820 &cmd, 2784 &cmd,
2821 static_cast<GLint>(1), 2785 static_cast<GLint>(1),
2822 static_cast<GLsizei>(2), 2786 static_cast<GLsizei>(2),
2823 static_cast<GLboolean>(3), 2787 static_cast<GLboolean>(3),
2824 data); 2788 data);
2825 EXPECT_EQ(static_cast<uint32>(UniformMatrix2fvImmediate::kCmdId), 2789 EXPECT_EQ(static_cast<uint32>(UniformMatrix2fvImmediate::kCmdId),
2826 cmd.header.command); 2790 cmd.header.command);
2827 EXPECT_EQ(sizeof(cmd) + 2791 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2828 RoundSizeToMultipleOfEntries(sizeof(data)),
2829 cmd.header.size * 4u);
2830 EXPECT_EQ(static_cast<char*>(next_cmd),
2831 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2832 RoundSizeToMultipleOfEntries(sizeof(data)));
2833 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2792 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2834 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2793 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2835 EXPECT_EQ(static_cast<GLboolean>(3), cmd.transpose); 2794 EXPECT_EQ(static_cast<GLboolean>(3), cmd.transpose);
2795 CheckBytesWrittenMatchesExpectedSize(
2796 next_cmd, sizeof(cmd) +
2797 RoundSizeToMultipleOfEntries(sizeof(data)));
2836 // TODO(gman): Check that data was inserted; 2798 // TODO(gman): Check that data was inserted;
2837 } 2799 }
2838 2800
2839 TEST(GLES2FormatTest, UniformMatrix3fv) { 2801 TEST_F(GLES2FormatTest, UniformMatrix3fv) {
2840 UniformMatrix3fv cmd = { { 0 } }; 2802 UniformMatrix3fv& cmd = *GetBufferAs<UniformMatrix3fv>();
2841 void* next_cmd = cmd.Set( 2803 void* next_cmd = cmd.Set(
2842 &cmd, 2804 &cmd,
2843 static_cast<GLint>(11), 2805 static_cast<GLint>(11),
2844 static_cast<GLsizei>(12), 2806 static_cast<GLsizei>(12),
2845 static_cast<GLboolean>(13), 2807 static_cast<GLboolean>(13),
2846 static_cast<uint32>(14), 2808 static_cast<uint32>(14),
2847 static_cast<uint32>(15)); 2809 static_cast<uint32>(15));
2848 EXPECT_EQ(static_cast<uint32>(UniformMatrix3fv::kCmdId), 2810 EXPECT_EQ(static_cast<uint32>(UniformMatrix3fv::kCmdId),
2849 cmd.header.command); 2811 cmd.header.command);
2850 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2812 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2851 EXPECT_EQ(static_cast<char*>(next_cmd),
2852 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2853 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2813 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2854 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2814 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2855 EXPECT_EQ(static_cast<GLboolean>(13), cmd.transpose); 2815 EXPECT_EQ(static_cast<GLboolean>(13), cmd.transpose);
2856 EXPECT_EQ(static_cast<uint32>(14), cmd.value_shm_id); 2816 EXPECT_EQ(static_cast<uint32>(14), cmd.value_shm_id);
2857 EXPECT_EQ(static_cast<uint32>(15), cmd.value_shm_offset); 2817 EXPECT_EQ(static_cast<uint32>(15), cmd.value_shm_offset);
2818 CheckBytesWrittenMatchesExpectedSize(
2819 next_cmd, sizeof(cmd));
2858 } 2820 }
2859 2821
2860 TEST(GLES2FormatTest, UniformMatrix3fvImmediate) { 2822 TEST_F(GLES2FormatTest, UniformMatrix3fvImmediate) {
2861 const int kSomeBaseValueToTestWith = 51; 2823 const int kSomeBaseValueToTestWith = 51;
2862 static GLfloat data[] = { 2824 static GLfloat data[] = {
2863 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2825 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
2864 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2826 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1),
2865 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2827 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2),
2866 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2828 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3),
2867 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4), 2829 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4),
2868 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5), 2830 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5),
2869 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6), 2831 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6),
2870 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7), 2832 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7),
2871 static_cast<GLfloat>(kSomeBaseValueToTestWith + 8), 2833 static_cast<GLfloat>(kSomeBaseValueToTestWith + 8),
2872 static_cast<GLfloat>(kSomeBaseValueToTestWith + 9), 2834 static_cast<GLfloat>(kSomeBaseValueToTestWith + 9),
2873 static_cast<GLfloat>(kSomeBaseValueToTestWith + 10), 2835 static_cast<GLfloat>(kSomeBaseValueToTestWith + 10),
2874 static_cast<GLfloat>(kSomeBaseValueToTestWith + 11), 2836 static_cast<GLfloat>(kSomeBaseValueToTestWith + 11),
2875 static_cast<GLfloat>(kSomeBaseValueToTestWith + 12), 2837 static_cast<GLfloat>(kSomeBaseValueToTestWith + 12),
2876 static_cast<GLfloat>(kSomeBaseValueToTestWith + 13), 2838 static_cast<GLfloat>(kSomeBaseValueToTestWith + 13),
2877 static_cast<GLfloat>(kSomeBaseValueToTestWith + 14), 2839 static_cast<GLfloat>(kSomeBaseValueToTestWith + 14),
2878 static_cast<GLfloat>(kSomeBaseValueToTestWith + 15), 2840 static_cast<GLfloat>(kSomeBaseValueToTestWith + 15),
2879 static_cast<GLfloat>(kSomeBaseValueToTestWith + 16), 2841 static_cast<GLfloat>(kSomeBaseValueToTestWith + 16),
2880 static_cast<GLfloat>(kSomeBaseValueToTestWith + 17), 2842 static_cast<GLfloat>(kSomeBaseValueToTestWith + 17),
2881 }; 2843 };
2882 int8 buf[256] = { 0, }; 2844 UniformMatrix3fvImmediate& cmd = *GetBufferAs<UniformMatrix3fvImmediate>();
2883 UniformMatrix3fvImmediate& cmd = 2845 const GLsizei kNumElements = 2;
2884 *static_cast<UniformMatrix3fvImmediate*>(static_cast<void*>(&buf)); 2846 const size_t kExpectedCmdSize =
2847 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 9;
2885 void* next_cmd = cmd.Set( 2848 void* next_cmd = cmd.Set(
2886 &cmd, 2849 &cmd,
2887 static_cast<GLint>(1), 2850 static_cast<GLint>(1),
2888 static_cast<GLsizei>(2), 2851 static_cast<GLsizei>(2),
2889 static_cast<GLboolean>(3), 2852 static_cast<GLboolean>(3),
2890 data); 2853 data);
2891 EXPECT_EQ(static_cast<uint32>(UniformMatrix3fvImmediate::kCmdId), 2854 EXPECT_EQ(static_cast<uint32>(UniformMatrix3fvImmediate::kCmdId),
2892 cmd.header.command); 2855 cmd.header.command);
2893 EXPECT_EQ(sizeof(cmd) + 2856 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2894 RoundSizeToMultipleOfEntries(sizeof(data)),
2895 cmd.header.size * 4u);
2896 EXPECT_EQ(static_cast<char*>(next_cmd),
2897 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2898 RoundSizeToMultipleOfEntries(sizeof(data)));
2899 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2857 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2900 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2858 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2901 EXPECT_EQ(static_cast<GLboolean>(3), cmd.transpose); 2859 EXPECT_EQ(static_cast<GLboolean>(3), cmd.transpose);
2860 CheckBytesWrittenMatchesExpectedSize(
2861 next_cmd, sizeof(cmd) +
2862 RoundSizeToMultipleOfEntries(sizeof(data)));
2902 // TODO(gman): Check that data was inserted; 2863 // TODO(gman): Check that data was inserted;
2903 } 2864 }
2904 2865
2905 TEST(GLES2FormatTest, UniformMatrix4fv) { 2866 TEST_F(GLES2FormatTest, UniformMatrix4fv) {
2906 UniformMatrix4fv cmd = { { 0 } }; 2867 UniformMatrix4fv& cmd = *GetBufferAs<UniformMatrix4fv>();
2907 void* next_cmd = cmd.Set( 2868 void* next_cmd = cmd.Set(
2908 &cmd, 2869 &cmd,
2909 static_cast<GLint>(11), 2870 static_cast<GLint>(11),
2910 static_cast<GLsizei>(12), 2871 static_cast<GLsizei>(12),
2911 static_cast<GLboolean>(13), 2872 static_cast<GLboolean>(13),
2912 static_cast<uint32>(14), 2873 static_cast<uint32>(14),
2913 static_cast<uint32>(15)); 2874 static_cast<uint32>(15));
2914 EXPECT_EQ(static_cast<uint32>(UniformMatrix4fv::kCmdId), 2875 EXPECT_EQ(static_cast<uint32>(UniformMatrix4fv::kCmdId),
2915 cmd.header.command); 2876 cmd.header.command);
2916 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2877 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2917 EXPECT_EQ(static_cast<char*>(next_cmd),
2918 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2919 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2878 EXPECT_EQ(static_cast<GLint>(11), cmd.location);
2920 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2879 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
2921 EXPECT_EQ(static_cast<GLboolean>(13), cmd.transpose); 2880 EXPECT_EQ(static_cast<GLboolean>(13), cmd.transpose);
2922 EXPECT_EQ(static_cast<uint32>(14), cmd.value_shm_id); 2881 EXPECT_EQ(static_cast<uint32>(14), cmd.value_shm_id);
2923 EXPECT_EQ(static_cast<uint32>(15), cmd.value_shm_offset); 2882 EXPECT_EQ(static_cast<uint32>(15), cmd.value_shm_offset);
2883 CheckBytesWrittenMatchesExpectedSize(
2884 next_cmd, sizeof(cmd));
2924 } 2885 }
2925 2886
2926 TEST(GLES2FormatTest, UniformMatrix4fvImmediate) { 2887 TEST_F(GLES2FormatTest, UniformMatrix4fvImmediate) {
2927 const int kSomeBaseValueToTestWith = 51; 2888 const int kSomeBaseValueToTestWith = 51;
2928 static GLfloat data[] = { 2889 static GLfloat data[] = {
2929 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2890 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
2930 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2891 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1),
2931 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2892 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2),
2932 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2893 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3),
2933 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4), 2894 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4),
2934 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5), 2895 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5),
2935 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6), 2896 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6),
2936 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7), 2897 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7),
(...skipping 15 matching lines...) Expand all
2952 static_cast<GLfloat>(kSomeBaseValueToTestWith + 23), 2913 static_cast<GLfloat>(kSomeBaseValueToTestWith + 23),
2953 static_cast<GLfloat>(kSomeBaseValueToTestWith + 24), 2914 static_cast<GLfloat>(kSomeBaseValueToTestWith + 24),
2954 static_cast<GLfloat>(kSomeBaseValueToTestWith + 25), 2915 static_cast<GLfloat>(kSomeBaseValueToTestWith + 25),
2955 static_cast<GLfloat>(kSomeBaseValueToTestWith + 26), 2916 static_cast<GLfloat>(kSomeBaseValueToTestWith + 26),
2956 static_cast<GLfloat>(kSomeBaseValueToTestWith + 27), 2917 static_cast<GLfloat>(kSomeBaseValueToTestWith + 27),
2957 static_cast<GLfloat>(kSomeBaseValueToTestWith + 28), 2918 static_cast<GLfloat>(kSomeBaseValueToTestWith + 28),
2958 static_cast<GLfloat>(kSomeBaseValueToTestWith + 29), 2919 static_cast<GLfloat>(kSomeBaseValueToTestWith + 29),
2959 static_cast<GLfloat>(kSomeBaseValueToTestWith + 30), 2920 static_cast<GLfloat>(kSomeBaseValueToTestWith + 30),
2960 static_cast<GLfloat>(kSomeBaseValueToTestWith + 31), 2921 static_cast<GLfloat>(kSomeBaseValueToTestWith + 31),
2961 }; 2922 };
2962 int8 buf[256] = { 0, }; 2923 UniformMatrix4fvImmediate& cmd = *GetBufferAs<UniformMatrix4fvImmediate>();
2963 UniformMatrix4fvImmediate& cmd = 2924 const GLsizei kNumElements = 2;
2964 *static_cast<UniformMatrix4fvImmediate*>(static_cast<void*>(&buf)); 2925 const size_t kExpectedCmdSize =
2926 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 16;
2965 void* next_cmd = cmd.Set( 2927 void* next_cmd = cmd.Set(
2966 &cmd, 2928 &cmd,
2967 static_cast<GLint>(1), 2929 static_cast<GLint>(1),
2968 static_cast<GLsizei>(2), 2930 static_cast<GLsizei>(2),
2969 static_cast<GLboolean>(3), 2931 static_cast<GLboolean>(3),
2970 data); 2932 data);
2971 EXPECT_EQ(static_cast<uint32>(UniformMatrix4fvImmediate::kCmdId), 2933 EXPECT_EQ(static_cast<uint32>(UniformMatrix4fvImmediate::kCmdId),
2972 cmd.header.command); 2934 cmd.header.command);
2973 EXPECT_EQ(sizeof(cmd) + 2935 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);
2974 RoundSizeToMultipleOfEntries(sizeof(data)),
2975 cmd.header.size * 4u);
2976 EXPECT_EQ(static_cast<char*>(next_cmd),
2977 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
2978 RoundSizeToMultipleOfEntries(sizeof(data)));
2979 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2936 EXPECT_EQ(static_cast<GLint>(1), cmd.location);
2980 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2937 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count);
2981 EXPECT_EQ(static_cast<GLboolean>(3), cmd.transpose); 2938 EXPECT_EQ(static_cast<GLboolean>(3), cmd.transpose);
2939 CheckBytesWrittenMatchesExpectedSize(
2940 next_cmd, sizeof(cmd) +
2941 RoundSizeToMultipleOfEntries(sizeof(data)));
2982 // TODO(gman): Check that data was inserted; 2942 // TODO(gman): Check that data was inserted;
2983 } 2943 }
2984 2944
2985 TEST(GLES2FormatTest, UseProgram) { 2945 TEST_F(GLES2FormatTest, UseProgram) {
2986 UseProgram cmd = { { 0 } }; 2946 UseProgram& cmd = *GetBufferAs<UseProgram>();
2987 void* next_cmd = cmd.Set( 2947 void* next_cmd = cmd.Set(
2988 &cmd, 2948 &cmd,
2989 static_cast<GLuint>(11)); 2949 static_cast<GLuint>(11));
2990 EXPECT_EQ(static_cast<uint32>(UseProgram::kCmdId), 2950 EXPECT_EQ(static_cast<uint32>(UseProgram::kCmdId),
2991 cmd.header.command); 2951 cmd.header.command);
2992 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2952 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
2993 EXPECT_EQ(static_cast<char*>(next_cmd),
2994 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
2995 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 2953 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
2954 CheckBytesWrittenMatchesExpectedSize(
2955 next_cmd, sizeof(cmd));
2996 } 2956 }
2997 2957
2998 TEST(GLES2FormatTest, ValidateProgram) { 2958 TEST_F(GLES2FormatTest, ValidateProgram) {
2999 ValidateProgram cmd = { { 0 } }; 2959 ValidateProgram& cmd = *GetBufferAs<ValidateProgram>();
3000 void* next_cmd = cmd.Set( 2960 void* next_cmd = cmd.Set(
3001 &cmd, 2961 &cmd,
3002 static_cast<GLuint>(11)); 2962 static_cast<GLuint>(11));
3003 EXPECT_EQ(static_cast<uint32>(ValidateProgram::kCmdId), 2963 EXPECT_EQ(static_cast<uint32>(ValidateProgram::kCmdId),
3004 cmd.header.command); 2964 cmd.header.command);
3005 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2965 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3006 EXPECT_EQ(static_cast<char*>(next_cmd),
3007 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3008 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 2966 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
2967 CheckBytesWrittenMatchesExpectedSize(
2968 next_cmd, sizeof(cmd));
3009 } 2969 }
3010 2970
3011 TEST(GLES2FormatTest, VertexAttrib1f) { 2971 TEST_F(GLES2FormatTest, VertexAttrib1f) {
3012 VertexAttrib1f cmd = { { 0 } }; 2972 VertexAttrib1f& cmd = *GetBufferAs<VertexAttrib1f>();
3013 void* next_cmd = cmd.Set( 2973 void* next_cmd = cmd.Set(
3014 &cmd, 2974 &cmd,
3015 static_cast<GLuint>(11), 2975 static_cast<GLuint>(11),
3016 static_cast<GLfloat>(12)); 2976 static_cast<GLfloat>(12));
3017 EXPECT_EQ(static_cast<uint32>(VertexAttrib1f::kCmdId), 2977 EXPECT_EQ(static_cast<uint32>(VertexAttrib1f::kCmdId),
3018 cmd.header.command); 2978 cmd.header.command);
3019 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2979 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3020 EXPECT_EQ(static_cast<char*>(next_cmd),
3021 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3022 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2980 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3023 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2981 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x);
2982 CheckBytesWrittenMatchesExpectedSize(
2983 next_cmd, sizeof(cmd));
3024 } 2984 }
3025 2985
3026 TEST(GLES2FormatTest, VertexAttrib1fv) { 2986 TEST_F(GLES2FormatTest, VertexAttrib1fv) {
3027 VertexAttrib1fv cmd = { { 0 } }; 2987 VertexAttrib1fv& cmd = *GetBufferAs<VertexAttrib1fv>();
3028 void* next_cmd = cmd.Set( 2988 void* next_cmd = cmd.Set(
3029 &cmd, 2989 &cmd,
3030 static_cast<GLuint>(11), 2990 static_cast<GLuint>(11),
3031 static_cast<uint32>(12), 2991 static_cast<uint32>(12),
3032 static_cast<uint32>(13)); 2992 static_cast<uint32>(13));
3033 EXPECT_EQ(static_cast<uint32>(VertexAttrib1fv::kCmdId), 2993 EXPECT_EQ(static_cast<uint32>(VertexAttrib1fv::kCmdId),
3034 cmd.header.command); 2994 cmd.header.command);
3035 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2995 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3036 EXPECT_EQ(static_cast<char*>(next_cmd),
3037 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3038 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2996 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3039 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id); 2997 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id);
3040 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset); 2998 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset);
2999 CheckBytesWrittenMatchesExpectedSize(
3000 next_cmd, sizeof(cmd));
3041 } 3001 }
3042 3002
3043 TEST(GLES2FormatTest, VertexAttrib1fvImmediate) { 3003 TEST_F(GLES2FormatTest, VertexAttrib1fvImmediate) {
3044 const int kSomeBaseValueToTestWith = 51; 3004 const int kSomeBaseValueToTestWith = 51;
3045 static GLfloat data[] = { 3005 static GLfloat data[] = {
3046 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 3006 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
3047 }; 3007 };
3048 int8 buf[256] = { 0, }; 3008 VertexAttrib1fvImmediate& cmd = *GetBufferAs<VertexAttrib1fvImmediate>();
3049 VertexAttrib1fvImmediate& cmd =
3050 *static_cast<VertexAttrib1fvImmediate*>(static_cast<void*>(&buf));
3051 void* next_cmd = cmd.Set( 3009 void* next_cmd = cmd.Set(
3052 &cmd, 3010 &cmd,
3053 static_cast<GLuint>(11), 3011 static_cast<GLuint>(11),
3054 data); 3012 data);
3055 EXPECT_EQ(static_cast<uint32>(VertexAttrib1fvImmediate::kCmdId), 3013 EXPECT_EQ(static_cast<uint32>(VertexAttrib1fvImmediate::kCmdId),
3056 cmd.header.command); 3014 cmd.header.command);
3057 EXPECT_EQ(sizeof(cmd) + 3015 EXPECT_EQ(sizeof(cmd) +
3058 RoundSizeToMultipleOfEntries(sizeof(data)), 3016 RoundSizeToMultipleOfEntries(sizeof(data)),
3059 cmd.header.size * 4u); 3017 cmd.header.size * 4u);
3060 EXPECT_EQ(static_cast<char*>(next_cmd),
3061 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
3062 RoundSizeToMultipleOfEntries(sizeof(data)));
3063 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3018 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3019 CheckBytesWrittenMatchesExpectedSize(
3020 next_cmd, sizeof(cmd) +
3021 RoundSizeToMultipleOfEntries(sizeof(data)));
3064 // TODO(gman): Check that data was inserted; 3022 // TODO(gman): Check that data was inserted;
3065 } 3023 }
3066 3024
3067 TEST(GLES2FormatTest, VertexAttrib2f) { 3025 TEST_F(GLES2FormatTest, VertexAttrib2f) {
3068 VertexAttrib2f cmd = { { 0 } }; 3026 VertexAttrib2f& cmd = *GetBufferAs<VertexAttrib2f>();
3069 void* next_cmd = cmd.Set( 3027 void* next_cmd = cmd.Set(
3070 &cmd, 3028 &cmd,
3071 static_cast<GLuint>(11), 3029 static_cast<GLuint>(11),
3072 static_cast<GLfloat>(12), 3030 static_cast<GLfloat>(12),
3073 static_cast<GLfloat>(13)); 3031 static_cast<GLfloat>(13));
3074 EXPECT_EQ(static_cast<uint32>(VertexAttrib2f::kCmdId), 3032 EXPECT_EQ(static_cast<uint32>(VertexAttrib2f::kCmdId),
3075 cmd.header.command); 3033 cmd.header.command);
3076 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3034 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3077 EXPECT_EQ(static_cast<char*>(next_cmd),
3078 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3079 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3035 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3080 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 3036 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x);
3081 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 3037 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y);
3038 CheckBytesWrittenMatchesExpectedSize(
3039 next_cmd, sizeof(cmd));
3082 } 3040 }
3083 3041
3084 TEST(GLES2FormatTest, VertexAttrib2fv) { 3042 TEST_F(GLES2FormatTest, VertexAttrib2fv) {
3085 VertexAttrib2fv cmd = { { 0 } }; 3043 VertexAttrib2fv& cmd = *GetBufferAs<VertexAttrib2fv>();
3086 void* next_cmd = cmd.Set( 3044 void* next_cmd = cmd.Set(
3087 &cmd, 3045 &cmd,
3088 static_cast<GLuint>(11), 3046 static_cast<GLuint>(11),
3089 static_cast<uint32>(12), 3047 static_cast<uint32>(12),
3090 static_cast<uint32>(13)); 3048 static_cast<uint32>(13));
3091 EXPECT_EQ(static_cast<uint32>(VertexAttrib2fv::kCmdId), 3049 EXPECT_EQ(static_cast<uint32>(VertexAttrib2fv::kCmdId),
3092 cmd.header.command); 3050 cmd.header.command);
3093 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3051 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3094 EXPECT_EQ(static_cast<char*>(next_cmd),
3095 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3096 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3052 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3097 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id); 3053 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id);
3098 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset); 3054 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset);
3055 CheckBytesWrittenMatchesExpectedSize(
3056 next_cmd, sizeof(cmd));
3099 } 3057 }
3100 3058
3101 TEST(GLES2FormatTest, VertexAttrib2fvImmediate) { 3059 TEST_F(GLES2FormatTest, VertexAttrib2fvImmediate) {
3102 const int kSomeBaseValueToTestWith = 51; 3060 const int kSomeBaseValueToTestWith = 51;
3103 static GLfloat data[] = { 3061 static GLfloat data[] = {
3104 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 3062 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
3105 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 3063 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1),
3106 }; 3064 };
3107 int8 buf[256] = { 0, }; 3065 VertexAttrib2fvImmediate& cmd = *GetBufferAs<VertexAttrib2fvImmediate>();
3108 VertexAttrib2fvImmediate& cmd =
3109 *static_cast<VertexAttrib2fvImmediate*>(static_cast<void*>(&buf));
3110 void* next_cmd = cmd.Set( 3066 void* next_cmd = cmd.Set(
3111 &cmd, 3067 &cmd,
3112 static_cast<GLuint>(11), 3068 static_cast<GLuint>(11),
3113 data); 3069 data);
3114 EXPECT_EQ(static_cast<uint32>(VertexAttrib2fvImmediate::kCmdId), 3070 EXPECT_EQ(static_cast<uint32>(VertexAttrib2fvImmediate::kCmdId),
3115 cmd.header.command); 3071 cmd.header.command);
3116 EXPECT_EQ(sizeof(cmd) + 3072 EXPECT_EQ(sizeof(cmd) +
3117 RoundSizeToMultipleOfEntries(sizeof(data)), 3073 RoundSizeToMultipleOfEntries(sizeof(data)),
3118 cmd.header.size * 4u); 3074 cmd.header.size * 4u);
3119 EXPECT_EQ(static_cast<char*>(next_cmd),
3120 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
3121 RoundSizeToMultipleOfEntries(sizeof(data)));
3122 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3075 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3076 CheckBytesWrittenMatchesExpectedSize(
3077 next_cmd, sizeof(cmd) +
3078 RoundSizeToMultipleOfEntries(sizeof(data)));
3123 // TODO(gman): Check that data was inserted; 3079 // TODO(gman): Check that data was inserted;
3124 } 3080 }
3125 3081
3126 TEST(GLES2FormatTest, VertexAttrib3f) { 3082 TEST_F(GLES2FormatTest, VertexAttrib3f) {
3127 VertexAttrib3f cmd = { { 0 } }; 3083 VertexAttrib3f& cmd = *GetBufferAs<VertexAttrib3f>();
3128 void* next_cmd = cmd.Set( 3084 void* next_cmd = cmd.Set(
3129 &cmd, 3085 &cmd,
3130 static_cast<GLuint>(11), 3086 static_cast<GLuint>(11),
3131 static_cast<GLfloat>(12), 3087 static_cast<GLfloat>(12),
3132 static_cast<GLfloat>(13), 3088 static_cast<GLfloat>(13),
3133 static_cast<GLfloat>(14)); 3089 static_cast<GLfloat>(14));
3134 EXPECT_EQ(static_cast<uint32>(VertexAttrib3f::kCmdId), 3090 EXPECT_EQ(static_cast<uint32>(VertexAttrib3f::kCmdId),
3135 cmd.header.command); 3091 cmd.header.command);
3136 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3092 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3137 EXPECT_EQ(static_cast<char*>(next_cmd),
3138 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3139 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3093 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3140 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 3094 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x);
3141 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 3095 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y);
3142 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z); 3096 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z);
3097 CheckBytesWrittenMatchesExpectedSize(
3098 next_cmd, sizeof(cmd));
3143 } 3099 }
3144 3100
3145 TEST(GLES2FormatTest, VertexAttrib3fv) { 3101 TEST_F(GLES2FormatTest, VertexAttrib3fv) {
3146 VertexAttrib3fv cmd = { { 0 } }; 3102 VertexAttrib3fv& cmd = *GetBufferAs<VertexAttrib3fv>();
3147 void* next_cmd = cmd.Set( 3103 void* next_cmd = cmd.Set(
3148 &cmd, 3104 &cmd,
3149 static_cast<GLuint>(11), 3105 static_cast<GLuint>(11),
3150 static_cast<uint32>(12), 3106 static_cast<uint32>(12),
3151 static_cast<uint32>(13)); 3107 static_cast<uint32>(13));
3152 EXPECT_EQ(static_cast<uint32>(VertexAttrib3fv::kCmdId), 3108 EXPECT_EQ(static_cast<uint32>(VertexAttrib3fv::kCmdId),
3153 cmd.header.command); 3109 cmd.header.command);
3154 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3110 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3155 EXPECT_EQ(static_cast<char*>(next_cmd),
3156 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3157 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3111 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3158 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id); 3112 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id);
3159 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset); 3113 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset);
3114 CheckBytesWrittenMatchesExpectedSize(
3115 next_cmd, sizeof(cmd));
3160 } 3116 }
3161 3117
3162 TEST(GLES2FormatTest, VertexAttrib3fvImmediate) { 3118 TEST_F(GLES2FormatTest, VertexAttrib3fvImmediate) {
3163 const int kSomeBaseValueToTestWith = 51; 3119 const int kSomeBaseValueToTestWith = 51;
3164 static GLfloat data[] = { 3120 static GLfloat data[] = {
3165 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 3121 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
3166 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 3122 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1),
3167 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 3123 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2),
3168 }; 3124 };
3169 int8 buf[256] = { 0, }; 3125 VertexAttrib3fvImmediate& cmd = *GetBufferAs<VertexAttrib3fvImmediate>();
3170 VertexAttrib3fvImmediate& cmd =
3171 *static_cast<VertexAttrib3fvImmediate*>(static_cast<void*>(&buf));
3172 void* next_cmd = cmd.Set( 3126 void* next_cmd = cmd.Set(
3173 &cmd, 3127 &cmd,
3174 static_cast<GLuint>(11), 3128 static_cast<GLuint>(11),
3175 data); 3129 data);
3176 EXPECT_EQ(static_cast<uint32>(VertexAttrib3fvImmediate::kCmdId), 3130 EXPECT_EQ(static_cast<uint32>(VertexAttrib3fvImmediate::kCmdId),
3177 cmd.header.command); 3131 cmd.header.command);
3178 EXPECT_EQ(sizeof(cmd) + 3132 EXPECT_EQ(sizeof(cmd) +
3179 RoundSizeToMultipleOfEntries(sizeof(data)), 3133 RoundSizeToMultipleOfEntries(sizeof(data)),
3180 cmd.header.size * 4u); 3134 cmd.header.size * 4u);
3181 EXPECT_EQ(static_cast<char*>(next_cmd),
3182 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
3183 RoundSizeToMultipleOfEntries(sizeof(data)));
3184 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3135 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3136 CheckBytesWrittenMatchesExpectedSize(
3137 next_cmd, sizeof(cmd) +
3138 RoundSizeToMultipleOfEntries(sizeof(data)));
3185 // TODO(gman): Check that data was inserted; 3139 // TODO(gman): Check that data was inserted;
3186 } 3140 }
3187 3141
3188 TEST(GLES2FormatTest, VertexAttrib4f) { 3142 TEST_F(GLES2FormatTest, VertexAttrib4f) {
3189 VertexAttrib4f cmd = { { 0 } }; 3143 VertexAttrib4f& cmd = *GetBufferAs<VertexAttrib4f>();
3190 void* next_cmd = cmd.Set( 3144 void* next_cmd = cmd.Set(
3191 &cmd, 3145 &cmd,
3192 static_cast<GLuint>(11), 3146 static_cast<GLuint>(11),
3193 static_cast<GLfloat>(12), 3147 static_cast<GLfloat>(12),
3194 static_cast<GLfloat>(13), 3148 static_cast<GLfloat>(13),
3195 static_cast<GLfloat>(14), 3149 static_cast<GLfloat>(14),
3196 static_cast<GLfloat>(15)); 3150 static_cast<GLfloat>(15));
3197 EXPECT_EQ(static_cast<uint32>(VertexAttrib4f::kCmdId), 3151 EXPECT_EQ(static_cast<uint32>(VertexAttrib4f::kCmdId),
3198 cmd.header.command); 3152 cmd.header.command);
3199 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3153 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3200 EXPECT_EQ(static_cast<char*>(next_cmd),
3201 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3202 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3154 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3203 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 3155 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x);
3204 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 3156 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y);
3205 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z); 3157 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z);
3206 EXPECT_EQ(static_cast<GLfloat>(15), cmd.w); 3158 EXPECT_EQ(static_cast<GLfloat>(15), cmd.w);
3159 CheckBytesWrittenMatchesExpectedSize(
3160 next_cmd, sizeof(cmd));
3207 } 3161 }
3208 3162
3209 TEST(GLES2FormatTest, VertexAttrib4fv) { 3163 TEST_F(GLES2FormatTest, VertexAttrib4fv) {
3210 VertexAttrib4fv cmd = { { 0 } }; 3164 VertexAttrib4fv& cmd = *GetBufferAs<VertexAttrib4fv>();
3211 void* next_cmd = cmd.Set( 3165 void* next_cmd = cmd.Set(
3212 &cmd, 3166 &cmd,
3213 static_cast<GLuint>(11), 3167 static_cast<GLuint>(11),
3214 static_cast<uint32>(12), 3168 static_cast<uint32>(12),
3215 static_cast<uint32>(13)); 3169 static_cast<uint32>(13));
3216 EXPECT_EQ(static_cast<uint32>(VertexAttrib4fv::kCmdId), 3170 EXPECT_EQ(static_cast<uint32>(VertexAttrib4fv::kCmdId),
3217 cmd.header.command); 3171 cmd.header.command);
3218 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3172 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3219 EXPECT_EQ(static_cast<char*>(next_cmd),
3220 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3221 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3173 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3222 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id); 3174 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id);
3223 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset); 3175 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset);
3176 CheckBytesWrittenMatchesExpectedSize(
3177 next_cmd, sizeof(cmd));
3224 } 3178 }
3225 3179
3226 TEST(GLES2FormatTest, VertexAttrib4fvImmediate) { 3180 TEST_F(GLES2FormatTest, VertexAttrib4fvImmediate) {
3227 const int kSomeBaseValueToTestWith = 51; 3181 const int kSomeBaseValueToTestWith = 51;
3228 static GLfloat data[] = { 3182 static GLfloat data[] = {
3229 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 3183 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0),
3230 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 3184 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1),
3231 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 3185 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2),
3232 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 3186 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3),
3233 }; 3187 };
3234 int8 buf[256] = { 0, }; 3188 VertexAttrib4fvImmediate& cmd = *GetBufferAs<VertexAttrib4fvImmediate>();
3235 VertexAttrib4fvImmediate& cmd =
3236 *static_cast<VertexAttrib4fvImmediate*>(static_cast<void*>(&buf));
3237 void* next_cmd = cmd.Set( 3189 void* next_cmd = cmd.Set(
3238 &cmd, 3190 &cmd,
3239 static_cast<GLuint>(11), 3191 static_cast<GLuint>(11),
3240 data); 3192 data);
3241 EXPECT_EQ(static_cast<uint32>(VertexAttrib4fvImmediate::kCmdId), 3193 EXPECT_EQ(static_cast<uint32>(VertexAttrib4fvImmediate::kCmdId),
3242 cmd.header.command); 3194 cmd.header.command);
3243 EXPECT_EQ(sizeof(cmd) + 3195 EXPECT_EQ(sizeof(cmd) +
3244 RoundSizeToMultipleOfEntries(sizeof(data)), 3196 RoundSizeToMultipleOfEntries(sizeof(data)),
3245 cmd.header.size * 4u); 3197 cmd.header.size * 4u);
3246 EXPECT_EQ(static_cast<char*>(next_cmd),
3247 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
3248 RoundSizeToMultipleOfEntries(sizeof(data)));
3249 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3198 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3199 CheckBytesWrittenMatchesExpectedSize(
3200 next_cmd, sizeof(cmd) +
3201 RoundSizeToMultipleOfEntries(sizeof(data)));
3250 // TODO(gman): Check that data was inserted; 3202 // TODO(gman): Check that data was inserted;
3251 } 3203 }
3252 3204
3253 TEST(GLES2FormatTest, VertexAttribPointer) { 3205 TEST_F(GLES2FormatTest, VertexAttribPointer) {
3254 VertexAttribPointer cmd = { { 0 } }; 3206 VertexAttribPointer& cmd = *GetBufferAs<VertexAttribPointer>();
3255 void* next_cmd = cmd.Set( 3207 void* next_cmd = cmd.Set(
3256 &cmd, 3208 &cmd,
3257 static_cast<GLuint>(11), 3209 static_cast<GLuint>(11),
3258 static_cast<GLint>(12), 3210 static_cast<GLint>(12),
3259 static_cast<GLenum>(13), 3211 static_cast<GLenum>(13),
3260 static_cast<GLboolean>(14), 3212 static_cast<GLboolean>(14),
3261 static_cast<GLsizei>(15), 3213 static_cast<GLsizei>(15),
3262 static_cast<GLuint>(16)); 3214 static_cast<GLuint>(16));
3263 EXPECT_EQ(static_cast<uint32>(VertexAttribPointer::kCmdId), 3215 EXPECT_EQ(static_cast<uint32>(VertexAttribPointer::kCmdId),
3264 cmd.header.command); 3216 cmd.header.command);
3265 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3217 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3266 EXPECT_EQ(static_cast<char*>(next_cmd),
3267 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3268 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 3218 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx);
3269 EXPECT_EQ(static_cast<GLint>(12), cmd.size); 3219 EXPECT_EQ(static_cast<GLint>(12), cmd.size);
3270 EXPECT_EQ(static_cast<GLenum>(13), cmd.type); 3220 EXPECT_EQ(static_cast<GLenum>(13), cmd.type);
3271 EXPECT_EQ(static_cast<GLboolean>(14), cmd.normalized); 3221 EXPECT_EQ(static_cast<GLboolean>(14), cmd.normalized);
3272 EXPECT_EQ(static_cast<GLsizei>(15), cmd.stride); 3222 EXPECT_EQ(static_cast<GLsizei>(15), cmd.stride);
3273 EXPECT_EQ(static_cast<GLuint>(16), cmd.offset); 3223 EXPECT_EQ(static_cast<GLuint>(16), cmd.offset);
3224 CheckBytesWrittenMatchesExpectedSize(
3225 next_cmd, sizeof(cmd));
3274 } 3226 }
3275 3227
3276 TEST(GLES2FormatTest, Viewport) { 3228 TEST_F(GLES2FormatTest, Viewport) {
3277 Viewport cmd = { { 0 } }; 3229 Viewport& cmd = *GetBufferAs<Viewport>();
3278 void* next_cmd = cmd.Set( 3230 void* next_cmd = cmd.Set(
3279 &cmd, 3231 &cmd,
3280 static_cast<GLint>(11), 3232 static_cast<GLint>(11),
3281 static_cast<GLint>(12), 3233 static_cast<GLint>(12),
3282 static_cast<GLsizei>(13), 3234 static_cast<GLsizei>(13),
3283 static_cast<GLsizei>(14)); 3235 static_cast<GLsizei>(14));
3284 EXPECT_EQ(static_cast<uint32>(Viewport::kCmdId), 3236 EXPECT_EQ(static_cast<uint32>(Viewport::kCmdId),
3285 cmd.header.command); 3237 cmd.header.command);
3286 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3238 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3287 EXPECT_EQ(static_cast<char*>(next_cmd),
3288 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3289 EXPECT_EQ(static_cast<GLint>(11), cmd.x); 3239 EXPECT_EQ(static_cast<GLint>(11), cmd.x);
3290 EXPECT_EQ(static_cast<GLint>(12), cmd.y); 3240 EXPECT_EQ(static_cast<GLint>(12), cmd.y);
3291 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width); 3241 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width);
3292 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height); 3242 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height);
3243 CheckBytesWrittenMatchesExpectedSize(
3244 next_cmd, sizeof(cmd));
3293 } 3245 }
3294 3246
3295 TEST(GLES2FormatTest, BlitFramebufferEXT) { 3247 TEST_F(GLES2FormatTest, BlitFramebufferEXT) {
3296 BlitFramebufferEXT cmd = { { 0 } }; 3248 BlitFramebufferEXT& cmd = *GetBufferAs<BlitFramebufferEXT>();
3297 void* next_cmd = cmd.Set( 3249 void* next_cmd = cmd.Set(
3298 &cmd, 3250 &cmd,
3299 static_cast<GLint>(11), 3251 static_cast<GLint>(11),
3300 static_cast<GLint>(12), 3252 static_cast<GLint>(12),
3301 static_cast<GLint>(13), 3253 static_cast<GLint>(13),
3302 static_cast<GLint>(14), 3254 static_cast<GLint>(14),
3303 static_cast<GLint>(15), 3255 static_cast<GLint>(15),
3304 static_cast<GLint>(16), 3256 static_cast<GLint>(16),
3305 static_cast<GLint>(17), 3257 static_cast<GLint>(17),
3306 static_cast<GLint>(18), 3258 static_cast<GLint>(18),
3307 static_cast<GLbitfield>(19), 3259 static_cast<GLbitfield>(19),
3308 static_cast<GLenum>(20)); 3260 static_cast<GLenum>(20));
3309 EXPECT_EQ(static_cast<uint32>(BlitFramebufferEXT::kCmdId), 3261 EXPECT_EQ(static_cast<uint32>(BlitFramebufferEXT::kCmdId),
3310 cmd.header.command); 3262 cmd.header.command);
3311 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3263 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3312 EXPECT_EQ(static_cast<char*>(next_cmd),
3313 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3314 EXPECT_EQ(static_cast<GLint>(11), cmd.srcX0); 3264 EXPECT_EQ(static_cast<GLint>(11), cmd.srcX0);
3315 EXPECT_EQ(static_cast<GLint>(12), cmd.srcY0); 3265 EXPECT_EQ(static_cast<GLint>(12), cmd.srcY0);
3316 EXPECT_EQ(static_cast<GLint>(13), cmd.srcX1); 3266 EXPECT_EQ(static_cast<GLint>(13), cmd.srcX1);
3317 EXPECT_EQ(static_cast<GLint>(14), cmd.srcY1); 3267 EXPECT_EQ(static_cast<GLint>(14), cmd.srcY1);
3318 EXPECT_EQ(static_cast<GLint>(15), cmd.dstX0); 3268 EXPECT_EQ(static_cast<GLint>(15), cmd.dstX0);
3319 EXPECT_EQ(static_cast<GLint>(16), cmd.dstY0); 3269 EXPECT_EQ(static_cast<GLint>(16), cmd.dstY0);
3320 EXPECT_EQ(static_cast<GLint>(17), cmd.dstX1); 3270 EXPECT_EQ(static_cast<GLint>(17), cmd.dstX1);
3321 EXPECT_EQ(static_cast<GLint>(18), cmd.dstY1); 3271 EXPECT_EQ(static_cast<GLint>(18), cmd.dstY1);
3322 EXPECT_EQ(static_cast<GLbitfield>(19), cmd.mask); 3272 EXPECT_EQ(static_cast<GLbitfield>(19), cmd.mask);
3323 EXPECT_EQ(static_cast<GLenum>(20), cmd.filter); 3273 EXPECT_EQ(static_cast<GLenum>(20), cmd.filter);
3274 CheckBytesWrittenMatchesExpectedSize(
3275 next_cmd, sizeof(cmd));
3324 } 3276 }
3325 3277
3326 TEST(GLES2FormatTest, RenderbufferStorageMultisampleEXT) { 3278 TEST_F(GLES2FormatTest, RenderbufferStorageMultisampleEXT) {
3327 RenderbufferStorageMultisampleEXT cmd = { { 0 } }; 3279 RenderbufferStorageMultisampleEXT& cmd =
3280 *GetBufferAs<RenderbufferStorageMultisampleEXT>();
3328 void* next_cmd = cmd.Set( 3281 void* next_cmd = cmd.Set(
3329 &cmd, 3282 &cmd,
3330 static_cast<GLenum>(11), 3283 static_cast<GLenum>(11),
3331 static_cast<GLsizei>(12), 3284 static_cast<GLsizei>(12),
3332 static_cast<GLenum>(13), 3285 static_cast<GLenum>(13),
3333 static_cast<GLsizei>(14), 3286 static_cast<GLsizei>(14),
3334 static_cast<GLsizei>(15)); 3287 static_cast<GLsizei>(15));
3335 EXPECT_EQ(static_cast<uint32>(RenderbufferStorageMultisampleEXT::kCmdId), 3288 EXPECT_EQ(static_cast<uint32>(RenderbufferStorageMultisampleEXT::kCmdId),
3336 cmd.header.command); 3289 cmd.header.command);
3337 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3290 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3338 EXPECT_EQ(static_cast<char*>(next_cmd),
3339 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3340 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3291 EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
3341 EXPECT_EQ(static_cast<GLsizei>(12), cmd.samples); 3292 EXPECT_EQ(static_cast<GLsizei>(12), cmd.samples);
3342 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat); 3293 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat);
3343 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 3294 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width);
3344 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 3295 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height);
3296 CheckBytesWrittenMatchesExpectedSize(
3297 next_cmd, sizeof(cmd));
3345 } 3298 }
3346 3299
3347 TEST(GLES2FormatTest, SwapBuffers) { 3300 TEST_F(GLES2FormatTest, SwapBuffers) {
3348 SwapBuffers cmd = { { 0 } }; 3301 SwapBuffers& cmd = *GetBufferAs<SwapBuffers>();
3349 void* next_cmd = cmd.Set( 3302 void* next_cmd = cmd.Set(
3350 &cmd); 3303 &cmd);
3351 EXPECT_EQ(static_cast<uint32>(SwapBuffers::kCmdId), 3304 EXPECT_EQ(static_cast<uint32>(SwapBuffers::kCmdId),
3352 cmd.header.command); 3305 cmd.header.command);
3353 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3306 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3354 EXPECT_EQ(static_cast<char*>(next_cmd), 3307 CheckBytesWrittenMatchesExpectedSize(
3355 reinterpret_cast<char*>(&cmd) + sizeof(cmd)); 3308 next_cmd, sizeof(cmd));
3356 } 3309 }
3357 3310
3358 TEST(GLES2FormatTest, GetMaxValueInBufferCHROMIUM) { 3311 TEST_F(GLES2FormatTest, GetMaxValueInBufferCHROMIUM) {
3359 GetMaxValueInBufferCHROMIUM cmd = { { 0 } }; 3312 GetMaxValueInBufferCHROMIUM& cmd =
3313 *GetBufferAs<GetMaxValueInBufferCHROMIUM>();
3360 void* next_cmd = cmd.Set( 3314 void* next_cmd = cmd.Set(
3361 &cmd, 3315 &cmd,
3362 static_cast<GLuint>(11), 3316 static_cast<GLuint>(11),
3363 static_cast<GLsizei>(12), 3317 static_cast<GLsizei>(12),
3364 static_cast<GLenum>(13), 3318 static_cast<GLenum>(13),
3365 static_cast<GLuint>(14), 3319 static_cast<GLuint>(14),
3366 static_cast<uint32>(15), 3320 static_cast<uint32>(15),
3367 static_cast<uint32>(16)); 3321 static_cast<uint32>(16));
3368 EXPECT_EQ(static_cast<uint32>(GetMaxValueInBufferCHROMIUM::kCmdId), 3322 EXPECT_EQ(static_cast<uint32>(GetMaxValueInBufferCHROMIUM::kCmdId),
3369 cmd.header.command); 3323 cmd.header.command);
3370 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3324 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3371 EXPECT_EQ(static_cast<char*>(next_cmd),
3372 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3373 EXPECT_EQ(static_cast<GLuint>(11), cmd.buffer_id); 3325 EXPECT_EQ(static_cast<GLuint>(11), cmd.buffer_id);
3374 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 3326 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count);
3375 EXPECT_EQ(static_cast<GLenum>(13), cmd.type); 3327 EXPECT_EQ(static_cast<GLenum>(13), cmd.type);
3376 EXPECT_EQ(static_cast<GLuint>(14), cmd.offset); 3328 EXPECT_EQ(static_cast<GLuint>(14), cmd.offset);
3377 EXPECT_EQ(static_cast<uint32>(15), cmd.result_shm_id); 3329 EXPECT_EQ(static_cast<uint32>(15), cmd.result_shm_id);
3378 EXPECT_EQ(static_cast<uint32>(16), cmd.result_shm_offset); 3330 EXPECT_EQ(static_cast<uint32>(16), cmd.result_shm_offset);
3331 CheckBytesWrittenMatchesExpectedSize(
3332 next_cmd, sizeof(cmd));
3379 } 3333 }
3380 3334
3381 TEST(GLES2FormatTest, GenSharedIdsCHROMIUM) { 3335 TEST_F(GLES2FormatTest, GenSharedIdsCHROMIUM) {
3382 GenSharedIdsCHROMIUM cmd = { { 0 } }; 3336 GenSharedIdsCHROMIUM& cmd = *GetBufferAs<GenSharedIdsCHROMIUM>();
3383 void* next_cmd = cmd.Set( 3337 void* next_cmd = cmd.Set(
3384 &cmd, 3338 &cmd,
3385 static_cast<GLuint>(11), 3339 static_cast<GLuint>(11),
3386 static_cast<GLuint>(12), 3340 static_cast<GLuint>(12),
3387 static_cast<GLsizei>(13), 3341 static_cast<GLsizei>(13),
3388 static_cast<uint32>(14), 3342 static_cast<uint32>(14),
3389 static_cast<uint32>(15)); 3343 static_cast<uint32>(15));
3390 EXPECT_EQ(static_cast<uint32>(GenSharedIdsCHROMIUM::kCmdId), 3344 EXPECT_EQ(static_cast<uint32>(GenSharedIdsCHROMIUM::kCmdId),
3391 cmd.header.command); 3345 cmd.header.command);
3392 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3346 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3393 EXPECT_EQ(static_cast<char*>(next_cmd),
3394 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3395 EXPECT_EQ(static_cast<GLuint>(11), cmd.namespace_id); 3347 EXPECT_EQ(static_cast<GLuint>(11), cmd.namespace_id);
3396 EXPECT_EQ(static_cast<GLuint>(12), cmd.id_offset); 3348 EXPECT_EQ(static_cast<GLuint>(12), cmd.id_offset);
3397 EXPECT_EQ(static_cast<GLsizei>(13), cmd.n); 3349 EXPECT_EQ(static_cast<GLsizei>(13), cmd.n);
3398 EXPECT_EQ(static_cast<uint32>(14), cmd.ids_shm_id); 3350 EXPECT_EQ(static_cast<uint32>(14), cmd.ids_shm_id);
3399 EXPECT_EQ(static_cast<uint32>(15), cmd.ids_shm_offset); 3351 EXPECT_EQ(static_cast<uint32>(15), cmd.ids_shm_offset);
3352 CheckBytesWrittenMatchesExpectedSize(
3353 next_cmd, sizeof(cmd));
3400 } 3354 }
3401 3355
3402 TEST(GLES2FormatTest, DeleteSharedIdsCHROMIUM) { 3356 TEST_F(GLES2FormatTest, DeleteSharedIdsCHROMIUM) {
3403 DeleteSharedIdsCHROMIUM cmd = { { 0 } }; 3357 DeleteSharedIdsCHROMIUM& cmd = *GetBufferAs<DeleteSharedIdsCHROMIUM>();
3404 void* next_cmd = cmd.Set( 3358 void* next_cmd = cmd.Set(
3405 &cmd, 3359 &cmd,
3406 static_cast<GLuint>(11), 3360 static_cast<GLuint>(11),
3407 static_cast<GLsizei>(12), 3361 static_cast<GLsizei>(12),
3408 static_cast<uint32>(13), 3362 static_cast<uint32>(13),
3409 static_cast<uint32>(14)); 3363 static_cast<uint32>(14));
3410 EXPECT_EQ(static_cast<uint32>(DeleteSharedIdsCHROMIUM::kCmdId), 3364 EXPECT_EQ(static_cast<uint32>(DeleteSharedIdsCHROMIUM::kCmdId),
3411 cmd.header.command); 3365 cmd.header.command);
3412 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3366 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3413 EXPECT_EQ(static_cast<char*>(next_cmd),
3414 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3415 EXPECT_EQ(static_cast<GLuint>(11), cmd.namespace_id); 3367 EXPECT_EQ(static_cast<GLuint>(11), cmd.namespace_id);
3416 EXPECT_EQ(static_cast<GLsizei>(12), cmd.n); 3368 EXPECT_EQ(static_cast<GLsizei>(12), cmd.n);
3417 EXPECT_EQ(static_cast<uint32>(13), cmd.ids_shm_id); 3369 EXPECT_EQ(static_cast<uint32>(13), cmd.ids_shm_id);
3418 EXPECT_EQ(static_cast<uint32>(14), cmd.ids_shm_offset); 3370 EXPECT_EQ(static_cast<uint32>(14), cmd.ids_shm_offset);
3371 CheckBytesWrittenMatchesExpectedSize(
3372 next_cmd, sizeof(cmd));
3419 } 3373 }
3420 3374
3421 TEST(GLES2FormatTest, RegisterSharedIdsCHROMIUM) { 3375 TEST_F(GLES2FormatTest, RegisterSharedIdsCHROMIUM) {
3422 RegisterSharedIdsCHROMIUM cmd = { { 0 } }; 3376 RegisterSharedIdsCHROMIUM& cmd = *GetBufferAs<RegisterSharedIdsCHROMIUM>();
3423 void* next_cmd = cmd.Set( 3377 void* next_cmd = cmd.Set(
3424 &cmd, 3378 &cmd,
3425 static_cast<GLuint>(11), 3379 static_cast<GLuint>(11),
3426 static_cast<GLsizei>(12), 3380 static_cast<GLsizei>(12),
3427 static_cast<uint32>(13), 3381 static_cast<uint32>(13),
3428 static_cast<uint32>(14)); 3382 static_cast<uint32>(14));
3429 EXPECT_EQ(static_cast<uint32>(RegisterSharedIdsCHROMIUM::kCmdId), 3383 EXPECT_EQ(static_cast<uint32>(RegisterSharedIdsCHROMIUM::kCmdId),
3430 cmd.header.command); 3384 cmd.header.command);
3431 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3385 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3432 EXPECT_EQ(static_cast<char*>(next_cmd),
3433 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3434 EXPECT_EQ(static_cast<GLuint>(11), cmd.namespace_id); 3386 EXPECT_EQ(static_cast<GLuint>(11), cmd.namespace_id);
3435 EXPECT_EQ(static_cast<GLsizei>(12), cmd.n); 3387 EXPECT_EQ(static_cast<GLsizei>(12), cmd.n);
3436 EXPECT_EQ(static_cast<uint32>(13), cmd.ids_shm_id); 3388 EXPECT_EQ(static_cast<uint32>(13), cmd.ids_shm_id);
3437 EXPECT_EQ(static_cast<uint32>(14), cmd.ids_shm_offset); 3389 EXPECT_EQ(static_cast<uint32>(14), cmd.ids_shm_offset);
3390 CheckBytesWrittenMatchesExpectedSize(
3391 next_cmd, sizeof(cmd));
3438 } 3392 }
3439 3393
3440 TEST(GLES2FormatTest, EnableFeatureCHROMIUM) { 3394 TEST_F(GLES2FormatTest, EnableFeatureCHROMIUM) {
3441 EnableFeatureCHROMIUM cmd = { { 0 } }; 3395 EnableFeatureCHROMIUM& cmd = *GetBufferAs<EnableFeatureCHROMIUM>();
3442 void* next_cmd = cmd.Set( 3396 void* next_cmd = cmd.Set(
3443 &cmd, 3397 &cmd,
3444 static_cast<GLuint>(11), 3398 static_cast<GLuint>(11),
3445 static_cast<uint32>(12), 3399 static_cast<uint32>(12),
3446 static_cast<uint32>(13)); 3400 static_cast<uint32>(13));
3447 EXPECT_EQ(static_cast<uint32>(EnableFeatureCHROMIUM::kCmdId), 3401 EXPECT_EQ(static_cast<uint32>(EnableFeatureCHROMIUM::kCmdId),
3448 cmd.header.command); 3402 cmd.header.command);
3449 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3403 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3450 EXPECT_EQ(static_cast<char*>(next_cmd),
3451 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3452 EXPECT_EQ(static_cast<GLuint>(11), cmd.bucket_id); 3404 EXPECT_EQ(static_cast<GLuint>(11), cmd.bucket_id);
3453 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 3405 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id);
3454 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 3406 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset);
3407 CheckBytesWrittenMatchesExpectedSize(
3408 next_cmd, sizeof(cmd));
3455 } 3409 }
3456 3410
3457 TEST(GLES2FormatTest, ResizeCHROMIUM) { 3411 TEST_F(GLES2FormatTest, ResizeCHROMIUM) {
3458 ResizeCHROMIUM cmd = { { 0 } }; 3412 ResizeCHROMIUM& cmd = *GetBufferAs<ResizeCHROMIUM>();
3459 void* next_cmd = cmd.Set( 3413 void* next_cmd = cmd.Set(
3460 &cmd, 3414 &cmd,
3461 static_cast<GLuint>(11), 3415 static_cast<GLuint>(11),
3462 static_cast<GLuint>(12)); 3416 static_cast<GLuint>(12));
3463 EXPECT_EQ(static_cast<uint32>(ResizeCHROMIUM::kCmdId), 3417 EXPECT_EQ(static_cast<uint32>(ResizeCHROMIUM::kCmdId),
3464 cmd.header.command); 3418 cmd.header.command);
3465 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3419 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3466 EXPECT_EQ(static_cast<char*>(next_cmd),
3467 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3468 EXPECT_EQ(static_cast<GLuint>(11), cmd.width); 3420 EXPECT_EQ(static_cast<GLuint>(11), cmd.width);
3469 EXPECT_EQ(static_cast<GLuint>(12), cmd.height); 3421 EXPECT_EQ(static_cast<GLuint>(12), cmd.height);
3422 CheckBytesWrittenMatchesExpectedSize(
3423 next_cmd, sizeof(cmd));
3470 } 3424 }
3471 3425
3472 TEST(GLES2FormatTest, GetRequestableExtensionsCHROMIUM) { 3426 TEST_F(GLES2FormatTest, GetRequestableExtensionsCHROMIUM) {
3473 GetRequestableExtensionsCHROMIUM cmd = { { 0 } }; 3427 GetRequestableExtensionsCHROMIUM& cmd =
3428 *GetBufferAs<GetRequestableExtensionsCHROMIUM>();
3474 void* next_cmd = cmd.Set( 3429 void* next_cmd = cmd.Set(
3475 &cmd, 3430 &cmd,
3476 static_cast<uint32>(11)); 3431 static_cast<uint32>(11));
3477 EXPECT_EQ(static_cast<uint32>(GetRequestableExtensionsCHROMIUM::kCmdId), 3432 EXPECT_EQ(static_cast<uint32>(GetRequestableExtensionsCHROMIUM::kCmdId),
3478 cmd.header.command); 3433 cmd.header.command);
3479 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3434 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3480 EXPECT_EQ(static_cast<char*>(next_cmd),
3481 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3482 EXPECT_EQ(static_cast<uint32>(11), cmd.bucket_id); 3435 EXPECT_EQ(static_cast<uint32>(11), cmd.bucket_id);
3436 CheckBytesWrittenMatchesExpectedSize(
3437 next_cmd, sizeof(cmd));
3483 } 3438 }
3484 3439
3485 TEST(GLES2FormatTest, RequestExtensionCHROMIUM) { 3440 TEST_F(GLES2FormatTest, RequestExtensionCHROMIUM) {
3486 RequestExtensionCHROMIUM cmd = { { 0 } }; 3441 RequestExtensionCHROMIUM& cmd = *GetBufferAs<RequestExtensionCHROMIUM>();
3487 void* next_cmd = cmd.Set( 3442 void* next_cmd = cmd.Set(
3488 &cmd, 3443 &cmd,
3489 static_cast<uint32>(11)); 3444 static_cast<uint32>(11));
3490 EXPECT_EQ(static_cast<uint32>(RequestExtensionCHROMIUM::kCmdId), 3445 EXPECT_EQ(static_cast<uint32>(RequestExtensionCHROMIUM::kCmdId),
3491 cmd.header.command); 3446 cmd.header.command);
3492 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3447 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3493 EXPECT_EQ(static_cast<char*>(next_cmd),
3494 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3495 EXPECT_EQ(static_cast<uint32>(11), cmd.bucket_id); 3448 EXPECT_EQ(static_cast<uint32>(11), cmd.bucket_id);
3449 CheckBytesWrittenMatchesExpectedSize(
3450 next_cmd, sizeof(cmd));
3496 } 3451 }
3497 3452
3498 TEST(GLES2FormatTest, GetMultipleIntegervCHROMIUM) { 3453 TEST_F(GLES2FormatTest, GetMultipleIntegervCHROMIUM) {
3499 GetMultipleIntegervCHROMIUM cmd = { { 0 } }; 3454 GetMultipleIntegervCHROMIUM& cmd =
3455 *GetBufferAs<GetMultipleIntegervCHROMIUM>();
3500 void* next_cmd = cmd.Set( 3456 void* next_cmd = cmd.Set(
3501 &cmd, 3457 &cmd,
3502 static_cast<uint32>(11), 3458 static_cast<uint32>(11),
3503 static_cast<uint32>(12), 3459 static_cast<uint32>(12),
3504 static_cast<GLuint>(13), 3460 static_cast<GLuint>(13),
3505 static_cast<uint32>(14), 3461 static_cast<uint32>(14),
3506 static_cast<uint32>(15), 3462 static_cast<uint32>(15),
3507 static_cast<GLsizeiptr>(16)); 3463 static_cast<GLsizeiptr>(16));
3508 EXPECT_EQ(static_cast<uint32>(GetMultipleIntegervCHROMIUM::kCmdId), 3464 EXPECT_EQ(static_cast<uint32>(GetMultipleIntegervCHROMIUM::kCmdId),
3509 cmd.header.command); 3465 cmd.header.command);
3510 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3466 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3511 EXPECT_EQ(static_cast<char*>(next_cmd),
3512 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3513 EXPECT_EQ(static_cast<uint32>(11), cmd.pnames_shm_id); 3467 EXPECT_EQ(static_cast<uint32>(11), cmd.pnames_shm_id);
3514 EXPECT_EQ(static_cast<uint32>(12), cmd.pnames_shm_offset); 3468 EXPECT_EQ(static_cast<uint32>(12), cmd.pnames_shm_offset);
3515 EXPECT_EQ(static_cast<GLuint>(13), cmd.count); 3469 EXPECT_EQ(static_cast<GLuint>(13), cmd.count);
3516 EXPECT_EQ(static_cast<uint32>(14), cmd.results_shm_id); 3470 EXPECT_EQ(static_cast<uint32>(14), cmd.results_shm_id);
3517 EXPECT_EQ(static_cast<uint32>(15), cmd.results_shm_offset); 3471 EXPECT_EQ(static_cast<uint32>(15), cmd.results_shm_offset);
3518 EXPECT_EQ(static_cast<GLsizeiptr>(16), cmd.size); 3472 EXPECT_EQ(static_cast<GLsizeiptr>(16), cmd.size);
3473 CheckBytesWrittenMatchesExpectedSize(
3474 next_cmd, sizeof(cmd));
3519 } 3475 }
3520 3476
3521 TEST(GLES2FormatTest, GetProgramInfoCHROMIUM) { 3477 TEST_F(GLES2FormatTest, GetProgramInfoCHROMIUM) {
3522 GetProgramInfoCHROMIUM cmd = { { 0 } }; 3478 GetProgramInfoCHROMIUM& cmd = *GetBufferAs<GetProgramInfoCHROMIUM>();
3523 void* next_cmd = cmd.Set( 3479 void* next_cmd = cmd.Set(
3524 &cmd, 3480 &cmd,
3525 static_cast<GLuint>(11), 3481 static_cast<GLuint>(11),
3526 static_cast<uint32>(12)); 3482 static_cast<uint32>(12));
3527 EXPECT_EQ(static_cast<uint32>(GetProgramInfoCHROMIUM::kCmdId), 3483 EXPECT_EQ(static_cast<uint32>(GetProgramInfoCHROMIUM::kCmdId),
3528 cmd.header.command); 3484 cmd.header.command);
3529 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3485 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3530 EXPECT_EQ(static_cast<char*>(next_cmd),
3531 reinterpret_cast<char*>(&cmd) + sizeof(cmd));
3532 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 3486 EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
3533 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 3487 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id);
3488 CheckBytesWrittenMatchesExpectedSize(
3489 next_cmd, sizeof(cmd));
3534 } 3490 }
3535 3491
3536 TEST(GLES2FormatTest, Placeholder447CHROMIUM) { 3492 TEST_F(GLES2FormatTest, Placeholder447CHROMIUM) {
3537 Placeholder447CHROMIUM cmd = { { 0 } }; 3493 Placeholder447CHROMIUM& cmd = *GetBufferAs<Placeholder447CHROMIUM>();
3538 void* next_cmd = cmd.Set( 3494 void* next_cmd = cmd.Set(
3539 &cmd); 3495 &cmd);
3540 EXPECT_EQ(static_cast<uint32>(Placeholder447CHROMIUM::kCmdId), 3496 EXPECT_EQ(static_cast<uint32>(Placeholder447CHROMIUM::kCmdId),
3541 cmd.header.command); 3497 cmd.header.command);
3542 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3498 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3543 EXPECT_EQ(static_cast<char*>(next_cmd), 3499 CheckBytesWrittenMatchesExpectedSize(
3544 reinterpret_cast<char*>(&cmd) + sizeof(cmd)); 3500 next_cmd, sizeof(cmd));
3545 } 3501 }
3546 3502
3547 TEST(GLES2FormatTest, Placeholder451CHROMIUM) { 3503 TEST_F(GLES2FormatTest, Placeholder451CHROMIUM) {
3548 Placeholder451CHROMIUM cmd = { { 0 } }; 3504 Placeholder451CHROMIUM& cmd = *GetBufferAs<Placeholder451CHROMIUM>();
3549 void* next_cmd = cmd.Set( 3505 void* next_cmd = cmd.Set(
3550 &cmd); 3506 &cmd);
3551 EXPECT_EQ(static_cast<uint32>(Placeholder451CHROMIUM::kCmdId), 3507 EXPECT_EQ(static_cast<uint32>(Placeholder451CHROMIUM::kCmdId),
3552 cmd.header.command); 3508 cmd.header.command);
3553 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3509 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3554 EXPECT_EQ(static_cast<char*>(next_cmd), 3510 CheckBytesWrittenMatchesExpectedSize(
3555 reinterpret_cast<char*>(&cmd) + sizeof(cmd)); 3511 next_cmd, sizeof(cmd));
3556 } 3512 }
3557 3513
3558 TEST(GLES2FormatTest, Placeholder452CHROMIUM) { 3514 TEST_F(GLES2FormatTest, Placeholder452CHROMIUM) {
3559 Placeholder452CHROMIUM cmd = { { 0 } }; 3515 Placeholder452CHROMIUM& cmd = *GetBufferAs<Placeholder452CHROMIUM>();
3560 void* next_cmd = cmd.Set( 3516 void* next_cmd = cmd.Set(
3561 &cmd); 3517 &cmd);
3562 EXPECT_EQ(static_cast<uint32>(Placeholder452CHROMIUM::kCmdId), 3518 EXPECT_EQ(static_cast<uint32>(Placeholder452CHROMIUM::kCmdId),
3563 cmd.header.command); 3519 cmd.header.command);
3564 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3520 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3565 EXPECT_EQ(static_cast<char*>(next_cmd), 3521 CheckBytesWrittenMatchesExpectedSize(
3566 reinterpret_cast<char*>(&cmd) + sizeof(cmd)); 3522 next_cmd, sizeof(cmd));
3567 } 3523 }
3568 3524
3569 TEST(GLES2FormatTest, Placeholder453CHROMIUM) { 3525 TEST_F(GLES2FormatTest, Placeholder453CHROMIUM) {
3570 Placeholder453CHROMIUM cmd = { { 0 } }; 3526 Placeholder453CHROMIUM& cmd = *GetBufferAs<Placeholder453CHROMIUM>();
3571 void* next_cmd = cmd.Set( 3527 void* next_cmd = cmd.Set(
3572 &cmd); 3528 &cmd);
3573 EXPECT_EQ(static_cast<uint32>(Placeholder453CHROMIUM::kCmdId), 3529 EXPECT_EQ(static_cast<uint32>(Placeholder453CHROMIUM::kCmdId),
3574 cmd.header.command); 3530 cmd.header.command);
3575 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3531 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
3576 EXPECT_EQ(static_cast<char*>(next_cmd), 3532 CheckBytesWrittenMatchesExpectedSize(
3577 reinterpret_cast<char*>(&cmd) + sizeof(cmd)); 3533 next_cmd, sizeof(cmd));
3578 } 3534 }
3579 3535
3580 #endif // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_TEST_AUTOGEN_H_ 3536 #endif // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_TEST_AUTOGEN_H_
3581 3537
OLDNEW
« no previous file with comments | « gpu/command_buffer/common/gles2_cmd_format_test.cc ('k') | gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698