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

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

Issue 245923008: Optimize GLES2DecoderImpl::ApplyDirtyState. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase on refactored gles2_cmd_decoder_unittest.cc Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 // It's formatted by clang-format using chromium coding style: 7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename 8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT! 9 // DO NOT EDIT!
10 10
11 // It is included by gles2_cmd_decoder_unittest_1.cc 11 // It is included by gles2_cmd_decoder_unittest_1.cc
12 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_ 12 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_
13 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_ 13 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_
14 14
15 // TODO(gman): ActiveTexture 15 // TODO(gman): ActiveTexture
16 16
17 TEST_F(GLES2DecoderTest1, AttachShaderValidArgs) { 17 TEST_P(GLES2DecoderTest1, AttachShaderValidArgs) {
18 EXPECT_CALL(*gl_, AttachShader(kServiceProgramId, kServiceShaderId)); 18 EXPECT_CALL(*gl_, AttachShader(kServiceProgramId, kServiceShaderId));
19 SpecializedSetup<cmds::AttachShader, 0>(true); 19 SpecializedSetup<cmds::AttachShader, 0>(true);
20 cmds::AttachShader cmd; 20 cmds::AttachShader cmd;
21 cmd.Init(client_program_id_, client_shader_id_); 21 cmd.Init(client_program_id_, client_shader_id_);
22 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 22 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
23 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 23 EXPECT_EQ(GL_NO_ERROR, GetGLError());
24 } 24 }
25 // TODO(gman): BindAttribLocation 25 // TODO(gman): BindAttribLocation
26 26
27 // TODO(gman): BindAttribLocationBucket 27 // TODO(gman): BindAttribLocationBucket
28 28
29 TEST_F(GLES2DecoderTest1, BindBufferValidArgs) { 29 TEST_P(GLES2DecoderTest1, BindBufferValidArgs) {
30 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kServiceBufferId)); 30 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kServiceBufferId));
31 SpecializedSetup<cmds::BindBuffer, 0>(true); 31 SpecializedSetup<cmds::BindBuffer, 0>(true);
32 cmds::BindBuffer cmd; 32 cmds::BindBuffer cmd;
33 cmd.Init(GL_ARRAY_BUFFER, client_buffer_id_); 33 cmd.Init(GL_ARRAY_BUFFER, client_buffer_id_);
34 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 34 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
35 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 35 EXPECT_EQ(GL_NO_ERROR, GetGLError());
36 } 36 }
37 37
38 TEST_F(GLES2DecoderTest1, BindBufferValidArgsNewId) { 38 TEST_P(GLES2DecoderTest1, BindBufferValidArgsNewId) {
39 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kNewServiceId)); 39 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kNewServiceId));
40 EXPECT_CALL(*gl_, GenBuffersARB(1, _)) 40 EXPECT_CALL(*gl_, GenBuffersARB(1, _))
41 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 41 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
42 SpecializedSetup<cmds::BindBuffer, 0>(true); 42 SpecializedSetup<cmds::BindBuffer, 0>(true);
43 cmds::BindBuffer cmd; 43 cmds::BindBuffer cmd;
44 cmd.Init(GL_ARRAY_BUFFER, kNewClientId); 44 cmd.Init(GL_ARRAY_BUFFER, kNewClientId);
45 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 45 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
46 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 46 EXPECT_EQ(GL_NO_ERROR, GetGLError());
47 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL); 47 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL);
48 } 48 }
49 49
50 TEST_F(GLES2DecoderTest1, BindBufferInvalidArgs0_0) { 50 TEST_P(GLES2DecoderTest1, BindBufferInvalidArgs0_0) {
51 EXPECT_CALL(*gl_, BindBuffer(_, _)).Times(0); 51 EXPECT_CALL(*gl_, BindBuffer(_, _)).Times(0);
52 SpecializedSetup<cmds::BindBuffer, 0>(false); 52 SpecializedSetup<cmds::BindBuffer, 0>(false);
53 cmds::BindBuffer cmd; 53 cmds::BindBuffer cmd;
54 cmd.Init(GL_RENDERBUFFER, client_buffer_id_); 54 cmd.Init(GL_RENDERBUFFER, client_buffer_id_);
55 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 55 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
56 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 56 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
57 } 57 }
58 58
59 TEST_F(GLES2DecoderTest1, BindFramebufferValidArgs) { 59 TEST_P(GLES2DecoderTest1, BindFramebufferValidArgs) {
60 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kServiceFramebufferId)); 60 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kServiceFramebufferId));
61 SpecializedSetup<cmds::BindFramebuffer, 0>(true); 61 SpecializedSetup<cmds::BindFramebuffer, 0>(true);
62 cmds::BindFramebuffer cmd; 62 cmds::BindFramebuffer cmd;
63 cmd.Init(GL_FRAMEBUFFER, client_framebuffer_id_); 63 cmd.Init(GL_FRAMEBUFFER, client_framebuffer_id_);
64 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 64 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
65 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 65 EXPECT_EQ(GL_NO_ERROR, GetGLError());
66 } 66 }
67 67
68 TEST_F(GLES2DecoderTest1, BindFramebufferValidArgsNewId) { 68 TEST_P(GLES2DecoderTest1, BindFramebufferValidArgsNewId) {
69 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kNewServiceId)); 69 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kNewServiceId));
70 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _)) 70 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
71 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 71 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
72 SpecializedSetup<cmds::BindFramebuffer, 0>(true); 72 SpecializedSetup<cmds::BindFramebuffer, 0>(true);
73 cmds::BindFramebuffer cmd; 73 cmds::BindFramebuffer cmd;
74 cmd.Init(GL_FRAMEBUFFER, kNewClientId); 74 cmd.Init(GL_FRAMEBUFFER, kNewClientId);
75 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 75 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
76 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 76 EXPECT_EQ(GL_NO_ERROR, GetGLError());
77 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL); 77 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL);
78 } 78 }
79 79
80 TEST_F(GLES2DecoderTest1, BindFramebufferInvalidArgs0_0) { 80 TEST_P(GLES2DecoderTest1, BindFramebufferInvalidArgs0_0) {
81 EXPECT_CALL(*gl_, BindFramebufferEXT(_, _)).Times(0); 81 EXPECT_CALL(*gl_, BindFramebufferEXT(_, _)).Times(0);
82 SpecializedSetup<cmds::BindFramebuffer, 0>(false); 82 SpecializedSetup<cmds::BindFramebuffer, 0>(false);
83 cmds::BindFramebuffer cmd; 83 cmds::BindFramebuffer cmd;
84 cmd.Init(GL_DRAW_FRAMEBUFFER, client_framebuffer_id_); 84 cmd.Init(GL_DRAW_FRAMEBUFFER, client_framebuffer_id_);
85 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 85 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
86 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 86 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
87 } 87 }
88 88
89 TEST_F(GLES2DecoderTest1, BindFramebufferInvalidArgs0_1) { 89 TEST_P(GLES2DecoderTest1, BindFramebufferInvalidArgs0_1) {
90 EXPECT_CALL(*gl_, BindFramebufferEXT(_, _)).Times(0); 90 EXPECT_CALL(*gl_, BindFramebufferEXT(_, _)).Times(0);
91 SpecializedSetup<cmds::BindFramebuffer, 0>(false); 91 SpecializedSetup<cmds::BindFramebuffer, 0>(false);
92 cmds::BindFramebuffer cmd; 92 cmds::BindFramebuffer cmd;
93 cmd.Init(GL_READ_FRAMEBUFFER, client_framebuffer_id_); 93 cmd.Init(GL_READ_FRAMEBUFFER, client_framebuffer_id_);
94 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 94 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
95 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 95 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
96 } 96 }
97 97
98 TEST_F(GLES2DecoderTest1, BindRenderbufferValidArgs) { 98 TEST_P(GLES2DecoderTest1, BindRenderbufferValidArgs) {
99 EXPECT_CALL(*gl_, 99 EXPECT_CALL(*gl_,
100 BindRenderbufferEXT(GL_RENDERBUFFER, kServiceRenderbufferId)); 100 BindRenderbufferEXT(GL_RENDERBUFFER, kServiceRenderbufferId));
101 SpecializedSetup<cmds::BindRenderbuffer, 0>(true); 101 SpecializedSetup<cmds::BindRenderbuffer, 0>(true);
102 cmds::BindRenderbuffer cmd; 102 cmds::BindRenderbuffer cmd;
103 cmd.Init(GL_RENDERBUFFER, client_renderbuffer_id_); 103 cmd.Init(GL_RENDERBUFFER, client_renderbuffer_id_);
104 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 104 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
105 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 105 EXPECT_EQ(GL_NO_ERROR, GetGLError());
106 } 106 }
107 107
108 TEST_F(GLES2DecoderTest1, BindRenderbufferValidArgsNewId) { 108 TEST_P(GLES2DecoderTest1, BindRenderbufferValidArgsNewId) {
109 EXPECT_CALL(*gl_, BindRenderbufferEXT(GL_RENDERBUFFER, kNewServiceId)); 109 EXPECT_CALL(*gl_, BindRenderbufferEXT(GL_RENDERBUFFER, kNewServiceId));
110 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _)) 110 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
111 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 111 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
112 SpecializedSetup<cmds::BindRenderbuffer, 0>(true); 112 SpecializedSetup<cmds::BindRenderbuffer, 0>(true);
113 cmds::BindRenderbuffer cmd; 113 cmds::BindRenderbuffer cmd;
114 cmd.Init(GL_RENDERBUFFER, kNewClientId); 114 cmd.Init(GL_RENDERBUFFER, kNewClientId);
115 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 115 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
116 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 116 EXPECT_EQ(GL_NO_ERROR, GetGLError());
117 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL); 117 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL);
118 } 118 }
119 119
120 TEST_F(GLES2DecoderTest1, BindRenderbufferInvalidArgs0_0) { 120 TEST_P(GLES2DecoderTest1, BindRenderbufferInvalidArgs0_0) {
121 EXPECT_CALL(*gl_, BindRenderbufferEXT(_, _)).Times(0); 121 EXPECT_CALL(*gl_, BindRenderbufferEXT(_, _)).Times(0);
122 SpecializedSetup<cmds::BindRenderbuffer, 0>(false); 122 SpecializedSetup<cmds::BindRenderbuffer, 0>(false);
123 cmds::BindRenderbuffer cmd; 123 cmds::BindRenderbuffer cmd;
124 cmd.Init(GL_FRAMEBUFFER, client_renderbuffer_id_); 124 cmd.Init(GL_FRAMEBUFFER, client_renderbuffer_id_);
125 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 125 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
126 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 126 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
127 } 127 }
128 128
129 TEST_F(GLES2DecoderTest1, BindTextureValidArgs) { 129 TEST_P(GLES2DecoderTest1, BindTextureValidArgs) {
130 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, kServiceTextureId)); 130 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, kServiceTextureId));
131 SpecializedSetup<cmds::BindTexture, 0>(true); 131 SpecializedSetup<cmds::BindTexture, 0>(true);
132 cmds::BindTexture cmd; 132 cmds::BindTexture cmd;
133 cmd.Init(GL_TEXTURE_2D, client_texture_id_); 133 cmd.Init(GL_TEXTURE_2D, client_texture_id_);
134 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 134 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
135 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 135 EXPECT_EQ(GL_NO_ERROR, GetGLError());
136 } 136 }
137 137
138 TEST_F(GLES2DecoderTest1, BindTextureValidArgsNewId) { 138 TEST_P(GLES2DecoderTest1, BindTextureValidArgsNewId) {
139 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, kNewServiceId)); 139 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, kNewServiceId));
140 EXPECT_CALL(*gl_, GenTextures(1, _)) 140 EXPECT_CALL(*gl_, GenTextures(1, _))
141 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 141 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
142 SpecializedSetup<cmds::BindTexture, 0>(true); 142 SpecializedSetup<cmds::BindTexture, 0>(true);
143 cmds::BindTexture cmd; 143 cmds::BindTexture cmd;
144 cmd.Init(GL_TEXTURE_2D, kNewClientId); 144 cmd.Init(GL_TEXTURE_2D, kNewClientId);
145 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 145 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
146 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 146 EXPECT_EQ(GL_NO_ERROR, GetGLError());
147 EXPECT_TRUE(GetTexture(kNewClientId) != NULL); 147 EXPECT_TRUE(GetTexture(kNewClientId) != NULL);
148 } 148 }
149 149
150 TEST_F(GLES2DecoderTest1, BindTextureInvalidArgs0_0) { 150 TEST_P(GLES2DecoderTest1, BindTextureInvalidArgs0_0) {
151 EXPECT_CALL(*gl_, BindTexture(_, _)).Times(0); 151 EXPECT_CALL(*gl_, BindTexture(_, _)).Times(0);
152 SpecializedSetup<cmds::BindTexture, 0>(false); 152 SpecializedSetup<cmds::BindTexture, 0>(false);
153 cmds::BindTexture cmd; 153 cmds::BindTexture cmd;
154 cmd.Init(GL_TEXTURE_1D, client_texture_id_); 154 cmd.Init(GL_TEXTURE_1D, client_texture_id_);
155 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 155 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
156 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 156 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
157 } 157 }
158 158
159 TEST_F(GLES2DecoderTest1, BindTextureInvalidArgs0_1) { 159 TEST_P(GLES2DecoderTest1, BindTextureInvalidArgs0_1) {
160 EXPECT_CALL(*gl_, BindTexture(_, _)).Times(0); 160 EXPECT_CALL(*gl_, BindTexture(_, _)).Times(0);
161 SpecializedSetup<cmds::BindTexture, 0>(false); 161 SpecializedSetup<cmds::BindTexture, 0>(false);
162 cmds::BindTexture cmd; 162 cmds::BindTexture cmd;
163 cmd.Init(GL_TEXTURE_3D, client_texture_id_); 163 cmd.Init(GL_TEXTURE_3D, client_texture_id_);
164 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 164 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
165 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 165 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
166 } 166 }
167 167
168 TEST_F(GLES2DecoderTest1, BlendColorValidArgs) { 168 TEST_P(GLES2DecoderTest1, BlendColorValidArgs) {
169 EXPECT_CALL(*gl_, BlendColor(1, 2, 3, 4)); 169 EXPECT_CALL(*gl_, BlendColor(1, 2, 3, 4));
170 SpecializedSetup<cmds::BlendColor, 0>(true); 170 SpecializedSetup<cmds::BlendColor, 0>(true);
171 cmds::BlendColor cmd; 171 cmds::BlendColor cmd;
172 cmd.Init(1, 2, 3, 4); 172 cmd.Init(1, 2, 3, 4);
173 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 173 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
174 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 174 EXPECT_EQ(GL_NO_ERROR, GetGLError());
175 } 175 }
176 176
177 TEST_F(GLES2DecoderTest1, BlendEquationValidArgs) { 177 TEST_P(GLES2DecoderTest1, BlendEquationValidArgs) {
178 EXPECT_CALL(*gl_, BlendEquation(GL_FUNC_SUBTRACT)); 178 EXPECT_CALL(*gl_, BlendEquation(GL_FUNC_SUBTRACT));
179 SpecializedSetup<cmds::BlendEquation, 0>(true); 179 SpecializedSetup<cmds::BlendEquation, 0>(true);
180 cmds::BlendEquation cmd; 180 cmds::BlendEquation cmd;
181 cmd.Init(GL_FUNC_SUBTRACT); 181 cmd.Init(GL_FUNC_SUBTRACT);
182 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 182 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
183 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 183 EXPECT_EQ(GL_NO_ERROR, GetGLError());
184 } 184 }
185 185
186 TEST_F(GLES2DecoderTest1, BlendEquationInvalidArgs0_0) { 186 TEST_P(GLES2DecoderTest1, BlendEquationInvalidArgs0_0) {
187 EXPECT_CALL(*gl_, BlendEquation(_)).Times(0); 187 EXPECT_CALL(*gl_, BlendEquation(_)).Times(0);
188 SpecializedSetup<cmds::BlendEquation, 0>(false); 188 SpecializedSetup<cmds::BlendEquation, 0>(false);
189 cmds::BlendEquation cmd; 189 cmds::BlendEquation cmd;
190 cmd.Init(GL_MIN); 190 cmd.Init(GL_MIN);
191 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 191 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
192 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 192 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
193 } 193 }
194 194
195 TEST_F(GLES2DecoderTest1, BlendEquationInvalidArgs0_1) { 195 TEST_P(GLES2DecoderTest1, BlendEquationInvalidArgs0_1) {
196 EXPECT_CALL(*gl_, BlendEquation(_)).Times(0); 196 EXPECT_CALL(*gl_, BlendEquation(_)).Times(0);
197 SpecializedSetup<cmds::BlendEquation, 0>(false); 197 SpecializedSetup<cmds::BlendEquation, 0>(false);
198 cmds::BlendEquation cmd; 198 cmds::BlendEquation cmd;
199 cmd.Init(GL_MAX); 199 cmd.Init(GL_MAX);
200 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 200 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
201 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 201 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
202 } 202 }
203 203
204 TEST_F(GLES2DecoderTest1, BlendEquationSeparateValidArgs) { 204 TEST_P(GLES2DecoderTest1, BlendEquationSeparateValidArgs) {
205 EXPECT_CALL(*gl_, BlendEquationSeparate(GL_FUNC_SUBTRACT, GL_FUNC_ADD)); 205 EXPECT_CALL(*gl_, BlendEquationSeparate(GL_FUNC_SUBTRACT, GL_FUNC_ADD));
206 SpecializedSetup<cmds::BlendEquationSeparate, 0>(true); 206 SpecializedSetup<cmds::BlendEquationSeparate, 0>(true);
207 cmds::BlendEquationSeparate cmd; 207 cmds::BlendEquationSeparate cmd;
208 cmd.Init(GL_FUNC_SUBTRACT, GL_FUNC_ADD); 208 cmd.Init(GL_FUNC_SUBTRACT, GL_FUNC_ADD);
209 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 209 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
210 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 210 EXPECT_EQ(GL_NO_ERROR, GetGLError());
211 } 211 }
212 212
213 TEST_F(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs0_0) { 213 TEST_P(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs0_0) {
214 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0); 214 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0);
215 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false); 215 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false);
216 cmds::BlendEquationSeparate cmd; 216 cmds::BlendEquationSeparate cmd;
217 cmd.Init(GL_MIN, GL_FUNC_ADD); 217 cmd.Init(GL_MIN, GL_FUNC_ADD);
218 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 218 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
219 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 219 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
220 } 220 }
221 221
222 TEST_F(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs0_1) { 222 TEST_P(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs0_1) {
223 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0); 223 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0);
224 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false); 224 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false);
225 cmds::BlendEquationSeparate cmd; 225 cmds::BlendEquationSeparate cmd;
226 cmd.Init(GL_MAX, GL_FUNC_ADD); 226 cmd.Init(GL_MAX, GL_FUNC_ADD);
227 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 227 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
228 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 228 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
229 } 229 }
230 230
231 TEST_F(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs1_0) { 231 TEST_P(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs1_0) {
232 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0); 232 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0);
233 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false); 233 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false);
234 cmds::BlendEquationSeparate cmd; 234 cmds::BlendEquationSeparate cmd;
235 cmd.Init(GL_FUNC_SUBTRACT, GL_MIN); 235 cmd.Init(GL_FUNC_SUBTRACT, GL_MIN);
236 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 236 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
237 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 237 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
238 } 238 }
239 239
240 TEST_F(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs1_1) { 240 TEST_P(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs1_1) {
241 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0); 241 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0);
242 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false); 242 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false);
243 cmds::BlendEquationSeparate cmd; 243 cmds::BlendEquationSeparate cmd;
244 cmd.Init(GL_FUNC_SUBTRACT, GL_MAX); 244 cmd.Init(GL_FUNC_SUBTRACT, GL_MAX);
245 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 245 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
246 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 246 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
247 } 247 }
248 248
249 TEST_F(GLES2DecoderTest1, BlendFuncValidArgs) { 249 TEST_P(GLES2DecoderTest1, BlendFuncValidArgs) {
250 EXPECT_CALL(*gl_, BlendFunc(GL_ZERO, GL_ZERO)); 250 EXPECT_CALL(*gl_, BlendFunc(GL_ZERO, GL_ZERO));
251 SpecializedSetup<cmds::BlendFunc, 0>(true); 251 SpecializedSetup<cmds::BlendFunc, 0>(true);
252 cmds::BlendFunc cmd; 252 cmds::BlendFunc cmd;
253 cmd.Init(GL_ZERO, GL_ZERO); 253 cmd.Init(GL_ZERO, GL_ZERO);
254 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 254 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
255 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 255 EXPECT_EQ(GL_NO_ERROR, GetGLError());
256 } 256 }
257 257
258 TEST_F(GLES2DecoderTest1, BlendFuncSeparateValidArgs) { 258 TEST_P(GLES2DecoderTest1, BlendFuncSeparateValidArgs) {
259 EXPECT_CALL(*gl_, BlendFuncSeparate(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO)); 259 EXPECT_CALL(*gl_, BlendFuncSeparate(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO));
260 SpecializedSetup<cmds::BlendFuncSeparate, 0>(true); 260 SpecializedSetup<cmds::BlendFuncSeparate, 0>(true);
261 cmds::BlendFuncSeparate cmd; 261 cmds::BlendFuncSeparate cmd;
262 cmd.Init(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO); 262 cmd.Init(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
263 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 263 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
264 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 264 EXPECT_EQ(GL_NO_ERROR, GetGLError());
265 } 265 }
266 // TODO(gman): BufferData 266 // TODO(gman): BufferData
267 267
268 // TODO(gman): BufferSubData 268 // TODO(gman): BufferSubData
269 269
270 TEST_F(GLES2DecoderTest1, CheckFramebufferStatusValidArgs) { 270 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusValidArgs) {
271 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)); 271 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER));
272 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(true); 272 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(true);
273 cmds::CheckFramebufferStatus cmd; 273 cmds::CheckFramebufferStatus cmd;
274 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_); 274 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_);
275 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 275 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
276 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 276 EXPECT_EQ(GL_NO_ERROR, GetGLError());
277 } 277 }
278 278
279 TEST_F(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_0) { 279 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_0) {
280 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0); 280 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0);
281 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false); 281 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
282 cmds::CheckFramebufferStatus cmd; 282 cmds::CheckFramebufferStatus cmd;
283 cmd.Init(GL_DRAW_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_); 283 cmd.Init(GL_DRAW_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_);
284 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 284 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
285 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 285 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
286 } 286 }
287 287
288 TEST_F(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_1) { 288 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_1) {
289 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0); 289 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0);
290 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false); 290 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
291 cmds::CheckFramebufferStatus cmd; 291 cmds::CheckFramebufferStatus cmd;
292 cmd.Init(GL_READ_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_); 292 cmd.Init(GL_READ_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_);
293 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 293 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
294 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 294 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
295 } 295 }
296 296
297 TEST_F(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgsBadSharedMemoryId) { 297 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgsBadSharedMemoryId) {
298 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)).Times(0); 298 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)).Times(0);
299 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false); 299 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
300 cmds::CheckFramebufferStatus cmd; 300 cmds::CheckFramebufferStatus cmd;
301 cmd.Init(GL_FRAMEBUFFER, kInvalidSharedMemoryId, shared_memory_offset_); 301 cmd.Init(GL_FRAMEBUFFER, kInvalidSharedMemoryId, shared_memory_offset_);
302 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 302 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
303 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, kInvalidSharedMemoryOffset); 303 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, kInvalidSharedMemoryOffset);
304 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 304 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
305 } 305 }
306 306
307 TEST_F(GLES2DecoderTest1, ClearValidArgs) { 307 TEST_P(GLES2DecoderTest1, ClearValidArgs) {
308 EXPECT_CALL(*gl_, Clear(1)); 308 EXPECT_CALL(*gl_, Clear(1));
309 SpecializedSetup<cmds::Clear, 0>(true); 309 SpecializedSetup<cmds::Clear, 0>(true);
310 cmds::Clear cmd; 310 cmds::Clear cmd;
311 cmd.Init(1); 311 cmd.Init(1);
312 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 312 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
313 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 313 EXPECT_EQ(GL_NO_ERROR, GetGLError());
314 } 314 }
315 315
316 TEST_F(GLES2DecoderTest1, ClearColorValidArgs) { 316 TEST_P(GLES2DecoderTest1, ClearColorValidArgs) {
317 EXPECT_CALL(*gl_, ClearColor(1, 2, 3, 4)); 317 EXPECT_CALL(*gl_, ClearColor(1, 2, 3, 4));
318 SpecializedSetup<cmds::ClearColor, 0>(true); 318 SpecializedSetup<cmds::ClearColor, 0>(true);
319 cmds::ClearColor cmd; 319 cmds::ClearColor cmd;
320 cmd.Init(1, 2, 3, 4); 320 cmd.Init(1, 2, 3, 4);
321 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 321 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
322 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 322 EXPECT_EQ(GL_NO_ERROR, GetGLError());
323 } 323 }
324 324
325 TEST_F(GLES2DecoderTest1, ClearDepthfValidArgs) { 325 TEST_P(GLES2DecoderTest1, ClearDepthfValidArgs) {
326 EXPECT_CALL(*gl_, ClearDepth(0.5f)); 326 EXPECT_CALL(*gl_, ClearDepth(0.5f));
327 SpecializedSetup<cmds::ClearDepthf, 0>(true); 327 SpecializedSetup<cmds::ClearDepthf, 0>(true);
328 cmds::ClearDepthf cmd; 328 cmds::ClearDepthf cmd;
329 cmd.Init(0.5f); 329 cmd.Init(0.5f);
330 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 330 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
331 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 331 EXPECT_EQ(GL_NO_ERROR, GetGLError());
332 } 332 }
333 333
334 TEST_F(GLES2DecoderTest1, ClearStencilValidArgs) { 334 TEST_P(GLES2DecoderTest1, ClearStencilValidArgs) {
335 EXPECT_CALL(*gl_, ClearStencil(1)); 335 EXPECT_CALL(*gl_, ClearStencil(1));
336 SpecializedSetup<cmds::ClearStencil, 0>(true); 336 SpecializedSetup<cmds::ClearStencil, 0>(true);
337 cmds::ClearStencil cmd; 337 cmds::ClearStencil cmd;
338 cmd.Init(1); 338 cmd.Init(1);
339 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 339 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
340 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 340 EXPECT_EQ(GL_NO_ERROR, GetGLError());
341 } 341 }
342 342
343 TEST_F(GLES2DecoderTest1, ColorMaskValidArgs) { 343 TEST_P(GLES2DecoderTest1, ColorMaskValidArgs) {
344 SpecializedSetup<cmds::ColorMask, 0>(true); 344 SpecializedSetup<cmds::ColorMask, 0>(true);
345 cmds::ColorMask cmd; 345 cmds::ColorMask cmd;
346 cmd.Init(true, true, true, true); 346 cmd.Init(true, true, true, true);
347 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 347 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
348 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 348 EXPECT_EQ(GL_NO_ERROR, GetGLError());
349 } 349 }
350 // TODO(gman): CompileShader 350 // TODO(gman): CompileShader
351 // TODO(gman): CompressedTexImage2D 351 // TODO(gman): CompressedTexImage2D
352 352
353 // TODO(gman): CompressedTexImage2DBucket 353 // TODO(gman): CompressedTexImage2DBucket
354 // TODO(gman): CompressedTexSubImage2D 354 // TODO(gman): CompressedTexSubImage2D
355 355
356 // TODO(gman): CompressedTexSubImage2DBucket 356 // TODO(gman): CompressedTexSubImage2DBucket
357 // TODO(gman): CopyTexImage2D 357 // TODO(gman): CopyTexImage2D
358 358
359 TEST_F(GLES2DecoderTest1, CopyTexSubImage2DValidArgs) { 359 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DValidArgs) {
360 EXPECT_CALL(*gl_, CopyTexSubImage2D(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8)); 360 EXPECT_CALL(*gl_, CopyTexSubImage2D(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8));
361 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(true); 361 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(true);
362 cmds::CopyTexSubImage2D cmd; 362 cmds::CopyTexSubImage2D cmd;
363 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8); 363 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8);
364 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 364 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
365 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 365 EXPECT_EQ(GL_NO_ERROR, GetGLError());
366 } 366 }
367 367
368 TEST_F(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs0_0) { 368 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs0_0) {
369 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0); 369 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
370 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false); 370 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
371 cmds::CopyTexSubImage2D cmd; 371 cmds::CopyTexSubImage2D cmd;
372 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, 2, 3, 4, 5, 6, 7, 8); 372 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, 2, 3, 4, 5, 6, 7, 8);
373 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 373 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
374 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 374 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
375 } 375 }
376 376
377 TEST_F(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs6_0) { 377 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs6_0) {
378 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0); 378 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
379 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false); 379 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
380 cmds::CopyTexSubImage2D cmd; 380 cmds::CopyTexSubImage2D cmd;
381 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, -1, 8); 381 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, -1, 8);
382 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 382 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
383 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 383 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
384 } 384 }
385 385
386 TEST_F(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs7_0) { 386 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs7_0) {
387 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0); 387 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
388 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false); 388 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
389 cmds::CopyTexSubImage2D cmd; 389 cmds::CopyTexSubImage2D cmd;
390 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, -1); 390 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, -1);
391 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 391 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
392 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 392 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
393 } 393 }
394 394
395 TEST_F(GLES2DecoderTest1, CreateProgramValidArgs) { 395 TEST_P(GLES2DecoderTest1, CreateProgramValidArgs) {
396 EXPECT_CALL(*gl_, CreateProgram()).WillOnce(Return(kNewServiceId)); 396 EXPECT_CALL(*gl_, CreateProgram()).WillOnce(Return(kNewServiceId));
397 SpecializedSetup<cmds::CreateProgram, 0>(true); 397 SpecializedSetup<cmds::CreateProgram, 0>(true);
398 cmds::CreateProgram cmd; 398 cmds::CreateProgram cmd;
399 cmd.Init(kNewClientId); 399 cmd.Init(kNewClientId);
400 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 400 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
401 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 401 EXPECT_EQ(GL_NO_ERROR, GetGLError());
402 EXPECT_TRUE(GetProgram(kNewClientId) != NULL); 402 EXPECT_TRUE(GetProgram(kNewClientId) != NULL);
403 } 403 }
404 404
405 TEST_F(GLES2DecoderTest1, CreateShaderValidArgs) { 405 TEST_P(GLES2DecoderTest1, CreateShaderValidArgs) {
406 EXPECT_CALL(*gl_, CreateShader(GL_VERTEX_SHADER)) 406 EXPECT_CALL(*gl_, CreateShader(GL_VERTEX_SHADER))
407 .WillOnce(Return(kNewServiceId)); 407 .WillOnce(Return(kNewServiceId));
408 SpecializedSetup<cmds::CreateShader, 0>(true); 408 SpecializedSetup<cmds::CreateShader, 0>(true);
409 cmds::CreateShader cmd; 409 cmds::CreateShader cmd;
410 cmd.Init(GL_VERTEX_SHADER, kNewClientId); 410 cmd.Init(GL_VERTEX_SHADER, kNewClientId);
411 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 411 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
412 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 412 EXPECT_EQ(GL_NO_ERROR, GetGLError());
413 EXPECT_TRUE(GetShader(kNewClientId) != NULL); 413 EXPECT_TRUE(GetShader(kNewClientId) != NULL);
414 } 414 }
415 415
416 TEST_F(GLES2DecoderTest1, CreateShaderInvalidArgs0_0) { 416 TEST_P(GLES2DecoderTest1, CreateShaderInvalidArgs0_0) {
417 EXPECT_CALL(*gl_, CreateShader(_)).Times(0); 417 EXPECT_CALL(*gl_, CreateShader(_)).Times(0);
418 SpecializedSetup<cmds::CreateShader, 0>(false); 418 SpecializedSetup<cmds::CreateShader, 0>(false);
419 cmds::CreateShader cmd; 419 cmds::CreateShader cmd;
420 cmd.Init(GL_GEOMETRY_SHADER, kNewClientId); 420 cmd.Init(GL_GEOMETRY_SHADER, kNewClientId);
421 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 421 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
422 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 422 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
423 } 423 }
424 424
425 TEST_F(GLES2DecoderTest1, CullFaceValidArgs) { 425 TEST_P(GLES2DecoderTest1, CullFaceValidArgs) {
426 EXPECT_CALL(*gl_, CullFace(GL_FRONT)); 426 EXPECT_CALL(*gl_, CullFace(GL_FRONT));
427 SpecializedSetup<cmds::CullFace, 0>(true); 427 SpecializedSetup<cmds::CullFace, 0>(true);
428 cmds::CullFace cmd; 428 cmds::CullFace cmd;
429 cmd.Init(GL_FRONT); 429 cmd.Init(GL_FRONT);
430 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 430 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
431 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 431 EXPECT_EQ(GL_NO_ERROR, GetGLError());
432 } 432 }
433 433
434 TEST_F(GLES2DecoderTest1, DeleteBuffersValidArgs) { 434 TEST_P(GLES2DecoderTest1, DeleteBuffersValidArgs) {
435 EXPECT_CALL(*gl_, DeleteBuffersARB(1, Pointee(kServiceBufferId))).Times(1); 435 EXPECT_CALL(*gl_, DeleteBuffersARB(1, Pointee(kServiceBufferId))).Times(1);
436 GetSharedMemoryAs<GLuint*>()[0] = client_buffer_id_; 436 GetSharedMemoryAs<GLuint*>()[0] = client_buffer_id_;
437 SpecializedSetup<cmds::DeleteBuffers, 0>(true); 437 SpecializedSetup<cmds::DeleteBuffers, 0>(true);
438 cmds::DeleteBuffers cmd; 438 cmds::DeleteBuffers cmd;
439 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 439 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
440 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 440 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
441 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 441 EXPECT_EQ(GL_NO_ERROR, GetGLError());
442 EXPECT_TRUE(GetBuffer(client_buffer_id_) == NULL); 442 EXPECT_TRUE(GetBuffer(client_buffer_id_) == NULL);
443 } 443 }
444 444
445 TEST_F(GLES2DecoderTest1, DeleteBuffersInvalidArgs) { 445 TEST_P(GLES2DecoderTest1, DeleteBuffersInvalidArgs) {
446 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; 446 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId;
447 SpecializedSetup<cmds::DeleteBuffers, 0>(false); 447 SpecializedSetup<cmds::DeleteBuffers, 0>(false);
448 cmds::DeleteBuffers cmd; 448 cmds::DeleteBuffers cmd;
449 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 449 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
450 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 450 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
451 } 451 }
452 452
453 TEST_F(GLES2DecoderTest1, DeleteBuffersImmediateValidArgs) { 453 TEST_P(GLES2DecoderTest1, DeleteBuffersImmediateValidArgs) {
454 EXPECT_CALL(*gl_, DeleteBuffersARB(1, Pointee(kServiceBufferId))).Times(1); 454 EXPECT_CALL(*gl_, DeleteBuffersARB(1, Pointee(kServiceBufferId))).Times(1);
455 cmds::DeleteBuffersImmediate& cmd = 455 cmds::DeleteBuffersImmediate& cmd =
456 *GetImmediateAs<cmds::DeleteBuffersImmediate>(); 456 *GetImmediateAs<cmds::DeleteBuffersImmediate>();
457 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(true); 457 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(true);
458 cmd.Init(1, &client_buffer_id_); 458 cmd.Init(1, &client_buffer_id_);
459 EXPECT_EQ(error::kNoError, 459 EXPECT_EQ(error::kNoError,
460 ExecuteImmediateCmd(cmd, sizeof(client_buffer_id_))); 460 ExecuteImmediateCmd(cmd, sizeof(client_buffer_id_)));
461 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 461 EXPECT_EQ(GL_NO_ERROR, GetGLError());
462 EXPECT_TRUE(GetBuffer(client_buffer_id_) == NULL); 462 EXPECT_TRUE(GetBuffer(client_buffer_id_) == NULL);
463 } 463 }
464 464
465 TEST_F(GLES2DecoderTest1, DeleteBuffersImmediateInvalidArgs) { 465 TEST_P(GLES2DecoderTest1, DeleteBuffersImmediateInvalidArgs) {
466 cmds::DeleteBuffersImmediate& cmd = 466 cmds::DeleteBuffersImmediate& cmd =
467 *GetImmediateAs<cmds::DeleteBuffersImmediate>(); 467 *GetImmediateAs<cmds::DeleteBuffersImmediate>();
468 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(false); 468 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(false);
469 GLuint temp = kInvalidClientId; 469 GLuint temp = kInvalidClientId;
470 cmd.Init(1, &temp); 470 cmd.Init(1, &temp);
471 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 471 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
472 } 472 }
473 473
474 TEST_F(GLES2DecoderTest1, DeleteFramebuffersValidArgs) { 474 TEST_P(GLES2DecoderTest1, DeleteFramebuffersValidArgs) {
475 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, Pointee(kServiceFramebufferId))) 475 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, Pointee(kServiceFramebufferId)))
476 .Times(1); 476 .Times(1);
477 GetSharedMemoryAs<GLuint*>()[0] = client_framebuffer_id_; 477 GetSharedMemoryAs<GLuint*>()[0] = client_framebuffer_id_;
478 SpecializedSetup<cmds::DeleteFramebuffers, 0>(true); 478 SpecializedSetup<cmds::DeleteFramebuffers, 0>(true);
479 cmds::DeleteFramebuffers cmd; 479 cmds::DeleteFramebuffers cmd;
480 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 480 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
481 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 481 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
482 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 482 EXPECT_EQ(GL_NO_ERROR, GetGLError());
483 EXPECT_TRUE(GetFramebuffer(client_framebuffer_id_) == NULL); 483 EXPECT_TRUE(GetFramebuffer(client_framebuffer_id_) == NULL);
484 } 484 }
485 485
486 TEST_F(GLES2DecoderTest1, DeleteFramebuffersInvalidArgs) { 486 TEST_P(GLES2DecoderTest1, DeleteFramebuffersInvalidArgs) {
487 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; 487 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId;
488 SpecializedSetup<cmds::DeleteFramebuffers, 0>(false); 488 SpecializedSetup<cmds::DeleteFramebuffers, 0>(false);
489 cmds::DeleteFramebuffers cmd; 489 cmds::DeleteFramebuffers cmd;
490 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 490 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
491 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 491 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
492 } 492 }
493 493
494 TEST_F(GLES2DecoderTest1, DeleteFramebuffersImmediateValidArgs) { 494 TEST_P(GLES2DecoderTest1, DeleteFramebuffersImmediateValidArgs) {
495 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, Pointee(kServiceFramebufferId))) 495 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, Pointee(kServiceFramebufferId)))
496 .Times(1); 496 .Times(1);
497 cmds::DeleteFramebuffersImmediate& cmd = 497 cmds::DeleteFramebuffersImmediate& cmd =
498 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>(); 498 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>();
499 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(true); 499 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(true);
500 cmd.Init(1, &client_framebuffer_id_); 500 cmd.Init(1, &client_framebuffer_id_);
501 EXPECT_EQ(error::kNoError, 501 EXPECT_EQ(error::kNoError,
502 ExecuteImmediateCmd(cmd, sizeof(client_framebuffer_id_))); 502 ExecuteImmediateCmd(cmd, sizeof(client_framebuffer_id_)));
503 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 503 EXPECT_EQ(GL_NO_ERROR, GetGLError());
504 EXPECT_TRUE(GetFramebuffer(client_framebuffer_id_) == NULL); 504 EXPECT_TRUE(GetFramebuffer(client_framebuffer_id_) == NULL);
505 } 505 }
506 506
507 TEST_F(GLES2DecoderTest1, DeleteFramebuffersImmediateInvalidArgs) { 507 TEST_P(GLES2DecoderTest1, DeleteFramebuffersImmediateInvalidArgs) {
508 cmds::DeleteFramebuffersImmediate& cmd = 508 cmds::DeleteFramebuffersImmediate& cmd =
509 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>(); 509 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>();
510 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(false); 510 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(false);
511 GLuint temp = kInvalidClientId; 511 GLuint temp = kInvalidClientId;
512 cmd.Init(1, &temp); 512 cmd.Init(1, &temp);
513 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 513 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
514 } 514 }
515 515
516 TEST_F(GLES2DecoderTest1, DeleteProgramValidArgs) { 516 TEST_P(GLES2DecoderTest1, DeleteProgramValidArgs) {
517 EXPECT_CALL(*gl_, DeleteProgram(kServiceProgramId)); 517 EXPECT_CALL(*gl_, DeleteProgram(kServiceProgramId));
518 SpecializedSetup<cmds::DeleteProgram, 0>(true); 518 SpecializedSetup<cmds::DeleteProgram, 0>(true);
519 cmds::DeleteProgram cmd; 519 cmds::DeleteProgram cmd;
520 cmd.Init(client_program_id_); 520 cmd.Init(client_program_id_);
521 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 521 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
522 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 522 EXPECT_EQ(GL_NO_ERROR, GetGLError());
523 } 523 }
524 524
525 TEST_F(GLES2DecoderTest1, DeleteRenderbuffersValidArgs) { 525 TEST_P(GLES2DecoderTest1, DeleteRenderbuffersValidArgs) {
526 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, Pointee(kServiceRenderbufferId))) 526 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, Pointee(kServiceRenderbufferId)))
527 .Times(1); 527 .Times(1);
528 GetSharedMemoryAs<GLuint*>()[0] = client_renderbuffer_id_; 528 GetSharedMemoryAs<GLuint*>()[0] = client_renderbuffer_id_;
529 SpecializedSetup<cmds::DeleteRenderbuffers, 0>(true); 529 SpecializedSetup<cmds::DeleteRenderbuffers, 0>(true);
530 cmds::DeleteRenderbuffers cmd; 530 cmds::DeleteRenderbuffers cmd;
531 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 531 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
532 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 532 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
533 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 533 EXPECT_EQ(GL_NO_ERROR, GetGLError());
534 EXPECT_TRUE(GetRenderbuffer(client_renderbuffer_id_) == NULL); 534 EXPECT_TRUE(GetRenderbuffer(client_renderbuffer_id_) == NULL);
535 } 535 }
536 536
537 TEST_F(GLES2DecoderTest1, DeleteRenderbuffersInvalidArgs) { 537 TEST_P(GLES2DecoderTest1, DeleteRenderbuffersInvalidArgs) {
538 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; 538 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId;
539 SpecializedSetup<cmds::DeleteRenderbuffers, 0>(false); 539 SpecializedSetup<cmds::DeleteRenderbuffers, 0>(false);
540 cmds::DeleteRenderbuffers cmd; 540 cmds::DeleteRenderbuffers cmd;
541 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 541 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
542 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 542 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
543 } 543 }
544 544
545 TEST_F(GLES2DecoderTest1, DeleteRenderbuffersImmediateValidArgs) { 545 TEST_P(GLES2DecoderTest1, DeleteRenderbuffersImmediateValidArgs) {
546 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, Pointee(kServiceRenderbufferId))) 546 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, Pointee(kServiceRenderbufferId)))
547 .Times(1); 547 .Times(1);
548 cmds::DeleteRenderbuffersImmediate& cmd = 548 cmds::DeleteRenderbuffersImmediate& cmd =
549 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>(); 549 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>();
550 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(true); 550 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(true);
551 cmd.Init(1, &client_renderbuffer_id_); 551 cmd.Init(1, &client_renderbuffer_id_);
552 EXPECT_EQ(error::kNoError, 552 EXPECT_EQ(error::kNoError,
553 ExecuteImmediateCmd(cmd, sizeof(client_renderbuffer_id_))); 553 ExecuteImmediateCmd(cmd, sizeof(client_renderbuffer_id_)));
554 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 554 EXPECT_EQ(GL_NO_ERROR, GetGLError());
555 EXPECT_TRUE(GetRenderbuffer(client_renderbuffer_id_) == NULL); 555 EXPECT_TRUE(GetRenderbuffer(client_renderbuffer_id_) == NULL);
556 } 556 }
557 557
558 TEST_F(GLES2DecoderTest1, DeleteRenderbuffersImmediateInvalidArgs) { 558 TEST_P(GLES2DecoderTest1, DeleteRenderbuffersImmediateInvalidArgs) {
559 cmds::DeleteRenderbuffersImmediate& cmd = 559 cmds::DeleteRenderbuffersImmediate& cmd =
560 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>(); 560 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>();
561 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(false); 561 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(false);
562 GLuint temp = kInvalidClientId; 562 GLuint temp = kInvalidClientId;
563 cmd.Init(1, &temp); 563 cmd.Init(1, &temp);
564 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 564 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
565 } 565 }
566 566
567 TEST_F(GLES2DecoderTest1, DeleteShaderValidArgs) { 567 TEST_P(GLES2DecoderTest1, DeleteShaderValidArgs) {
568 EXPECT_CALL(*gl_, DeleteShader(kServiceShaderId)); 568 EXPECT_CALL(*gl_, DeleteShader(kServiceShaderId));
569 SpecializedSetup<cmds::DeleteShader, 0>(true); 569 SpecializedSetup<cmds::DeleteShader, 0>(true);
570 cmds::DeleteShader cmd; 570 cmds::DeleteShader cmd;
571 cmd.Init(client_shader_id_); 571 cmd.Init(client_shader_id_);
572 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 572 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
573 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 573 EXPECT_EQ(GL_NO_ERROR, GetGLError());
574 } 574 }
575 575
576 TEST_F(GLES2DecoderTest1, DeleteTexturesValidArgs) { 576 TEST_P(GLES2DecoderTest1, DeleteTexturesValidArgs) {
577 EXPECT_CALL(*gl_, DeleteTextures(1, Pointee(kServiceTextureId))).Times(1); 577 EXPECT_CALL(*gl_, DeleteTextures(1, Pointee(kServiceTextureId))).Times(1);
578 GetSharedMemoryAs<GLuint*>()[0] = client_texture_id_; 578 GetSharedMemoryAs<GLuint*>()[0] = client_texture_id_;
579 SpecializedSetup<cmds::DeleteTextures, 0>(true); 579 SpecializedSetup<cmds::DeleteTextures, 0>(true);
580 cmds::DeleteTextures cmd; 580 cmds::DeleteTextures cmd;
581 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 581 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
582 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 582 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
583 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 583 EXPECT_EQ(GL_NO_ERROR, GetGLError());
584 EXPECT_TRUE(GetTexture(client_texture_id_) == NULL); 584 EXPECT_TRUE(GetTexture(client_texture_id_) == NULL);
585 } 585 }
586 586
587 TEST_F(GLES2DecoderTest1, DeleteTexturesInvalidArgs) { 587 TEST_P(GLES2DecoderTest1, DeleteTexturesInvalidArgs) {
588 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; 588 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId;
589 SpecializedSetup<cmds::DeleteTextures, 0>(false); 589 SpecializedSetup<cmds::DeleteTextures, 0>(false);
590 cmds::DeleteTextures cmd; 590 cmds::DeleteTextures cmd;
591 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 591 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
592 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 592 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
593 } 593 }
594 594
595 TEST_F(GLES2DecoderTest1, DeleteTexturesImmediateValidArgs) { 595 TEST_P(GLES2DecoderTest1, DeleteTexturesImmediateValidArgs) {
596 EXPECT_CALL(*gl_, DeleteTextures(1, Pointee(kServiceTextureId))).Times(1); 596 EXPECT_CALL(*gl_, DeleteTextures(1, Pointee(kServiceTextureId))).Times(1);
597 cmds::DeleteTexturesImmediate& cmd = 597 cmds::DeleteTexturesImmediate& cmd =
598 *GetImmediateAs<cmds::DeleteTexturesImmediate>(); 598 *GetImmediateAs<cmds::DeleteTexturesImmediate>();
599 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(true); 599 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(true);
600 cmd.Init(1, &client_texture_id_); 600 cmd.Init(1, &client_texture_id_);
601 EXPECT_EQ(error::kNoError, 601 EXPECT_EQ(error::kNoError,
602 ExecuteImmediateCmd(cmd, sizeof(client_texture_id_))); 602 ExecuteImmediateCmd(cmd, sizeof(client_texture_id_)));
603 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 603 EXPECT_EQ(GL_NO_ERROR, GetGLError());
604 EXPECT_TRUE(GetTexture(client_texture_id_) == NULL); 604 EXPECT_TRUE(GetTexture(client_texture_id_) == NULL);
605 } 605 }
606 606
607 TEST_F(GLES2DecoderTest1, DeleteTexturesImmediateInvalidArgs) { 607 TEST_P(GLES2DecoderTest1, DeleteTexturesImmediateInvalidArgs) {
608 cmds::DeleteTexturesImmediate& cmd = 608 cmds::DeleteTexturesImmediate& cmd =
609 *GetImmediateAs<cmds::DeleteTexturesImmediate>(); 609 *GetImmediateAs<cmds::DeleteTexturesImmediate>();
610 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(false); 610 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(false);
611 GLuint temp = kInvalidClientId; 611 GLuint temp = kInvalidClientId;
612 cmd.Init(1, &temp); 612 cmd.Init(1, &temp);
613 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 613 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
614 } 614 }
615 615
616 TEST_F(GLES2DecoderTest1, DepthFuncValidArgs) { 616 TEST_P(GLES2DecoderTest1, DepthFuncValidArgs) {
617 EXPECT_CALL(*gl_, DepthFunc(GL_NEVER)); 617 EXPECT_CALL(*gl_, DepthFunc(GL_NEVER));
618 SpecializedSetup<cmds::DepthFunc, 0>(true); 618 SpecializedSetup<cmds::DepthFunc, 0>(true);
619 cmds::DepthFunc cmd; 619 cmds::DepthFunc cmd;
620 cmd.Init(GL_NEVER); 620 cmd.Init(GL_NEVER);
621 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 621 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
622 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 622 EXPECT_EQ(GL_NO_ERROR, GetGLError());
623 } 623 }
624 624
625 TEST_F(GLES2DecoderTest1, DepthMaskValidArgs) { 625 TEST_P(GLES2DecoderTest1, DepthMaskValidArgs) {
626 SpecializedSetup<cmds::DepthMask, 0>(true); 626 SpecializedSetup<cmds::DepthMask, 0>(true);
627 cmds::DepthMask cmd; 627 cmds::DepthMask cmd;
628 cmd.Init(true); 628 cmd.Init(true);
629 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 629 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
630 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 630 EXPECT_EQ(GL_NO_ERROR, GetGLError());
631 } 631 }
632 632
633 TEST_F(GLES2DecoderTest1, DepthRangefValidArgs) { 633 TEST_P(GLES2DecoderTest1, DepthRangefValidArgs) {
634 EXPECT_CALL(*gl_, DepthRange(1, 2)); 634 EXPECT_CALL(*gl_, DepthRange(1, 2));
635 SpecializedSetup<cmds::DepthRangef, 0>(true); 635 SpecializedSetup<cmds::DepthRangef, 0>(true);
636 cmds::DepthRangef cmd; 636 cmds::DepthRangef cmd;
637 cmd.Init(1, 2); 637 cmd.Init(1, 2);
638 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 638 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
639 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 639 EXPECT_EQ(GL_NO_ERROR, GetGLError());
640 } 640 }
641 641
642 TEST_F(GLES2DecoderTest1, DetachShaderValidArgs) { 642 TEST_P(GLES2DecoderTest1, DetachShaderValidArgs) {
643 EXPECT_CALL(*gl_, DetachShader(kServiceProgramId, kServiceShaderId)); 643 EXPECT_CALL(*gl_, DetachShader(kServiceProgramId, kServiceShaderId));
644 SpecializedSetup<cmds::DetachShader, 0>(true); 644 SpecializedSetup<cmds::DetachShader, 0>(true);
645 cmds::DetachShader cmd; 645 cmds::DetachShader cmd;
646 cmd.Init(client_program_id_, client_shader_id_); 646 cmd.Init(client_program_id_, client_shader_id_);
647 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 647 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
648 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 648 EXPECT_EQ(GL_NO_ERROR, GetGLError());
649 } 649 }
650 650
651 TEST_F(GLES2DecoderTest1, DisableValidArgs) { 651 TEST_P(GLES2DecoderTest1, DisableValidArgs) {
652 EXPECT_CALL(*gl_, Disable(GL_BLEND)); 652 SetupExpectationsForEnableDisable(GL_BLEND, false);
653 SpecializedSetup<cmds::Disable, 0>(true); 653 SpecializedSetup<cmds::Disable, 0>(true);
654 cmds::Disable cmd; 654 cmds::Disable cmd;
655 cmd.Init(GL_BLEND); 655 cmd.Init(GL_BLEND);
656 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 656 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
657 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 657 EXPECT_EQ(GL_NO_ERROR, GetGLError());
658 } 658 }
659 659
660 TEST_F(GLES2DecoderTest1, DisableInvalidArgs0_0) { 660 TEST_P(GLES2DecoderTest1, DisableInvalidArgs0_0) {
661 EXPECT_CALL(*gl_, Disable(_)).Times(0); 661 EXPECT_CALL(*gl_, Disable(_)).Times(0);
662 SpecializedSetup<cmds::Disable, 0>(false); 662 SpecializedSetup<cmds::Disable, 0>(false);
663 cmds::Disable cmd; 663 cmds::Disable cmd;
664 cmd.Init(GL_CLIP_PLANE0); 664 cmd.Init(GL_CLIP_PLANE0);
665 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 665 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
666 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 666 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
667 } 667 }
668 668
669 TEST_F(GLES2DecoderTest1, DisableInvalidArgs0_1) { 669 TEST_P(GLES2DecoderTest1, DisableInvalidArgs0_1) {
670 EXPECT_CALL(*gl_, Disable(_)).Times(0); 670 EXPECT_CALL(*gl_, Disable(_)).Times(0);
671 SpecializedSetup<cmds::Disable, 0>(false); 671 SpecializedSetup<cmds::Disable, 0>(false);
672 cmds::Disable cmd; 672 cmds::Disable cmd;
673 cmd.Init(GL_POINT_SPRITE); 673 cmd.Init(GL_POINT_SPRITE);
674 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 674 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
675 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 675 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
676 } 676 }
677 677
678 TEST_F(GLES2DecoderTest1, DisableVertexAttribArrayValidArgs) { 678 TEST_P(GLES2DecoderTest1, DisableVertexAttribArrayValidArgs) {
679 EXPECT_CALL(*gl_, DisableVertexAttribArray(1)); 679 EXPECT_CALL(*gl_, DisableVertexAttribArray(1));
680 SpecializedSetup<cmds::DisableVertexAttribArray, 0>(true); 680 SpecializedSetup<cmds::DisableVertexAttribArray, 0>(true);
681 cmds::DisableVertexAttribArray cmd; 681 cmds::DisableVertexAttribArray cmd;
682 cmd.Init(1); 682 cmd.Init(1);
683 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 683 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
684 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 684 EXPECT_EQ(GL_NO_ERROR, GetGLError());
685 } 685 }
686 // TODO(gman): DrawArrays 686 // TODO(gman): DrawArrays
687 687
688 // TODO(gman): DrawElements 688 // TODO(gman): DrawElements
689 689
690 TEST_F(GLES2DecoderTest1, EnableValidArgs) { 690 TEST_P(GLES2DecoderTest1, EnableValidArgs) {
691 EXPECT_CALL(*gl_, Enable(GL_BLEND)); 691 SetupExpectationsForEnableDisable(GL_BLEND, true);
692 SpecializedSetup<cmds::Enable, 0>(true); 692 SpecializedSetup<cmds::Enable, 0>(true);
693 cmds::Enable cmd; 693 cmds::Enable cmd;
694 cmd.Init(GL_BLEND); 694 cmd.Init(GL_BLEND);
695 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 695 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
696 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 696 EXPECT_EQ(GL_NO_ERROR, GetGLError());
697 } 697 }
698 698
699 TEST_F(GLES2DecoderTest1, EnableInvalidArgs0_0) { 699 TEST_P(GLES2DecoderTest1, EnableInvalidArgs0_0) {
700 EXPECT_CALL(*gl_, Enable(_)).Times(0); 700 EXPECT_CALL(*gl_, Enable(_)).Times(0);
701 SpecializedSetup<cmds::Enable, 0>(false); 701 SpecializedSetup<cmds::Enable, 0>(false);
702 cmds::Enable cmd; 702 cmds::Enable cmd;
703 cmd.Init(GL_CLIP_PLANE0); 703 cmd.Init(GL_CLIP_PLANE0);
704 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 704 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
705 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 705 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
706 } 706 }
707 707
708 TEST_F(GLES2DecoderTest1, EnableInvalidArgs0_1) { 708 TEST_P(GLES2DecoderTest1, EnableInvalidArgs0_1) {
709 EXPECT_CALL(*gl_, Enable(_)).Times(0); 709 EXPECT_CALL(*gl_, Enable(_)).Times(0);
710 SpecializedSetup<cmds::Enable, 0>(false); 710 SpecializedSetup<cmds::Enable, 0>(false);
711 cmds::Enable cmd; 711 cmds::Enable cmd;
712 cmd.Init(GL_POINT_SPRITE); 712 cmd.Init(GL_POINT_SPRITE);
713 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 713 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
714 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 714 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
715 } 715 }
716 716
717 TEST_F(GLES2DecoderTest1, EnableVertexAttribArrayValidArgs) { 717 TEST_P(GLES2DecoderTest1, EnableVertexAttribArrayValidArgs) {
718 EXPECT_CALL(*gl_, EnableVertexAttribArray(1)); 718 EXPECT_CALL(*gl_, EnableVertexAttribArray(1));
719 SpecializedSetup<cmds::EnableVertexAttribArray, 0>(true); 719 SpecializedSetup<cmds::EnableVertexAttribArray, 0>(true);
720 cmds::EnableVertexAttribArray cmd; 720 cmds::EnableVertexAttribArray cmd;
721 cmd.Init(1); 721 cmd.Init(1);
722 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 722 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
723 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 723 EXPECT_EQ(GL_NO_ERROR, GetGLError());
724 } 724 }
725 725
726 TEST_F(GLES2DecoderTest1, FinishValidArgs) { 726 TEST_P(GLES2DecoderTest1, FinishValidArgs) {
727 EXPECT_CALL(*gl_, Finish()); 727 EXPECT_CALL(*gl_, Finish());
728 SpecializedSetup<cmds::Finish, 0>(true); 728 SpecializedSetup<cmds::Finish, 0>(true);
729 cmds::Finish cmd; 729 cmds::Finish cmd;
730 cmd.Init(); 730 cmd.Init();
731 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 731 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
732 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 732 EXPECT_EQ(GL_NO_ERROR, GetGLError());
733 } 733 }
734 734
735 TEST_F(GLES2DecoderTest1, FlushValidArgs) { 735 TEST_P(GLES2DecoderTest1, FlushValidArgs) {
736 EXPECT_CALL(*gl_, Flush()); 736 EXPECT_CALL(*gl_, Flush());
737 SpecializedSetup<cmds::Flush, 0>(true); 737 SpecializedSetup<cmds::Flush, 0>(true);
738 cmds::Flush cmd; 738 cmds::Flush cmd;
739 cmd.Init(); 739 cmd.Init();
740 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 740 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
741 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 741 EXPECT_EQ(GL_NO_ERROR, GetGLError());
742 } 742 }
743 743
744 TEST_F(GLES2DecoderTest1, FramebufferRenderbufferValidArgs) { 744 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferValidArgs) {
745 EXPECT_CALL(*gl_, 745 EXPECT_CALL(*gl_,
746 FramebufferRenderbufferEXT(GL_FRAMEBUFFER, 746 FramebufferRenderbufferEXT(GL_FRAMEBUFFER,
747 GL_COLOR_ATTACHMENT0, 747 GL_COLOR_ATTACHMENT0,
748 GL_RENDERBUFFER, 748 GL_RENDERBUFFER,
749 kServiceRenderbufferId)); 749 kServiceRenderbufferId));
750 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(true); 750 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(true);
751 cmds::FramebufferRenderbuffer cmd; 751 cmds::FramebufferRenderbuffer cmd;
752 cmd.Init(GL_FRAMEBUFFER, 752 cmd.Init(GL_FRAMEBUFFER,
753 GL_COLOR_ATTACHMENT0, 753 GL_COLOR_ATTACHMENT0,
754 GL_RENDERBUFFER, 754 GL_RENDERBUFFER,
755 client_renderbuffer_id_); 755 client_renderbuffer_id_);
756 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 756 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
757 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 757 EXPECT_EQ(GL_NO_ERROR, GetGLError());
758 } 758 }
759 759
760 TEST_F(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_0) { 760 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_0) {
761 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0); 761 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
762 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false); 762 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
763 cmds::FramebufferRenderbuffer cmd; 763 cmds::FramebufferRenderbuffer cmd;
764 cmd.Init(GL_DRAW_FRAMEBUFFER, 764 cmd.Init(GL_DRAW_FRAMEBUFFER,
765 GL_COLOR_ATTACHMENT0, 765 GL_COLOR_ATTACHMENT0,
766 GL_RENDERBUFFER, 766 GL_RENDERBUFFER,
767 client_renderbuffer_id_); 767 client_renderbuffer_id_);
768 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 768 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
769 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 769 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
770 } 770 }
771 771
772 TEST_F(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_1) { 772 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_1) {
773 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0); 773 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
774 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false); 774 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
775 cmds::FramebufferRenderbuffer cmd; 775 cmds::FramebufferRenderbuffer cmd;
776 cmd.Init(GL_READ_FRAMEBUFFER, 776 cmd.Init(GL_READ_FRAMEBUFFER,
777 GL_COLOR_ATTACHMENT0, 777 GL_COLOR_ATTACHMENT0,
778 GL_RENDERBUFFER, 778 GL_RENDERBUFFER,
779 client_renderbuffer_id_); 779 client_renderbuffer_id_);
780 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 780 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
781 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 781 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
782 } 782 }
783 783
784 TEST_F(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs2_0) { 784 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs2_0) {
785 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0); 785 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
786 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false); 786 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
787 cmds::FramebufferRenderbuffer cmd; 787 cmds::FramebufferRenderbuffer cmd;
788 cmd.Init(GL_FRAMEBUFFER, 788 cmd.Init(GL_FRAMEBUFFER,
789 GL_COLOR_ATTACHMENT0, 789 GL_COLOR_ATTACHMENT0,
790 GL_FRAMEBUFFER, 790 GL_FRAMEBUFFER,
791 client_renderbuffer_id_); 791 client_renderbuffer_id_);
792 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 792 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
793 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 793 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
794 } 794 }
795 795
796 TEST_F(GLES2DecoderTest1, FramebufferTexture2DValidArgs) { 796 TEST_P(GLES2DecoderTest1, FramebufferTexture2DValidArgs) {
797 EXPECT_CALL(*gl_, 797 EXPECT_CALL(*gl_,
798 FramebufferTexture2DEXT(GL_FRAMEBUFFER, 798 FramebufferTexture2DEXT(GL_FRAMEBUFFER,
799 GL_COLOR_ATTACHMENT0, 799 GL_COLOR_ATTACHMENT0,
800 GL_TEXTURE_2D, 800 GL_TEXTURE_2D,
801 kServiceTextureId, 801 kServiceTextureId,
802 0)); 802 0));
803 SpecializedSetup<cmds::FramebufferTexture2D, 0>(true); 803 SpecializedSetup<cmds::FramebufferTexture2D, 0>(true);
804 cmds::FramebufferTexture2D cmd; 804 cmds::FramebufferTexture2D cmd;
805 cmd.Init(GL_FRAMEBUFFER, 805 cmd.Init(GL_FRAMEBUFFER,
806 GL_COLOR_ATTACHMENT0, 806 GL_COLOR_ATTACHMENT0,
807 GL_TEXTURE_2D, 807 GL_TEXTURE_2D,
808 client_texture_id_, 808 client_texture_id_,
809 0); 809 0);
810 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 810 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
811 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 811 EXPECT_EQ(GL_NO_ERROR, GetGLError());
812 } 812 }
813 813
814 TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_0) { 814 TEST_P(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_0) {
815 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0); 815 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
816 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false); 816 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
817 cmds::FramebufferTexture2D cmd; 817 cmds::FramebufferTexture2D cmd;
818 cmd.Init(GL_DRAW_FRAMEBUFFER, 818 cmd.Init(GL_DRAW_FRAMEBUFFER,
819 GL_COLOR_ATTACHMENT0, 819 GL_COLOR_ATTACHMENT0,
820 GL_TEXTURE_2D, 820 GL_TEXTURE_2D,
821 client_texture_id_, 821 client_texture_id_,
822 0); 822 0);
823 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 823 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
824 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 824 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
825 } 825 }
826 826
827 TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_1) { 827 TEST_P(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_1) {
828 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0); 828 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
829 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false); 829 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
830 cmds::FramebufferTexture2D cmd; 830 cmds::FramebufferTexture2D cmd;
831 cmd.Init(GL_READ_FRAMEBUFFER, 831 cmd.Init(GL_READ_FRAMEBUFFER,
832 GL_COLOR_ATTACHMENT0, 832 GL_COLOR_ATTACHMENT0,
833 GL_TEXTURE_2D, 833 GL_TEXTURE_2D,
834 client_texture_id_, 834 client_texture_id_,
835 0); 835 0);
836 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 836 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
837 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 837 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
838 } 838 }
839 839
840 TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs2_0) { 840 TEST_P(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs2_0) {
841 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0); 841 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
842 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false); 842 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
843 cmds::FramebufferTexture2D cmd; 843 cmds::FramebufferTexture2D cmd;
844 cmd.Init(GL_FRAMEBUFFER, 844 cmd.Init(GL_FRAMEBUFFER,
845 GL_COLOR_ATTACHMENT0, 845 GL_COLOR_ATTACHMENT0,
846 GL_PROXY_TEXTURE_CUBE_MAP, 846 GL_PROXY_TEXTURE_CUBE_MAP,
847 client_texture_id_, 847 client_texture_id_,
848 0); 848 0);
849 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 849 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
850 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 850 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
851 } 851 }
852 852
853 TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs4_0) { 853 TEST_P(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs4_0) {
854 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0); 854 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
855 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false); 855 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
856 cmds::FramebufferTexture2D cmd; 856 cmds::FramebufferTexture2D cmd;
857 cmd.Init(GL_FRAMEBUFFER, 857 cmd.Init(GL_FRAMEBUFFER,
858 GL_COLOR_ATTACHMENT0, 858 GL_COLOR_ATTACHMENT0,
859 GL_TEXTURE_2D, 859 GL_TEXTURE_2D,
860 client_texture_id_, 860 client_texture_id_,
861 1); 861 1);
862 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 862 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
863 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 863 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
864 } 864 }
865 865
866 TEST_F(GLES2DecoderTest1, FrontFaceValidArgs) { 866 TEST_P(GLES2DecoderTest1, FrontFaceValidArgs) {
867 EXPECT_CALL(*gl_, FrontFace(GL_CW)); 867 EXPECT_CALL(*gl_, FrontFace(GL_CW));
868 SpecializedSetup<cmds::FrontFace, 0>(true); 868 SpecializedSetup<cmds::FrontFace, 0>(true);
869 cmds::FrontFace cmd; 869 cmds::FrontFace cmd;
870 cmd.Init(GL_CW); 870 cmd.Init(GL_CW);
871 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 871 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
872 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 872 EXPECT_EQ(GL_NO_ERROR, GetGLError());
873 } 873 }
874 874
875 TEST_F(GLES2DecoderTest1, GenBuffersValidArgs) { 875 TEST_P(GLES2DecoderTest1, GenBuffersValidArgs) {
876 EXPECT_CALL(*gl_, GenBuffersARB(1, _)) 876 EXPECT_CALL(*gl_, GenBuffersARB(1, _))
877 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 877 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
878 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; 878 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId;
879 SpecializedSetup<cmds::GenBuffers, 0>(true); 879 SpecializedSetup<cmds::GenBuffers, 0>(true);
880 cmds::GenBuffers cmd; 880 cmds::GenBuffers cmd;
881 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 881 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
882 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 882 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
883 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 883 EXPECT_EQ(GL_NO_ERROR, GetGLError());
884 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL); 884 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL);
885 } 885 }
886 886
887 TEST_F(GLES2DecoderTest1, GenBuffersInvalidArgs) { 887 TEST_P(GLES2DecoderTest1, GenBuffersInvalidArgs) {
888 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0); 888 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0);
889 GetSharedMemoryAs<GLuint*>()[0] = client_buffer_id_; 889 GetSharedMemoryAs<GLuint*>()[0] = client_buffer_id_;
890 SpecializedSetup<cmds::GenBuffers, 0>(false); 890 SpecializedSetup<cmds::GenBuffers, 0>(false);
891 cmds::GenBuffers cmd; 891 cmds::GenBuffers cmd;
892 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 892 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
893 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); 893 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd));
894 } 894 }
895 895
896 TEST_F(GLES2DecoderTest1, GenBuffersImmediateValidArgs) { 896 TEST_P(GLES2DecoderTest1, GenBuffersImmediateValidArgs) {
897 EXPECT_CALL(*gl_, GenBuffersARB(1, _)) 897 EXPECT_CALL(*gl_, GenBuffersARB(1, _))
898 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 898 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
899 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>(); 899 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>();
900 GLuint temp = kNewClientId; 900 GLuint temp = kNewClientId;
901 SpecializedSetup<cmds::GenBuffersImmediate, 0>(true); 901 SpecializedSetup<cmds::GenBuffersImmediate, 0>(true);
902 cmd->Init(1, &temp); 902 cmd->Init(1, &temp);
903 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp))); 903 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
904 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 904 EXPECT_EQ(GL_NO_ERROR, GetGLError());
905 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL); 905 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL);
906 } 906 }
907 907
908 TEST_F(GLES2DecoderTest1, GenBuffersImmediateInvalidArgs) { 908 TEST_P(GLES2DecoderTest1, GenBuffersImmediateInvalidArgs) {
909 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0); 909 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0);
910 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>(); 910 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>();
911 SpecializedSetup<cmds::GenBuffersImmediate, 0>(false); 911 SpecializedSetup<cmds::GenBuffersImmediate, 0>(false);
912 cmd->Init(1, &client_buffer_id_); 912 cmd->Init(1, &client_buffer_id_);
913 EXPECT_EQ(error::kInvalidArguments, 913 EXPECT_EQ(error::kInvalidArguments,
914 ExecuteImmediateCmd(*cmd, sizeof(&client_buffer_id_))); 914 ExecuteImmediateCmd(*cmd, sizeof(&client_buffer_id_)));
915 } 915 }
916 916
917 TEST_F(GLES2DecoderTest1, GenerateMipmapValidArgs) { 917 TEST_P(GLES2DecoderTest1, GenerateMipmapValidArgs) {
918 EXPECT_CALL(*gl_, GenerateMipmapEXT(GL_TEXTURE_2D)); 918 EXPECT_CALL(*gl_, GenerateMipmapEXT(GL_TEXTURE_2D));
919 SpecializedSetup<cmds::GenerateMipmap, 0>(true); 919 SpecializedSetup<cmds::GenerateMipmap, 0>(true);
920 cmds::GenerateMipmap cmd; 920 cmds::GenerateMipmap cmd;
921 cmd.Init(GL_TEXTURE_2D); 921 cmd.Init(GL_TEXTURE_2D);
922 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 922 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
923 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 923 EXPECT_EQ(GL_NO_ERROR, GetGLError());
924 } 924 }
925 925
926 TEST_F(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_0) { 926 TEST_P(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_0) {
927 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0); 927 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0);
928 SpecializedSetup<cmds::GenerateMipmap, 0>(false); 928 SpecializedSetup<cmds::GenerateMipmap, 0>(false);
929 cmds::GenerateMipmap cmd; 929 cmds::GenerateMipmap cmd;
930 cmd.Init(GL_TEXTURE_1D); 930 cmd.Init(GL_TEXTURE_1D);
931 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 931 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
932 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 932 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
933 } 933 }
934 934
935 TEST_F(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_1) { 935 TEST_P(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_1) {
936 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0); 936 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0);
937 SpecializedSetup<cmds::GenerateMipmap, 0>(false); 937 SpecializedSetup<cmds::GenerateMipmap, 0>(false);
938 cmds::GenerateMipmap cmd; 938 cmds::GenerateMipmap cmd;
939 cmd.Init(GL_TEXTURE_3D); 939 cmd.Init(GL_TEXTURE_3D);
940 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 940 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
941 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 941 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
942 } 942 }
943 943
944 TEST_F(GLES2DecoderTest1, GenFramebuffersValidArgs) { 944 TEST_P(GLES2DecoderTest1, GenFramebuffersValidArgs) {
945 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _)) 945 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
946 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 946 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
947 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; 947 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId;
948 SpecializedSetup<cmds::GenFramebuffers, 0>(true); 948 SpecializedSetup<cmds::GenFramebuffers, 0>(true);
949 cmds::GenFramebuffers cmd; 949 cmds::GenFramebuffers cmd;
950 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 950 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
951 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 951 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
952 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 952 EXPECT_EQ(GL_NO_ERROR, GetGLError());
953 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL); 953 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL);
954 } 954 }
955 955
956 TEST_F(GLES2DecoderTest1, GenFramebuffersInvalidArgs) { 956 TEST_P(GLES2DecoderTest1, GenFramebuffersInvalidArgs) {
957 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0); 957 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0);
958 GetSharedMemoryAs<GLuint*>()[0] = client_framebuffer_id_; 958 GetSharedMemoryAs<GLuint*>()[0] = client_framebuffer_id_;
959 SpecializedSetup<cmds::GenFramebuffers, 0>(false); 959 SpecializedSetup<cmds::GenFramebuffers, 0>(false);
960 cmds::GenFramebuffers cmd; 960 cmds::GenFramebuffers cmd;
961 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 961 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
962 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); 962 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd));
963 } 963 }
964 964
965 TEST_F(GLES2DecoderTest1, GenFramebuffersImmediateValidArgs) { 965 TEST_P(GLES2DecoderTest1, GenFramebuffersImmediateValidArgs) {
966 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _)) 966 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
967 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 967 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
968 cmds::GenFramebuffersImmediate* cmd = 968 cmds::GenFramebuffersImmediate* cmd =
969 GetImmediateAs<cmds::GenFramebuffersImmediate>(); 969 GetImmediateAs<cmds::GenFramebuffersImmediate>();
970 GLuint temp = kNewClientId; 970 GLuint temp = kNewClientId;
971 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(true); 971 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(true);
972 cmd->Init(1, &temp); 972 cmd->Init(1, &temp);
973 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp))); 973 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
974 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 974 EXPECT_EQ(GL_NO_ERROR, GetGLError());
975 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL); 975 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL);
976 } 976 }
977 977
978 TEST_F(GLES2DecoderTest1, GenFramebuffersImmediateInvalidArgs) { 978 TEST_P(GLES2DecoderTest1, GenFramebuffersImmediateInvalidArgs) {
979 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0); 979 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0);
980 cmds::GenFramebuffersImmediate* cmd = 980 cmds::GenFramebuffersImmediate* cmd =
981 GetImmediateAs<cmds::GenFramebuffersImmediate>(); 981 GetImmediateAs<cmds::GenFramebuffersImmediate>();
982 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(false); 982 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(false);
983 cmd->Init(1, &client_framebuffer_id_); 983 cmd->Init(1, &client_framebuffer_id_);
984 EXPECT_EQ(error::kInvalidArguments, 984 EXPECT_EQ(error::kInvalidArguments,
985 ExecuteImmediateCmd(*cmd, sizeof(&client_framebuffer_id_))); 985 ExecuteImmediateCmd(*cmd, sizeof(&client_framebuffer_id_)));
986 } 986 }
987 987
988 TEST_F(GLES2DecoderTest1, GenRenderbuffersValidArgs) { 988 TEST_P(GLES2DecoderTest1, GenRenderbuffersValidArgs) {
989 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _)) 989 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
990 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 990 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
991 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; 991 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId;
992 SpecializedSetup<cmds::GenRenderbuffers, 0>(true); 992 SpecializedSetup<cmds::GenRenderbuffers, 0>(true);
993 cmds::GenRenderbuffers cmd; 993 cmds::GenRenderbuffers cmd;
994 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 994 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
995 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 995 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
996 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 996 EXPECT_EQ(GL_NO_ERROR, GetGLError());
997 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL); 997 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL);
998 } 998 }
999 999
1000 TEST_F(GLES2DecoderTest1, GenRenderbuffersInvalidArgs) { 1000 TEST_P(GLES2DecoderTest1, GenRenderbuffersInvalidArgs) {
1001 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0); 1001 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0);
1002 GetSharedMemoryAs<GLuint*>()[0] = client_renderbuffer_id_; 1002 GetSharedMemoryAs<GLuint*>()[0] = client_renderbuffer_id_;
1003 SpecializedSetup<cmds::GenRenderbuffers, 0>(false); 1003 SpecializedSetup<cmds::GenRenderbuffers, 0>(false);
1004 cmds::GenRenderbuffers cmd; 1004 cmds::GenRenderbuffers cmd;
1005 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1005 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1006 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); 1006 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd));
1007 } 1007 }
1008 1008
1009 TEST_F(GLES2DecoderTest1, GenRenderbuffersImmediateValidArgs) { 1009 TEST_P(GLES2DecoderTest1, GenRenderbuffersImmediateValidArgs) {
1010 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _)) 1010 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
1011 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 1011 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
1012 cmds::GenRenderbuffersImmediate* cmd = 1012 cmds::GenRenderbuffersImmediate* cmd =
1013 GetImmediateAs<cmds::GenRenderbuffersImmediate>(); 1013 GetImmediateAs<cmds::GenRenderbuffersImmediate>();
1014 GLuint temp = kNewClientId; 1014 GLuint temp = kNewClientId;
1015 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(true); 1015 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(true);
1016 cmd->Init(1, &temp); 1016 cmd->Init(1, &temp);
1017 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp))); 1017 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
1018 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1018 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1019 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL); 1019 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL);
1020 } 1020 }
1021 1021
1022 TEST_F(GLES2DecoderTest1, GenRenderbuffersImmediateInvalidArgs) { 1022 TEST_P(GLES2DecoderTest1, GenRenderbuffersImmediateInvalidArgs) {
1023 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0); 1023 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0);
1024 cmds::GenRenderbuffersImmediate* cmd = 1024 cmds::GenRenderbuffersImmediate* cmd =
1025 GetImmediateAs<cmds::GenRenderbuffersImmediate>(); 1025 GetImmediateAs<cmds::GenRenderbuffersImmediate>();
1026 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(false); 1026 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(false);
1027 cmd->Init(1, &client_renderbuffer_id_); 1027 cmd->Init(1, &client_renderbuffer_id_);
1028 EXPECT_EQ(error::kInvalidArguments, 1028 EXPECT_EQ(error::kInvalidArguments,
1029 ExecuteImmediateCmd(*cmd, sizeof(&client_renderbuffer_id_))); 1029 ExecuteImmediateCmd(*cmd, sizeof(&client_renderbuffer_id_)));
1030 } 1030 }
1031 1031
1032 TEST_F(GLES2DecoderTest1, GenTexturesValidArgs) { 1032 TEST_P(GLES2DecoderTest1, GenTexturesValidArgs) {
1033 EXPECT_CALL(*gl_, GenTextures(1, _)) 1033 EXPECT_CALL(*gl_, GenTextures(1, _))
1034 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 1034 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
1035 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; 1035 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId;
1036 SpecializedSetup<cmds::GenTextures, 0>(true); 1036 SpecializedSetup<cmds::GenTextures, 0>(true);
1037 cmds::GenTextures cmd; 1037 cmds::GenTextures cmd;
1038 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1038 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1039 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1039 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1040 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1040 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1041 EXPECT_TRUE(GetTexture(kNewClientId) != NULL); 1041 EXPECT_TRUE(GetTexture(kNewClientId) != NULL);
1042 } 1042 }
1043 1043
1044 TEST_F(GLES2DecoderTest1, GenTexturesInvalidArgs) { 1044 TEST_P(GLES2DecoderTest1, GenTexturesInvalidArgs) {
1045 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0); 1045 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0);
1046 GetSharedMemoryAs<GLuint*>()[0] = client_texture_id_; 1046 GetSharedMemoryAs<GLuint*>()[0] = client_texture_id_;
1047 SpecializedSetup<cmds::GenTextures, 0>(false); 1047 SpecializedSetup<cmds::GenTextures, 0>(false);
1048 cmds::GenTextures cmd; 1048 cmds::GenTextures cmd;
1049 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1049 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1050 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); 1050 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd));
1051 } 1051 }
1052 1052
1053 TEST_F(GLES2DecoderTest1, GenTexturesImmediateValidArgs) { 1053 TEST_P(GLES2DecoderTest1, GenTexturesImmediateValidArgs) {
1054 EXPECT_CALL(*gl_, GenTextures(1, _)) 1054 EXPECT_CALL(*gl_, GenTextures(1, _))
1055 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 1055 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
1056 cmds::GenTexturesImmediate* cmd = 1056 cmds::GenTexturesImmediate* cmd =
1057 GetImmediateAs<cmds::GenTexturesImmediate>(); 1057 GetImmediateAs<cmds::GenTexturesImmediate>();
1058 GLuint temp = kNewClientId; 1058 GLuint temp = kNewClientId;
1059 SpecializedSetup<cmds::GenTexturesImmediate, 0>(true); 1059 SpecializedSetup<cmds::GenTexturesImmediate, 0>(true);
1060 cmd->Init(1, &temp); 1060 cmd->Init(1, &temp);
1061 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp))); 1061 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
1062 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1062 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1063 EXPECT_TRUE(GetTexture(kNewClientId) != NULL); 1063 EXPECT_TRUE(GetTexture(kNewClientId) != NULL);
1064 } 1064 }
1065 1065
1066 TEST_F(GLES2DecoderTest1, GenTexturesImmediateInvalidArgs) { 1066 TEST_P(GLES2DecoderTest1, GenTexturesImmediateInvalidArgs) {
1067 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0); 1067 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0);
1068 cmds::GenTexturesImmediate* cmd = 1068 cmds::GenTexturesImmediate* cmd =
1069 GetImmediateAs<cmds::GenTexturesImmediate>(); 1069 GetImmediateAs<cmds::GenTexturesImmediate>();
1070 SpecializedSetup<cmds::GenTexturesImmediate, 0>(false); 1070 SpecializedSetup<cmds::GenTexturesImmediate, 0>(false);
1071 cmd->Init(1, &client_texture_id_); 1071 cmd->Init(1, &client_texture_id_);
1072 EXPECT_EQ(error::kInvalidArguments, 1072 EXPECT_EQ(error::kInvalidArguments,
1073 ExecuteImmediateCmd(*cmd, sizeof(&client_texture_id_))); 1073 ExecuteImmediateCmd(*cmd, sizeof(&client_texture_id_)));
1074 } 1074 }
1075 // TODO(gman): GetActiveAttrib 1075 // TODO(gman): GetActiveAttrib
1076 1076
1077 // TODO(gman): GetActiveUniform 1077 // TODO(gman): GetActiveUniform
1078 1078
1079 // TODO(gman): GetAttachedShaders 1079 // TODO(gman): GetAttachedShaders
1080 1080
1081 // TODO(gman): GetAttribLocation 1081 // TODO(gman): GetAttribLocation
1082 1082
1083 // TODO(gman): GetAttribLocationBucket 1083 // TODO(gman): GetAttribLocationBucket
1084 1084
1085 TEST_F(GLES2DecoderTest1, GetBooleanvValidArgs) { 1085 TEST_P(GLES2DecoderTest1, GetBooleanvValidArgs) {
1086 EXPECT_CALL(*gl_, GetError()) 1086 EXPECT_CALL(*gl_, GetError())
1087 .WillOnce(Return(GL_NO_ERROR)) 1087 .WillOnce(Return(GL_NO_ERROR))
1088 .WillOnce(Return(GL_NO_ERROR)) 1088 .WillOnce(Return(GL_NO_ERROR))
1089 .RetiresOnSaturation(); 1089 .RetiresOnSaturation();
1090 SpecializedSetup<cmds::GetBooleanv, 0>(true); 1090 SpecializedSetup<cmds::GetBooleanv, 0>(true);
1091 typedef cmds::GetBooleanv::Result Result; 1091 typedef cmds::GetBooleanv::Result Result;
1092 Result* result = static_cast<Result*>(shared_memory_address_); 1092 Result* result = static_cast<Result*>(shared_memory_address_);
1093 EXPECT_CALL(*gl_, GetBooleanv(GL_ACTIVE_TEXTURE, result->GetData())); 1093 EXPECT_CALL(*gl_, GetBooleanv(GL_ACTIVE_TEXTURE, result->GetData()));
1094 result->size = 0; 1094 result->size = 0;
1095 cmds::GetBooleanv cmd; 1095 cmds::GetBooleanv cmd;
1096 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_); 1096 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1097 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1097 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1098 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE), 1098 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE),
1099 result->GetNumResults()); 1099 result->GetNumResults());
1100 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1100 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1101 } 1101 }
1102 1102
1103 TEST_F(GLES2DecoderTest1, GetBooleanvInvalidArgs0_0) { 1103 TEST_P(GLES2DecoderTest1, GetBooleanvInvalidArgs0_0) {
1104 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0); 1104 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0);
1105 SpecializedSetup<cmds::GetBooleanv, 0>(false); 1105 SpecializedSetup<cmds::GetBooleanv, 0>(false);
1106 cmds::GetBooleanv::Result* result = 1106 cmds::GetBooleanv::Result* result =
1107 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_); 1107 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
1108 result->size = 0; 1108 result->size = 0;
1109 cmds::GetBooleanv cmd; 1109 cmds::GetBooleanv cmd;
1110 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_); 1110 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
1111 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1111 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1112 EXPECT_EQ(0u, result->size); 1112 EXPECT_EQ(0u, result->size);
1113 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1113 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1114 } 1114 }
1115 1115
1116 TEST_F(GLES2DecoderTest1, GetBooleanvInvalidArgs1_0) { 1116 TEST_P(GLES2DecoderTest1, GetBooleanvInvalidArgs1_0) {
1117 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0); 1117 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0);
1118 SpecializedSetup<cmds::GetBooleanv, 0>(false); 1118 SpecializedSetup<cmds::GetBooleanv, 0>(false);
1119 cmds::GetBooleanv::Result* result = 1119 cmds::GetBooleanv::Result* result =
1120 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_); 1120 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
1121 result->size = 0; 1121 result->size = 0;
1122 cmds::GetBooleanv cmd; 1122 cmds::GetBooleanv cmd;
1123 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0); 1123 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
1124 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1124 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1125 EXPECT_EQ(0u, result->size); 1125 EXPECT_EQ(0u, result->size);
1126 } 1126 }
1127 1127
1128 TEST_F(GLES2DecoderTest1, GetBooleanvInvalidArgs1_1) { 1128 TEST_P(GLES2DecoderTest1, GetBooleanvInvalidArgs1_1) {
1129 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0); 1129 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0);
1130 SpecializedSetup<cmds::GetBooleanv, 0>(false); 1130 SpecializedSetup<cmds::GetBooleanv, 0>(false);
1131 cmds::GetBooleanv::Result* result = 1131 cmds::GetBooleanv::Result* result =
1132 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_); 1132 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
1133 result->size = 0; 1133 result->size = 0;
1134 cmds::GetBooleanv cmd; 1134 cmds::GetBooleanv cmd;
1135 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset); 1135 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
1136 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1136 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1137 EXPECT_EQ(0u, result->size); 1137 EXPECT_EQ(0u, result->size);
1138 } 1138 }
1139 1139
1140 TEST_F(GLES2DecoderTest1, GetBufferParameterivValidArgs) { 1140 TEST_P(GLES2DecoderTest1, GetBufferParameterivValidArgs) {
1141 SpecializedSetup<cmds::GetBufferParameteriv, 0>(true); 1141 SpecializedSetup<cmds::GetBufferParameteriv, 0>(true);
1142 typedef cmds::GetBufferParameteriv::Result Result; 1142 typedef cmds::GetBufferParameteriv::Result Result;
1143 Result* result = static_cast<Result*>(shared_memory_address_); 1143 Result* result = static_cast<Result*>(shared_memory_address_);
1144 result->size = 0; 1144 result->size = 0;
1145 cmds::GetBufferParameteriv cmd; 1145 cmds::GetBufferParameteriv cmd;
1146 cmd.Init(GL_ARRAY_BUFFER, 1146 cmd.Init(GL_ARRAY_BUFFER,
1147 GL_BUFFER_SIZE, 1147 GL_BUFFER_SIZE,
1148 shared_memory_id_, 1148 shared_memory_id_,
1149 shared_memory_offset_); 1149 shared_memory_offset_);
1150 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1150 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1151 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_BUFFER_SIZE), 1151 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_BUFFER_SIZE),
1152 result->GetNumResults()); 1152 result->GetNumResults());
1153 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1153 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1154 } 1154 }
1155 1155
1156 TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs0_0) { 1156 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs0_0) {
1157 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0); 1157 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
1158 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false); 1158 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
1159 cmds::GetBufferParameteriv::Result* result = 1159 cmds::GetBufferParameteriv::Result* result =
1160 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_); 1160 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
1161 result->size = 0; 1161 result->size = 0;
1162 cmds::GetBufferParameteriv cmd; 1162 cmds::GetBufferParameteriv cmd;
1163 cmd.Init(GL_RENDERBUFFER, 1163 cmd.Init(GL_RENDERBUFFER,
1164 GL_BUFFER_SIZE, 1164 GL_BUFFER_SIZE,
1165 shared_memory_id_, 1165 shared_memory_id_,
1166 shared_memory_offset_); 1166 shared_memory_offset_);
1167 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1167 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1168 EXPECT_EQ(0u, result->size); 1168 EXPECT_EQ(0u, result->size);
1169 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1169 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1170 } 1170 }
1171 1171
1172 TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs1_0) { 1172 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs1_0) {
1173 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0); 1173 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
1174 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false); 1174 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
1175 cmds::GetBufferParameteriv::Result* result = 1175 cmds::GetBufferParameteriv::Result* result =
1176 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_); 1176 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
1177 result->size = 0; 1177 result->size = 0;
1178 cmds::GetBufferParameteriv cmd; 1178 cmds::GetBufferParameteriv cmd;
1179 cmd.Init(GL_ARRAY_BUFFER, 1179 cmd.Init(GL_ARRAY_BUFFER,
1180 GL_PIXEL_PACK_BUFFER, 1180 GL_PIXEL_PACK_BUFFER,
1181 shared_memory_id_, 1181 shared_memory_id_,
1182 shared_memory_offset_); 1182 shared_memory_offset_);
1183 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1183 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1184 EXPECT_EQ(0u, result->size); 1184 EXPECT_EQ(0u, result->size);
1185 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1185 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1186 } 1186 }
1187 1187
1188 TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_0) { 1188 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_0) {
1189 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0); 1189 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
1190 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false); 1190 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
1191 cmds::GetBufferParameteriv::Result* result = 1191 cmds::GetBufferParameteriv::Result* result =
1192 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_); 1192 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
1193 result->size = 0; 1193 result->size = 0;
1194 cmds::GetBufferParameteriv cmd; 1194 cmds::GetBufferParameteriv cmd;
1195 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, kInvalidSharedMemoryId, 0); 1195 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, kInvalidSharedMemoryId, 0);
1196 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1196 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1197 EXPECT_EQ(0u, result->size); 1197 EXPECT_EQ(0u, result->size);
1198 } 1198 }
1199 1199
1200 TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_1) { 1200 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_1) {
1201 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0); 1201 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
1202 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false); 1202 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
1203 cmds::GetBufferParameteriv::Result* result = 1203 cmds::GetBufferParameteriv::Result* result =
1204 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_); 1204 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
1205 result->size = 0; 1205 result->size = 0;
1206 cmds::GetBufferParameteriv cmd; 1206 cmds::GetBufferParameteriv cmd;
1207 cmd.Init(GL_ARRAY_BUFFER, 1207 cmd.Init(GL_ARRAY_BUFFER,
1208 GL_BUFFER_SIZE, 1208 GL_BUFFER_SIZE,
1209 shared_memory_id_, 1209 shared_memory_id_,
1210 kInvalidSharedMemoryOffset); 1210 kInvalidSharedMemoryOffset);
1211 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1211 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1212 EXPECT_EQ(0u, result->size); 1212 EXPECT_EQ(0u, result->size);
1213 } 1213 }
1214 1214
1215 TEST_F(GLES2DecoderTest1, GetErrorValidArgs) { 1215 TEST_P(GLES2DecoderTest1, GetErrorValidArgs) {
1216 EXPECT_CALL(*gl_, GetError()); 1216 EXPECT_CALL(*gl_, GetError());
1217 SpecializedSetup<cmds::GetError, 0>(true); 1217 SpecializedSetup<cmds::GetError, 0>(true);
1218 cmds::GetError cmd; 1218 cmds::GetError cmd;
1219 cmd.Init(shared_memory_id_, shared_memory_offset_); 1219 cmd.Init(shared_memory_id_, shared_memory_offset_);
1220 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1220 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1221 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1221 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1222 } 1222 }
1223 1223
1224 TEST_F(GLES2DecoderTest1, GetErrorInvalidArgsBadSharedMemoryId) { 1224 TEST_P(GLES2DecoderTest1, GetErrorInvalidArgsBadSharedMemoryId) {
1225 EXPECT_CALL(*gl_, GetError()).Times(0); 1225 EXPECT_CALL(*gl_, GetError()).Times(0);
1226 SpecializedSetup<cmds::GetError, 0>(false); 1226 SpecializedSetup<cmds::GetError, 0>(false);
1227 cmds::GetError cmd; 1227 cmds::GetError cmd;
1228 cmd.Init(kInvalidSharedMemoryId, shared_memory_offset_); 1228 cmd.Init(kInvalidSharedMemoryId, shared_memory_offset_);
1229 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1229 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1230 cmd.Init(shared_memory_id_, kInvalidSharedMemoryOffset); 1230 cmd.Init(shared_memory_id_, kInvalidSharedMemoryOffset);
1231 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1231 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1232 } 1232 }
1233 1233
1234 TEST_F(GLES2DecoderTest1, GetFloatvValidArgs) { 1234 TEST_P(GLES2DecoderTest1, GetFloatvValidArgs) {
1235 EXPECT_CALL(*gl_, GetError()) 1235 EXPECT_CALL(*gl_, GetError())
1236 .WillOnce(Return(GL_NO_ERROR)) 1236 .WillOnce(Return(GL_NO_ERROR))
1237 .WillOnce(Return(GL_NO_ERROR)) 1237 .WillOnce(Return(GL_NO_ERROR))
1238 .RetiresOnSaturation(); 1238 .RetiresOnSaturation();
1239 SpecializedSetup<cmds::GetFloatv, 0>(true); 1239 SpecializedSetup<cmds::GetFloatv, 0>(true);
1240 typedef cmds::GetFloatv::Result Result; 1240 typedef cmds::GetFloatv::Result Result;
1241 Result* result = static_cast<Result*>(shared_memory_address_); 1241 Result* result = static_cast<Result*>(shared_memory_address_);
1242 EXPECT_CALL(*gl_, GetFloatv(GL_ACTIVE_TEXTURE, result->GetData())); 1242 EXPECT_CALL(*gl_, GetFloatv(GL_ACTIVE_TEXTURE, result->GetData()));
1243 result->size = 0; 1243 result->size = 0;
1244 cmds::GetFloatv cmd; 1244 cmds::GetFloatv cmd;
1245 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_); 1245 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1246 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1246 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1247 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE), 1247 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE),
1248 result->GetNumResults()); 1248 result->GetNumResults());
1249 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1249 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1250 } 1250 }
1251 1251
1252 TEST_F(GLES2DecoderTest1, GetFloatvInvalidArgs0_0) { 1252 TEST_P(GLES2DecoderTest1, GetFloatvInvalidArgs0_0) {
1253 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0); 1253 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0);
1254 SpecializedSetup<cmds::GetFloatv, 0>(false); 1254 SpecializedSetup<cmds::GetFloatv, 0>(false);
1255 cmds::GetFloatv::Result* result = 1255 cmds::GetFloatv::Result* result =
1256 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_); 1256 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1257 result->size = 0; 1257 result->size = 0;
1258 cmds::GetFloatv cmd; 1258 cmds::GetFloatv cmd;
1259 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_); 1259 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
1260 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1260 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1261 EXPECT_EQ(0u, result->size); 1261 EXPECT_EQ(0u, result->size);
1262 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1262 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1263 } 1263 }
1264 1264
1265 TEST_F(GLES2DecoderTest1, GetFloatvInvalidArgs1_0) { 1265 TEST_P(GLES2DecoderTest1, GetFloatvInvalidArgs1_0) {
1266 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0); 1266 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0);
1267 SpecializedSetup<cmds::GetFloatv, 0>(false); 1267 SpecializedSetup<cmds::GetFloatv, 0>(false);
1268 cmds::GetFloatv::Result* result = 1268 cmds::GetFloatv::Result* result =
1269 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_); 1269 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1270 result->size = 0; 1270 result->size = 0;
1271 cmds::GetFloatv cmd; 1271 cmds::GetFloatv cmd;
1272 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0); 1272 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
1273 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1273 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1274 EXPECT_EQ(0u, result->size); 1274 EXPECT_EQ(0u, result->size);
1275 } 1275 }
1276 1276
1277 TEST_F(GLES2DecoderTest1, GetFloatvInvalidArgs1_1) { 1277 TEST_P(GLES2DecoderTest1, GetFloatvInvalidArgs1_1) {
1278 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0); 1278 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0);
1279 SpecializedSetup<cmds::GetFloatv, 0>(false); 1279 SpecializedSetup<cmds::GetFloatv, 0>(false);
1280 cmds::GetFloatv::Result* result = 1280 cmds::GetFloatv::Result* result =
1281 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_); 1281 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1282 result->size = 0; 1282 result->size = 0;
1283 cmds::GetFloatv cmd; 1283 cmds::GetFloatv cmd;
1284 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset); 1284 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
1285 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1285 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1286 EXPECT_EQ(0u, result->size); 1286 EXPECT_EQ(0u, result->size);
1287 } 1287 }
1288 1288
1289 TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivValidArgs) { 1289 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivValidArgs) {
1290 EXPECT_CALL(*gl_, GetError()) 1290 EXPECT_CALL(*gl_, GetError())
1291 .WillOnce(Return(GL_NO_ERROR)) 1291 .WillOnce(Return(GL_NO_ERROR))
1292 .WillOnce(Return(GL_NO_ERROR)) 1292 .WillOnce(Return(GL_NO_ERROR))
1293 .RetiresOnSaturation(); 1293 .RetiresOnSaturation();
1294 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(true); 1294 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(true);
1295 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result; 1295 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result;
1296 Result* result = static_cast<Result*>(shared_memory_address_); 1296 Result* result = static_cast<Result*>(shared_memory_address_);
1297 EXPECT_CALL(*gl_, 1297 EXPECT_CALL(*gl_,
1298 GetFramebufferAttachmentParameterivEXT( 1298 GetFramebufferAttachmentParameterivEXT(
1299 GL_FRAMEBUFFER, 1299 GL_FRAMEBUFFER,
1300 GL_COLOR_ATTACHMENT0, 1300 GL_COLOR_ATTACHMENT0,
1301 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, 1301 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
1302 result->GetData())); 1302 result->GetData()));
1303 result->size = 0; 1303 result->size = 0;
1304 cmds::GetFramebufferAttachmentParameteriv cmd; 1304 cmds::GetFramebufferAttachmentParameteriv cmd;
1305 cmd.Init(GL_FRAMEBUFFER, 1305 cmd.Init(GL_FRAMEBUFFER,
1306 GL_COLOR_ATTACHMENT0, 1306 GL_COLOR_ATTACHMENT0,
1307 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, 1307 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
1308 shared_memory_id_, 1308 shared_memory_id_,
1309 shared_memory_offset_); 1309 shared_memory_offset_);
1310 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1310 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1311 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1311 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1312 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE), 1312 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE),
1313 result->GetNumResults()); 1313 result->GetNumResults());
1314 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1314 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1315 } 1315 }
1316 1316
1317 TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_0) { 1317 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_0) {
1318 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)) 1318 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1319 .Times(0); 1319 .Times(0);
1320 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false); 1320 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1321 cmds::GetFramebufferAttachmentParameteriv::Result* result = 1321 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1322 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>( 1322 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1323 shared_memory_address_); 1323 shared_memory_address_);
1324 result->size = 0; 1324 result->size = 0;
1325 cmds::GetFramebufferAttachmentParameteriv cmd; 1325 cmds::GetFramebufferAttachmentParameteriv cmd;
1326 cmd.Init(GL_DRAW_FRAMEBUFFER, 1326 cmd.Init(GL_DRAW_FRAMEBUFFER,
1327 GL_COLOR_ATTACHMENT0, 1327 GL_COLOR_ATTACHMENT0,
1328 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, 1328 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
1329 shared_memory_id_, 1329 shared_memory_id_,
1330 shared_memory_offset_); 1330 shared_memory_offset_);
1331 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1331 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1332 EXPECT_EQ(0u, result->size); 1332 EXPECT_EQ(0u, result->size);
1333 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1333 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1334 } 1334 }
1335 1335
1336 TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_1) { 1336 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_1) {
1337 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)) 1337 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1338 .Times(0); 1338 .Times(0);
1339 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false); 1339 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1340 cmds::GetFramebufferAttachmentParameteriv::Result* result = 1340 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1341 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>( 1341 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1342 shared_memory_address_); 1342 shared_memory_address_);
1343 result->size = 0; 1343 result->size = 0;
1344 cmds::GetFramebufferAttachmentParameteriv cmd; 1344 cmds::GetFramebufferAttachmentParameteriv cmd;
1345 cmd.Init(GL_READ_FRAMEBUFFER, 1345 cmd.Init(GL_READ_FRAMEBUFFER,
1346 GL_COLOR_ATTACHMENT0, 1346 GL_COLOR_ATTACHMENT0,
1347 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, 1347 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
1348 shared_memory_id_, 1348 shared_memory_id_,
1349 shared_memory_offset_); 1349 shared_memory_offset_);
1350 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1350 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1351 EXPECT_EQ(0u, result->size); 1351 EXPECT_EQ(0u, result->size);
1352 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1352 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1353 } 1353 }
1354 1354
1355 TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_0) { 1355 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_0) {
1356 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)) 1356 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1357 .Times(0); 1357 .Times(0);
1358 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false); 1358 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1359 cmds::GetFramebufferAttachmentParameteriv::Result* result = 1359 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1360 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>( 1360 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1361 shared_memory_address_); 1361 shared_memory_address_);
1362 result->size = 0; 1362 result->size = 0;
1363 cmds::GetFramebufferAttachmentParameteriv cmd; 1363 cmds::GetFramebufferAttachmentParameteriv cmd;
1364 cmd.Init(GL_FRAMEBUFFER, 1364 cmd.Init(GL_FRAMEBUFFER,
1365 GL_COLOR_ATTACHMENT0, 1365 GL_COLOR_ATTACHMENT0,
1366 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, 1366 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
1367 kInvalidSharedMemoryId, 1367 kInvalidSharedMemoryId,
1368 0); 1368 0);
1369 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1369 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1370 EXPECT_EQ(0u, result->size); 1370 EXPECT_EQ(0u, result->size);
1371 } 1371 }
1372 1372
1373 TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_1) { 1373 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_1) {
1374 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)) 1374 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1375 .Times(0); 1375 .Times(0);
1376 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false); 1376 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1377 cmds::GetFramebufferAttachmentParameteriv::Result* result = 1377 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1378 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>( 1378 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1379 shared_memory_address_); 1379 shared_memory_address_);
1380 result->size = 0; 1380 result->size = 0;
1381 cmds::GetFramebufferAttachmentParameteriv cmd; 1381 cmds::GetFramebufferAttachmentParameteriv cmd;
1382 cmd.Init(GL_FRAMEBUFFER, 1382 cmd.Init(GL_FRAMEBUFFER,
1383 GL_COLOR_ATTACHMENT0, 1383 GL_COLOR_ATTACHMENT0,
1384 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, 1384 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
1385 shared_memory_id_, 1385 shared_memory_id_,
1386 kInvalidSharedMemoryOffset); 1386 kInvalidSharedMemoryOffset);
1387 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1387 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1388 EXPECT_EQ(0u, result->size); 1388 EXPECT_EQ(0u, result->size);
1389 } 1389 }
1390 1390
1391 TEST_F(GLES2DecoderTest1, GetIntegervValidArgs) { 1391 TEST_P(GLES2DecoderTest1, GetIntegervValidArgs) {
1392 EXPECT_CALL(*gl_, GetError()) 1392 EXPECT_CALL(*gl_, GetError())
1393 .WillOnce(Return(GL_NO_ERROR)) 1393 .WillOnce(Return(GL_NO_ERROR))
1394 .WillOnce(Return(GL_NO_ERROR)) 1394 .WillOnce(Return(GL_NO_ERROR))
1395 .RetiresOnSaturation(); 1395 .RetiresOnSaturation();
1396 SpecializedSetup<cmds::GetIntegerv, 0>(true); 1396 SpecializedSetup<cmds::GetIntegerv, 0>(true);
1397 typedef cmds::GetIntegerv::Result Result; 1397 typedef cmds::GetIntegerv::Result Result;
1398 Result* result = static_cast<Result*>(shared_memory_address_); 1398 Result* result = static_cast<Result*>(shared_memory_address_);
1399 EXPECT_CALL(*gl_, GetIntegerv(GL_ACTIVE_TEXTURE, result->GetData())); 1399 EXPECT_CALL(*gl_, GetIntegerv(GL_ACTIVE_TEXTURE, result->GetData()));
1400 result->size = 0; 1400 result->size = 0;
1401 cmds::GetIntegerv cmd; 1401 cmds::GetIntegerv cmd;
1402 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_); 1402 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1403 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1403 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1404 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE), 1404 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE),
1405 result->GetNumResults()); 1405 result->GetNumResults());
1406 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1406 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1407 } 1407 }
1408 1408
1409 TEST_F(GLES2DecoderTest1, GetIntegervInvalidArgs0_0) { 1409 TEST_P(GLES2DecoderTest1, GetIntegervInvalidArgs0_0) {
1410 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0); 1410 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1411 SpecializedSetup<cmds::GetIntegerv, 0>(false); 1411 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1412 cmds::GetIntegerv::Result* result = 1412 cmds::GetIntegerv::Result* result =
1413 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_); 1413 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1414 result->size = 0; 1414 result->size = 0;
1415 cmds::GetIntegerv cmd; 1415 cmds::GetIntegerv cmd;
1416 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_); 1416 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
1417 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1417 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1418 EXPECT_EQ(0u, result->size); 1418 EXPECT_EQ(0u, result->size);
1419 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1419 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1420 } 1420 }
1421 1421
1422 TEST_F(GLES2DecoderTest1, GetIntegervInvalidArgs1_0) { 1422 TEST_P(GLES2DecoderTest1, GetIntegervInvalidArgs1_0) {
1423 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0); 1423 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1424 SpecializedSetup<cmds::GetIntegerv, 0>(false); 1424 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1425 cmds::GetIntegerv::Result* result = 1425 cmds::GetIntegerv::Result* result =
1426 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_); 1426 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1427 result->size = 0; 1427 result->size = 0;
1428 cmds::GetIntegerv cmd; 1428 cmds::GetIntegerv cmd;
1429 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0); 1429 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
1430 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1430 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1431 EXPECT_EQ(0u, result->size); 1431 EXPECT_EQ(0u, result->size);
1432 } 1432 }
1433 1433
1434 TEST_F(GLES2DecoderTest1, GetIntegervInvalidArgs1_1) { 1434 TEST_P(GLES2DecoderTest1, GetIntegervInvalidArgs1_1) {
1435 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0); 1435 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1436 SpecializedSetup<cmds::GetIntegerv, 0>(false); 1436 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1437 cmds::GetIntegerv::Result* result = 1437 cmds::GetIntegerv::Result* result =
1438 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_); 1438 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1439 result->size = 0; 1439 result->size = 0;
1440 cmds::GetIntegerv cmd; 1440 cmds::GetIntegerv cmd;
1441 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset); 1441 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
1442 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1442 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1443 EXPECT_EQ(0u, result->size); 1443 EXPECT_EQ(0u, result->size);
1444 } 1444 }
1445 1445
1446 TEST_F(GLES2DecoderTest1, GetProgramivValidArgs) { 1446 TEST_P(GLES2DecoderTest1, GetProgramivValidArgs) {
1447 SpecializedSetup<cmds::GetProgramiv, 0>(true); 1447 SpecializedSetup<cmds::GetProgramiv, 0>(true);
1448 typedef cmds::GetProgramiv::Result Result; 1448 typedef cmds::GetProgramiv::Result Result;
1449 Result* result = static_cast<Result*>(shared_memory_address_); 1449 Result* result = static_cast<Result*>(shared_memory_address_);
1450 result->size = 0; 1450 result->size = 0;
1451 cmds::GetProgramiv cmd; 1451 cmds::GetProgramiv cmd;
1452 cmd.Init(client_program_id_, 1452 cmd.Init(client_program_id_,
1453 GL_DELETE_STATUS, 1453 GL_DELETE_STATUS,
1454 shared_memory_id_, 1454 shared_memory_id_,
1455 shared_memory_offset_); 1455 shared_memory_offset_);
1456 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1456 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1457 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DELETE_STATUS), 1457 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DELETE_STATUS),
1458 result->GetNumResults()); 1458 result->GetNumResults());
1459 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1459 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1460 } 1460 }
1461 1461
1462 TEST_F(GLES2DecoderTest1, GetProgramivInvalidArgs2_0) { 1462 TEST_P(GLES2DecoderTest1, GetProgramivInvalidArgs2_0) {
1463 EXPECT_CALL(*gl_, GetProgramiv(_, _, _)).Times(0); 1463 EXPECT_CALL(*gl_, GetProgramiv(_, _, _)).Times(0);
1464 SpecializedSetup<cmds::GetProgramiv, 0>(false); 1464 SpecializedSetup<cmds::GetProgramiv, 0>(false);
1465 cmds::GetProgramiv::Result* result = 1465 cmds::GetProgramiv::Result* result =
1466 static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_); 1466 static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_);
1467 result->size = 0; 1467 result->size = 0;
1468 cmds::GetProgramiv cmd; 1468 cmds::GetProgramiv cmd;
1469 cmd.Init(client_program_id_, GL_DELETE_STATUS, kInvalidSharedMemoryId, 0); 1469 cmd.Init(client_program_id_, GL_DELETE_STATUS, kInvalidSharedMemoryId, 0);
1470 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1470 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1471 EXPECT_EQ(0u, result->size); 1471 EXPECT_EQ(0u, result->size);
1472 } 1472 }
1473 1473
1474 TEST_F(GLES2DecoderTest1, GetProgramivInvalidArgs2_1) { 1474 TEST_P(GLES2DecoderTest1, GetProgramivInvalidArgs2_1) {
1475 EXPECT_CALL(*gl_, GetProgramiv(_, _, _)).Times(0); 1475 EXPECT_CALL(*gl_, GetProgramiv(_, _, _)).Times(0);
1476 SpecializedSetup<cmds::GetProgramiv, 0>(false); 1476 SpecializedSetup<cmds::GetProgramiv, 0>(false);
1477 cmds::GetProgramiv::Result* result = 1477 cmds::GetProgramiv::Result* result =
1478 static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_); 1478 static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_);
1479 result->size = 0; 1479 result->size = 0;
1480 cmds::GetProgramiv cmd; 1480 cmds::GetProgramiv cmd;
1481 cmd.Init(client_program_id_, 1481 cmd.Init(client_program_id_,
1482 GL_DELETE_STATUS, 1482 GL_DELETE_STATUS,
1483 shared_memory_id_, 1483 shared_memory_id_,
1484 kInvalidSharedMemoryOffset); 1484 kInvalidSharedMemoryOffset);
1485 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1485 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1486 EXPECT_EQ(0u, result->size); 1486 EXPECT_EQ(0u, result->size);
1487 } 1487 }
1488 1488
1489 TEST_F(GLES2DecoderTest1, GetProgramInfoLogValidArgs) { 1489 TEST_P(GLES2DecoderTest1, GetProgramInfoLogValidArgs) {
1490 const char* kInfo = "hello"; 1490 const char* kInfo = "hello";
1491 const uint32 kBucketId = 123; 1491 const uint32 kBucketId = 123;
1492 SpecializedSetup<cmds::GetProgramInfoLog, 0>(true); 1492 SpecializedSetup<cmds::GetProgramInfoLog, 0>(true);
1493 1493
1494 cmds::GetProgramInfoLog cmd; 1494 cmds::GetProgramInfoLog cmd;
1495 cmd.Init(client_program_id_, kBucketId); 1495 cmd.Init(client_program_id_, kBucketId);
1496 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1496 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1497 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 1497 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
1498 ASSERT_TRUE(bucket != NULL); 1498 ASSERT_TRUE(bucket != NULL);
1499 EXPECT_EQ(strlen(kInfo) + 1, bucket->size()); 1499 EXPECT_EQ(strlen(kInfo) + 1, bucket->size());
1500 EXPECT_EQ(0, 1500 EXPECT_EQ(0,
1501 memcmp(bucket->GetData(0, bucket->size()), kInfo, bucket->size())); 1501 memcmp(bucket->GetData(0, bucket->size()), kInfo, bucket->size()));
1502 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1502 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1503 } 1503 }
1504 1504
1505 TEST_F(GLES2DecoderTest1, GetProgramInfoLogInvalidArgs) { 1505 TEST_P(GLES2DecoderTest1, GetProgramInfoLogInvalidArgs) {
1506 const uint32 kBucketId = 123; 1506 const uint32 kBucketId = 123;
1507 cmds::GetProgramInfoLog cmd; 1507 cmds::GetProgramInfoLog cmd;
1508 cmd.Init(kInvalidClientId, kBucketId); 1508 cmd.Init(kInvalidClientId, kBucketId);
1509 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1509 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1510 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1510 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1511 } 1511 }
1512 1512
1513 TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivValidArgs) { 1513 TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivValidArgs) {
1514 EXPECT_CALL(*gl_, GetError()) 1514 EXPECT_CALL(*gl_, GetError())
1515 .WillOnce(Return(GL_NO_ERROR)) 1515 .WillOnce(Return(GL_NO_ERROR))
1516 .WillOnce(Return(GL_NO_ERROR)) 1516 .WillOnce(Return(GL_NO_ERROR))
1517 .RetiresOnSaturation(); 1517 .RetiresOnSaturation();
1518 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(true); 1518 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(true);
1519 typedef cmds::GetRenderbufferParameteriv::Result Result; 1519 typedef cmds::GetRenderbufferParameteriv::Result Result;
1520 Result* result = static_cast<Result*>(shared_memory_address_); 1520 Result* result = static_cast<Result*>(shared_memory_address_);
1521 EXPECT_CALL( 1521 EXPECT_CALL(
1522 *gl_, 1522 *gl_,
1523 GetRenderbufferParameterivEXT( 1523 GetRenderbufferParameterivEXT(
1524 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, result->GetData())); 1524 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, result->GetData()));
1525 result->size = 0; 1525 result->size = 0;
1526 cmds::GetRenderbufferParameteriv cmd; 1526 cmds::GetRenderbufferParameteriv cmd;
1527 cmd.Init(GL_RENDERBUFFER, 1527 cmd.Init(GL_RENDERBUFFER,
1528 GL_RENDERBUFFER_RED_SIZE, 1528 GL_RENDERBUFFER_RED_SIZE,
1529 shared_memory_id_, 1529 shared_memory_id_,
1530 shared_memory_offset_); 1530 shared_memory_offset_);
1531 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1531 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1532 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1532 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1533 GL_RENDERBUFFER_RED_SIZE), 1533 GL_RENDERBUFFER_RED_SIZE),
1534 result->GetNumResults()); 1534 result->GetNumResults());
1535 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1535 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1536 } 1536 }
1537 1537
1538 TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs0_0) { 1538 TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs0_0) {
1539 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0); 1539 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0);
1540 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false); 1540 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false);
1541 cmds::GetRenderbufferParameteriv::Result* result = 1541 cmds::GetRenderbufferParameteriv::Result* result =
1542 static_cast<cmds::GetRenderbufferParameteriv::Result*>( 1542 static_cast<cmds::GetRenderbufferParameteriv::Result*>(
1543 shared_memory_address_); 1543 shared_memory_address_);
1544 result->size = 0; 1544 result->size = 0;
1545 cmds::GetRenderbufferParameteriv cmd; 1545 cmds::GetRenderbufferParameteriv cmd;
1546 cmd.Init(GL_FRAMEBUFFER, 1546 cmd.Init(GL_FRAMEBUFFER,
1547 GL_RENDERBUFFER_RED_SIZE, 1547 GL_RENDERBUFFER_RED_SIZE,
1548 shared_memory_id_, 1548 shared_memory_id_,
1549 shared_memory_offset_); 1549 shared_memory_offset_);
1550 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1550 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1551 EXPECT_EQ(0u, result->size); 1551 EXPECT_EQ(0u, result->size);
1552 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1552 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1553 } 1553 }
1554 1554
1555 TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_0) { 1555 TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_0) {
1556 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0); 1556 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0);
1557 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false); 1557 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false);
1558 cmds::GetRenderbufferParameteriv::Result* result = 1558 cmds::GetRenderbufferParameteriv::Result* result =
1559 static_cast<cmds::GetRenderbufferParameteriv::Result*>( 1559 static_cast<cmds::GetRenderbufferParameteriv::Result*>(
1560 shared_memory_address_); 1560 shared_memory_address_);
1561 result->size = 0; 1561 result->size = 0;
1562 cmds::GetRenderbufferParameteriv cmd; 1562 cmds::GetRenderbufferParameteriv cmd;
1563 cmd.Init( 1563 cmd.Init(
1564 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, kInvalidSharedMemoryId, 0); 1564 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, kInvalidSharedMemoryId, 0);
1565 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1565 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1566 EXPECT_EQ(0u, result->size); 1566 EXPECT_EQ(0u, result->size);
1567 } 1567 }
1568 1568
1569 TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_1) { 1569 TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_1) {
1570 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0); 1570 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0);
1571 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false); 1571 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false);
1572 cmds::GetRenderbufferParameteriv::Result* result = 1572 cmds::GetRenderbufferParameteriv::Result* result =
1573 static_cast<cmds::GetRenderbufferParameteriv::Result*>( 1573 static_cast<cmds::GetRenderbufferParameteriv::Result*>(
1574 shared_memory_address_); 1574 shared_memory_address_);
1575 result->size = 0; 1575 result->size = 0;
1576 cmds::GetRenderbufferParameteriv cmd; 1576 cmds::GetRenderbufferParameteriv cmd;
1577 cmd.Init(GL_RENDERBUFFER, 1577 cmd.Init(GL_RENDERBUFFER,
1578 GL_RENDERBUFFER_RED_SIZE, 1578 GL_RENDERBUFFER_RED_SIZE,
1579 shared_memory_id_, 1579 shared_memory_id_,
1580 kInvalidSharedMemoryOffset); 1580 kInvalidSharedMemoryOffset);
1581 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1581 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1582 EXPECT_EQ(0u, result->size); 1582 EXPECT_EQ(0u, result->size);
1583 } 1583 }
1584 1584
1585 TEST_F(GLES2DecoderTest1, GetShaderivValidArgs) { 1585 TEST_P(GLES2DecoderTest1, GetShaderivValidArgs) {
1586 EXPECT_CALL(*gl_, GetError()) 1586 EXPECT_CALL(*gl_, GetError())
1587 .WillOnce(Return(GL_NO_ERROR)) 1587 .WillOnce(Return(GL_NO_ERROR))
1588 .WillOnce(Return(GL_NO_ERROR)) 1588 .WillOnce(Return(GL_NO_ERROR))
1589 .RetiresOnSaturation(); 1589 .RetiresOnSaturation();
1590 SpecializedSetup<cmds::GetShaderiv, 0>(true); 1590 SpecializedSetup<cmds::GetShaderiv, 0>(true);
1591 typedef cmds::GetShaderiv::Result Result; 1591 typedef cmds::GetShaderiv::Result Result;
1592 Result* result = static_cast<Result*>(shared_memory_address_); 1592 Result* result = static_cast<Result*>(shared_memory_address_);
1593 EXPECT_CALL(*gl_, 1593 EXPECT_CALL(*gl_,
1594 GetShaderiv(kServiceShaderId, GL_SHADER_TYPE, result->GetData())); 1594 GetShaderiv(kServiceShaderId, GL_SHADER_TYPE, result->GetData()));
1595 result->size = 0; 1595 result->size = 0;
1596 cmds::GetShaderiv cmd; 1596 cmds::GetShaderiv cmd;
1597 cmd.Init(client_shader_id_, 1597 cmd.Init(client_shader_id_,
1598 GL_SHADER_TYPE, 1598 GL_SHADER_TYPE,
1599 shared_memory_id_, 1599 shared_memory_id_,
1600 shared_memory_offset_); 1600 shared_memory_offset_);
1601 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1601 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1602 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_SHADER_TYPE), 1602 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_SHADER_TYPE),
1603 result->GetNumResults()); 1603 result->GetNumResults());
1604 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1604 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1605 } 1605 }
1606 1606
1607 TEST_F(GLES2DecoderTest1, GetShaderivInvalidArgs2_0) { 1607 TEST_P(GLES2DecoderTest1, GetShaderivInvalidArgs2_0) {
1608 EXPECT_CALL(*gl_, GetShaderiv(_, _, _)).Times(0); 1608 EXPECT_CALL(*gl_, GetShaderiv(_, _, _)).Times(0);
1609 SpecializedSetup<cmds::GetShaderiv, 0>(false); 1609 SpecializedSetup<cmds::GetShaderiv, 0>(false);
1610 cmds::GetShaderiv::Result* result = 1610 cmds::GetShaderiv::Result* result =
1611 static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_); 1611 static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_);
1612 result->size = 0; 1612 result->size = 0;
1613 cmds::GetShaderiv cmd; 1613 cmds::GetShaderiv cmd;
1614 cmd.Init(client_shader_id_, GL_SHADER_TYPE, kInvalidSharedMemoryId, 0); 1614 cmd.Init(client_shader_id_, GL_SHADER_TYPE, kInvalidSharedMemoryId, 0);
1615 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1615 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1616 EXPECT_EQ(0u, result->size); 1616 EXPECT_EQ(0u, result->size);
1617 } 1617 }
1618 1618
1619 TEST_F(GLES2DecoderTest1, GetShaderivInvalidArgs2_1) { 1619 TEST_P(GLES2DecoderTest1, GetShaderivInvalidArgs2_1) {
1620 EXPECT_CALL(*gl_, GetShaderiv(_, _, _)).Times(0); 1620 EXPECT_CALL(*gl_, GetShaderiv(_, _, _)).Times(0);
1621 SpecializedSetup<cmds::GetShaderiv, 0>(false); 1621 SpecializedSetup<cmds::GetShaderiv, 0>(false);
1622 cmds::GetShaderiv::Result* result = 1622 cmds::GetShaderiv::Result* result =
1623 static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_); 1623 static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_);
1624 result->size = 0; 1624 result->size = 0;
1625 cmds::GetShaderiv cmd; 1625 cmds::GetShaderiv cmd;
1626 cmd.Init(client_shader_id_, 1626 cmd.Init(client_shader_id_,
1627 GL_SHADER_TYPE, 1627 GL_SHADER_TYPE,
1628 shared_memory_id_, 1628 shared_memory_id_,
1629 kInvalidSharedMemoryOffset); 1629 kInvalidSharedMemoryOffset);
1630 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1630 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1631 EXPECT_EQ(0u, result->size); 1631 EXPECT_EQ(0u, result->size);
1632 } 1632 }
1633 // TODO(gman): GetShaderInfoLog 1633 // TODO(gman): GetShaderInfoLog
1634 // TODO(gman): GetShaderPrecisionFormat 1634 // TODO(gman): GetShaderPrecisionFormat
1635 1635
1636 // TODO(gman): GetShaderSource 1636 // TODO(gman): GetShaderSource
1637 // TODO(gman): GetString 1637 // TODO(gman): GetString
1638 1638
1639 TEST_F(GLES2DecoderTest1, GetTexParameterfvValidArgs) { 1639 TEST_P(GLES2DecoderTest1, GetTexParameterfvValidArgs) {
1640 EXPECT_CALL(*gl_, GetError()) 1640 EXPECT_CALL(*gl_, GetError())
1641 .WillOnce(Return(GL_NO_ERROR)) 1641 .WillOnce(Return(GL_NO_ERROR))
1642 .WillOnce(Return(GL_NO_ERROR)) 1642 .WillOnce(Return(GL_NO_ERROR))
1643 .RetiresOnSaturation(); 1643 .RetiresOnSaturation();
1644 SpecializedSetup<cmds::GetTexParameterfv, 0>(true); 1644 SpecializedSetup<cmds::GetTexParameterfv, 0>(true);
1645 typedef cmds::GetTexParameterfv::Result Result; 1645 typedef cmds::GetTexParameterfv::Result Result;
1646 Result* result = static_cast<Result*>(shared_memory_address_); 1646 Result* result = static_cast<Result*>(shared_memory_address_);
1647 EXPECT_CALL(*gl_, 1647 EXPECT_CALL(*gl_,
1648 GetTexParameterfv( 1648 GetTexParameterfv(
1649 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData())); 1649 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData()));
1650 result->size = 0; 1650 result->size = 0;
1651 cmds::GetTexParameterfv cmd; 1651 cmds::GetTexParameterfv cmd;
1652 cmd.Init(GL_TEXTURE_2D, 1652 cmd.Init(GL_TEXTURE_2D,
1653 GL_TEXTURE_MAG_FILTER, 1653 GL_TEXTURE_MAG_FILTER,
1654 shared_memory_id_, 1654 shared_memory_id_,
1655 shared_memory_offset_); 1655 shared_memory_offset_);
1656 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1656 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1657 EXPECT_EQ( 1657 EXPECT_EQ(
1658 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_TEXTURE_MAG_FILTER), 1658 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_TEXTURE_MAG_FILTER),
1659 result->GetNumResults()); 1659 result->GetNumResults());
1660 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1660 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1661 } 1661 }
1662 1662
1663 TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs0_0) { 1663 TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs0_0) {
1664 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0); 1664 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1665 SpecializedSetup<cmds::GetTexParameterfv, 0>(false); 1665 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1666 cmds::GetTexParameterfv::Result* result = 1666 cmds::GetTexParameterfv::Result* result =
1667 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_); 1667 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1668 result->size = 0; 1668 result->size = 0;
1669 cmds::GetTexParameterfv cmd; 1669 cmds::GetTexParameterfv cmd;
1670 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, 1670 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP,
1671 GL_TEXTURE_MAG_FILTER, 1671 GL_TEXTURE_MAG_FILTER,
1672 shared_memory_id_, 1672 shared_memory_id_,
1673 shared_memory_offset_); 1673 shared_memory_offset_);
1674 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1674 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1675 EXPECT_EQ(0u, result->size); 1675 EXPECT_EQ(0u, result->size);
1676 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1676 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1677 } 1677 }
1678 1678
1679 TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs1_0) { 1679 TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs1_0) {
1680 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0); 1680 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1681 SpecializedSetup<cmds::GetTexParameterfv, 0>(false); 1681 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1682 cmds::GetTexParameterfv::Result* result = 1682 cmds::GetTexParameterfv::Result* result =
1683 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_); 1683 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1684 result->size = 0; 1684 result->size = 0;
1685 cmds::GetTexParameterfv cmd; 1685 cmds::GetTexParameterfv cmd;
1686 cmd.Init(GL_TEXTURE_2D, 1686 cmd.Init(GL_TEXTURE_2D,
1687 GL_GENERATE_MIPMAP, 1687 GL_GENERATE_MIPMAP,
1688 shared_memory_id_, 1688 shared_memory_id_,
1689 shared_memory_offset_); 1689 shared_memory_offset_);
1690 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1690 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1691 EXPECT_EQ(0u, result->size); 1691 EXPECT_EQ(0u, result->size);
1692 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1692 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1693 } 1693 }
1694 1694
1695 TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_0) { 1695 TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_0) {
1696 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0); 1696 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1697 SpecializedSetup<cmds::GetTexParameterfv, 0>(false); 1697 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1698 cmds::GetTexParameterfv::Result* result = 1698 cmds::GetTexParameterfv::Result* result =
1699 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_); 1699 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1700 result->size = 0; 1700 result->size = 0;
1701 cmds::GetTexParameterfv cmd; 1701 cmds::GetTexParameterfv cmd;
1702 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0); 1702 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0);
1703 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1703 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1704 EXPECT_EQ(0u, result->size); 1704 EXPECT_EQ(0u, result->size);
1705 } 1705 }
1706 1706
1707 TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_1) { 1707 TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_1) {
1708 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0); 1708 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1709 SpecializedSetup<cmds::GetTexParameterfv, 0>(false); 1709 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1710 cmds::GetTexParameterfv::Result* result = 1710 cmds::GetTexParameterfv::Result* result =
1711 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_); 1711 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1712 result->size = 0; 1712 result->size = 0;
1713 cmds::GetTexParameterfv cmd; 1713 cmds::GetTexParameterfv cmd;
1714 cmd.Init(GL_TEXTURE_2D, 1714 cmd.Init(GL_TEXTURE_2D,
1715 GL_TEXTURE_MAG_FILTER, 1715 GL_TEXTURE_MAG_FILTER,
1716 shared_memory_id_, 1716 shared_memory_id_,
1717 kInvalidSharedMemoryOffset); 1717 kInvalidSharedMemoryOffset);
1718 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1718 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1719 EXPECT_EQ(0u, result->size); 1719 EXPECT_EQ(0u, result->size);
1720 } 1720 }
1721 1721
1722 TEST_F(GLES2DecoderTest1, GetTexParameterivValidArgs) { 1722 TEST_P(GLES2DecoderTest1, GetTexParameterivValidArgs) {
1723 EXPECT_CALL(*gl_, GetError()) 1723 EXPECT_CALL(*gl_, GetError())
1724 .WillOnce(Return(GL_NO_ERROR)) 1724 .WillOnce(Return(GL_NO_ERROR))
1725 .WillOnce(Return(GL_NO_ERROR)) 1725 .WillOnce(Return(GL_NO_ERROR))
1726 .RetiresOnSaturation(); 1726 .RetiresOnSaturation();
1727 SpecializedSetup<cmds::GetTexParameteriv, 0>(true); 1727 SpecializedSetup<cmds::GetTexParameteriv, 0>(true);
1728 typedef cmds::GetTexParameteriv::Result Result; 1728 typedef cmds::GetTexParameteriv::Result Result;
1729 Result* result = static_cast<Result*>(shared_memory_address_); 1729 Result* result = static_cast<Result*>(shared_memory_address_);
1730 EXPECT_CALL(*gl_, 1730 EXPECT_CALL(*gl_,
1731 GetTexParameteriv( 1731 GetTexParameteriv(
1732 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData())); 1732 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData()));
1733 result->size = 0; 1733 result->size = 0;
1734 cmds::GetTexParameteriv cmd; 1734 cmds::GetTexParameteriv cmd;
1735 cmd.Init(GL_TEXTURE_2D, 1735 cmd.Init(GL_TEXTURE_2D,
1736 GL_TEXTURE_MAG_FILTER, 1736 GL_TEXTURE_MAG_FILTER,
1737 shared_memory_id_, 1737 shared_memory_id_,
1738 shared_memory_offset_); 1738 shared_memory_offset_);
1739 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1739 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1740 EXPECT_EQ( 1740 EXPECT_EQ(
1741 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_TEXTURE_MAG_FILTER), 1741 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_TEXTURE_MAG_FILTER),
1742 result->GetNumResults()); 1742 result->GetNumResults());
1743 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1743 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1744 } 1744 }
1745 1745
1746 TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs0_0) { 1746 TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs0_0) {
1747 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0); 1747 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1748 SpecializedSetup<cmds::GetTexParameteriv, 0>(false); 1748 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1749 cmds::GetTexParameteriv::Result* result = 1749 cmds::GetTexParameteriv::Result* result =
1750 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_); 1750 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1751 result->size = 0; 1751 result->size = 0;
1752 cmds::GetTexParameteriv cmd; 1752 cmds::GetTexParameteriv cmd;
1753 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, 1753 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP,
1754 GL_TEXTURE_MAG_FILTER, 1754 GL_TEXTURE_MAG_FILTER,
1755 shared_memory_id_, 1755 shared_memory_id_,
1756 shared_memory_offset_); 1756 shared_memory_offset_);
1757 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1757 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1758 EXPECT_EQ(0u, result->size); 1758 EXPECT_EQ(0u, result->size);
1759 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1759 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1760 } 1760 }
1761 1761
1762 TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs1_0) { 1762 TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs1_0) {
1763 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0); 1763 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1764 SpecializedSetup<cmds::GetTexParameteriv, 0>(false); 1764 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1765 cmds::GetTexParameteriv::Result* result = 1765 cmds::GetTexParameteriv::Result* result =
1766 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_); 1766 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1767 result->size = 0; 1767 result->size = 0;
1768 cmds::GetTexParameteriv cmd; 1768 cmds::GetTexParameteriv cmd;
1769 cmd.Init(GL_TEXTURE_2D, 1769 cmd.Init(GL_TEXTURE_2D,
1770 GL_GENERATE_MIPMAP, 1770 GL_GENERATE_MIPMAP,
1771 shared_memory_id_, 1771 shared_memory_id_,
1772 shared_memory_offset_); 1772 shared_memory_offset_);
1773 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1773 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1774 EXPECT_EQ(0u, result->size); 1774 EXPECT_EQ(0u, result->size);
1775 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1775 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1776 } 1776 }
1777 1777
1778 TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_0) { 1778 TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_0) {
1779 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0); 1779 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1780 SpecializedSetup<cmds::GetTexParameteriv, 0>(false); 1780 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1781 cmds::GetTexParameteriv::Result* result = 1781 cmds::GetTexParameteriv::Result* result =
1782 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_); 1782 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1783 result->size = 0; 1783 result->size = 0;
1784 cmds::GetTexParameteriv cmd; 1784 cmds::GetTexParameteriv cmd;
1785 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0); 1785 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0);
1786 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1786 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1787 EXPECT_EQ(0u, result->size); 1787 EXPECT_EQ(0u, result->size);
1788 } 1788 }
1789 1789
1790 TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_1) { 1790 TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_1) {
1791 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0); 1791 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1792 SpecializedSetup<cmds::GetTexParameteriv, 0>(false); 1792 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1793 cmds::GetTexParameteriv::Result* result = 1793 cmds::GetTexParameteriv::Result* result =
1794 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_); 1794 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1795 result->size = 0; 1795 result->size = 0;
1796 cmds::GetTexParameteriv cmd; 1796 cmds::GetTexParameteriv cmd;
1797 cmd.Init(GL_TEXTURE_2D, 1797 cmd.Init(GL_TEXTURE_2D,
1798 GL_TEXTURE_MAG_FILTER, 1798 GL_TEXTURE_MAG_FILTER,
1799 shared_memory_id_, 1799 shared_memory_id_,
1800 kInvalidSharedMemoryOffset); 1800 kInvalidSharedMemoryOffset);
1801 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1801 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1802 EXPECT_EQ(0u, result->size); 1802 EXPECT_EQ(0u, result->size);
1803 } 1803 }
1804 // TODO(gman): GetUniformfv 1804 // TODO(gman): GetUniformfv
1805 1805
1806 // TODO(gman): GetUniformiv 1806 // TODO(gman): GetUniformiv
1807 1807
1808 // TODO(gman): GetUniformLocation 1808 // TODO(gman): GetUniformLocation
1809 1809
1810 // TODO(gman): GetUniformLocationBucket 1810 // TODO(gman): GetUniformLocationBucket
1811 1811
1812 TEST_F(GLES2DecoderTest1, GetVertexAttribfvValidArgs) { 1812 TEST_P(GLES2DecoderTest1, GetVertexAttribfvValidArgs) {
1813 SpecializedSetup<cmds::GetVertexAttribfv, 0>(true); 1813 SpecializedSetup<cmds::GetVertexAttribfv, 0>(true);
1814 typedef cmds::GetVertexAttribfv::Result Result; 1814 typedef cmds::GetVertexAttribfv::Result Result;
1815 Result* result = static_cast<Result*>(shared_memory_address_); 1815 Result* result = static_cast<Result*>(shared_memory_address_);
1816 result->size = 0; 1816 result->size = 0;
1817 cmds::GetVertexAttribfv cmd; 1817 cmds::GetVertexAttribfv cmd;
1818 cmd.Init(1, 1818 cmd.Init(1,
1819 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, 1819 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
1820 shared_memory_id_, 1820 shared_memory_id_,
1821 shared_memory_offset_); 1821 shared_memory_offset_);
1822 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1822 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1823 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1823 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1824 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED), 1824 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED),
1825 result->GetNumResults()); 1825 result->GetNumResults());
1826 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1826 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1827 } 1827 }
1828 1828
1829 TEST_F(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_0) { 1829 TEST_P(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_0) {
1830 EXPECT_CALL(*gl_, GetVertexAttribfv(_, _, _)).Times(0); 1830 EXPECT_CALL(*gl_, GetVertexAttribfv(_, _, _)).Times(0);
1831 SpecializedSetup<cmds::GetVertexAttribfv, 0>(false); 1831 SpecializedSetup<cmds::GetVertexAttribfv, 0>(false);
1832 cmds::GetVertexAttribfv::Result* result = 1832 cmds::GetVertexAttribfv::Result* result =
1833 static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_); 1833 static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_);
1834 result->size = 0; 1834 result->size = 0;
1835 cmds::GetVertexAttribfv cmd; 1835 cmds::GetVertexAttribfv cmd;
1836 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, kInvalidSharedMemoryId, 0); 1836 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, kInvalidSharedMemoryId, 0);
1837 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1837 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1838 EXPECT_EQ(0u, result->size); 1838 EXPECT_EQ(0u, result->size);
1839 } 1839 }
1840 1840
1841 TEST_F(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_1) { 1841 TEST_P(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_1) {
1842 EXPECT_CALL(*gl_, GetVertexAttribfv(_, _, _)).Times(0); 1842 EXPECT_CALL(*gl_, GetVertexAttribfv(_, _, _)).Times(0);
1843 SpecializedSetup<cmds::GetVertexAttribfv, 0>(false); 1843 SpecializedSetup<cmds::GetVertexAttribfv, 0>(false);
1844 cmds::GetVertexAttribfv::Result* result = 1844 cmds::GetVertexAttribfv::Result* result =
1845 static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_); 1845 static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_);
1846 result->size = 0; 1846 result->size = 0;
1847 cmds::GetVertexAttribfv cmd; 1847 cmds::GetVertexAttribfv cmd;
1848 cmd.Init(1, 1848 cmd.Init(1,
1849 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, 1849 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
1850 shared_memory_id_, 1850 shared_memory_id_,
1851 kInvalidSharedMemoryOffset); 1851 kInvalidSharedMemoryOffset);
1852 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1852 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1853 EXPECT_EQ(0u, result->size); 1853 EXPECT_EQ(0u, result->size);
1854 } 1854 }
1855 1855
1856 TEST_F(GLES2DecoderTest1, GetVertexAttribivValidArgs) { 1856 TEST_P(GLES2DecoderTest1, GetVertexAttribivValidArgs) {
1857 SpecializedSetup<cmds::GetVertexAttribiv, 0>(true); 1857 SpecializedSetup<cmds::GetVertexAttribiv, 0>(true);
1858 typedef cmds::GetVertexAttribiv::Result Result; 1858 typedef cmds::GetVertexAttribiv::Result Result;
1859 Result* result = static_cast<Result*>(shared_memory_address_); 1859 Result* result = static_cast<Result*>(shared_memory_address_);
1860 result->size = 0; 1860 result->size = 0;
1861 cmds::GetVertexAttribiv cmd; 1861 cmds::GetVertexAttribiv cmd;
1862 cmd.Init(1, 1862 cmd.Init(1,
1863 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, 1863 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
1864 shared_memory_id_, 1864 shared_memory_id_,
1865 shared_memory_offset_); 1865 shared_memory_offset_);
1866 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1866 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1867 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1867 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1868 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED), 1868 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED),
1869 result->GetNumResults()); 1869 result->GetNumResults());
1870 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1870 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1871 } 1871 }
1872 1872
1873 TEST_F(GLES2DecoderTest1, GetVertexAttribivInvalidArgs2_0) { 1873 TEST_P(GLES2DecoderTest1, GetVertexAttribivInvalidArgs2_0) {
1874 EXPECT_CALL(*gl_, GetVertexAttribiv(_, _, _)).Times(0); 1874 EXPECT_CALL(*gl_, GetVertexAttribiv(_, _, _)).Times(0);
1875 SpecializedSetup<cmds::GetVertexAttribiv, 0>(false); 1875 SpecializedSetup<cmds::GetVertexAttribiv, 0>(false);
1876 cmds::GetVertexAttribiv::Result* result = 1876 cmds::GetVertexAttribiv::Result* result =
1877 static_cast<cmds::GetVertexAttribiv::Result*>(shared_memory_address_); 1877 static_cast<cmds::GetVertexAttribiv::Result*>(shared_memory_address_);
1878 result->size = 0; 1878 result->size = 0;
1879 cmds::GetVertexAttribiv cmd; 1879 cmds::GetVertexAttribiv cmd;
1880 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, kInvalidSharedMemoryId, 0); 1880 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, kInvalidSharedMemoryId, 0);
1881 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1881 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1882 EXPECT_EQ(0u, result->size); 1882 EXPECT_EQ(0u, result->size);
1883 } 1883 }
1884 1884
1885 TEST_F(GLES2DecoderTest1, GetVertexAttribivInvalidArgs2_1) { 1885 TEST_P(GLES2DecoderTest1, GetVertexAttribivInvalidArgs2_1) {
1886 EXPECT_CALL(*gl_, GetVertexAttribiv(_, _, _)).Times(0); 1886 EXPECT_CALL(*gl_, GetVertexAttribiv(_, _, _)).Times(0);
1887 SpecializedSetup<cmds::GetVertexAttribiv, 0>(false); 1887 SpecializedSetup<cmds::GetVertexAttribiv, 0>(false);
1888 cmds::GetVertexAttribiv::Result* result = 1888 cmds::GetVertexAttribiv::Result* result =
1889 static_cast<cmds::GetVertexAttribiv::Result*>(shared_memory_address_); 1889 static_cast<cmds::GetVertexAttribiv::Result*>(shared_memory_address_);
1890 result->size = 0; 1890 result->size = 0;
1891 cmds::GetVertexAttribiv cmd; 1891 cmds::GetVertexAttribiv cmd;
1892 cmd.Init(1, 1892 cmd.Init(1,
1893 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, 1893 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
1894 shared_memory_id_, 1894 shared_memory_id_,
1895 kInvalidSharedMemoryOffset); 1895 kInvalidSharedMemoryOffset);
1896 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1896 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1897 EXPECT_EQ(0u, result->size); 1897 EXPECT_EQ(0u, result->size);
1898 } 1898 }
1899 // TODO(gman): GetVertexAttribPointerv 1899 // TODO(gman): GetVertexAttribPointerv
1900 1900
1901 TEST_F(GLES2DecoderTest1, HintValidArgs) { 1901 TEST_P(GLES2DecoderTest1, HintValidArgs) {
1902 EXPECT_CALL(*gl_, Hint(GL_GENERATE_MIPMAP_HINT, GL_FASTEST)); 1902 EXPECT_CALL(*gl_, Hint(GL_GENERATE_MIPMAP_HINT, GL_FASTEST));
1903 SpecializedSetup<cmds::Hint, 0>(true); 1903 SpecializedSetup<cmds::Hint, 0>(true);
1904 cmds::Hint cmd; 1904 cmds::Hint cmd;
1905 cmd.Init(GL_GENERATE_MIPMAP_HINT, GL_FASTEST); 1905 cmd.Init(GL_GENERATE_MIPMAP_HINT, GL_FASTEST);
1906 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1906 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1907 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1907 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1908 } 1908 }
1909 1909
1910 TEST_F(GLES2DecoderTest1, HintInvalidArgs0_0) { 1910 TEST_P(GLES2DecoderTest1, HintInvalidArgs0_0) {
1911 EXPECT_CALL(*gl_, Hint(_, _)).Times(0); 1911 EXPECT_CALL(*gl_, Hint(_, _)).Times(0);
1912 SpecializedSetup<cmds::Hint, 0>(false); 1912 SpecializedSetup<cmds::Hint, 0>(false);
1913 cmds::Hint cmd; 1913 cmds::Hint cmd;
1914 cmd.Init(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST); 1914 cmd.Init(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
1915 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1915 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1916 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1916 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1917 } 1917 }
1918 1918
1919 TEST_F(GLES2DecoderTest1, IsBufferValidArgs) { 1919 TEST_P(GLES2DecoderTest1, IsBufferValidArgs) {
1920 SpecializedSetup<cmds::IsBuffer, 0>(true); 1920 SpecializedSetup<cmds::IsBuffer, 0>(true);
1921 cmds::IsBuffer cmd; 1921 cmds::IsBuffer cmd;
1922 cmd.Init(client_buffer_id_, shared_memory_id_, shared_memory_offset_); 1922 cmd.Init(client_buffer_id_, shared_memory_id_, shared_memory_offset_);
1923 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1923 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1924 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1924 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1925 } 1925 }
1926 1926
1927 TEST_F(GLES2DecoderTest1, IsBufferInvalidArgsBadSharedMemoryId) { 1927 TEST_P(GLES2DecoderTest1, IsBufferInvalidArgsBadSharedMemoryId) {
1928 SpecializedSetup<cmds::IsBuffer, 0>(false); 1928 SpecializedSetup<cmds::IsBuffer, 0>(false);
1929 cmds::IsBuffer cmd; 1929 cmds::IsBuffer cmd;
1930 cmd.Init(client_buffer_id_, kInvalidSharedMemoryId, shared_memory_offset_); 1930 cmd.Init(client_buffer_id_, kInvalidSharedMemoryId, shared_memory_offset_);
1931 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1931 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1932 cmd.Init(client_buffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset); 1932 cmd.Init(client_buffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
1933 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1933 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1934 } 1934 }
1935 1935
1936 TEST_F(GLES2DecoderTest1, IsEnabledValidArgs) { 1936 TEST_P(GLES2DecoderTest1, IsEnabledValidArgs) {
1937 SpecializedSetup<cmds::IsEnabled, 0>(true); 1937 SpecializedSetup<cmds::IsEnabled, 0>(true);
1938 cmds::IsEnabled cmd; 1938 cmds::IsEnabled cmd;
1939 cmd.Init(GL_BLEND, shared_memory_id_, shared_memory_offset_); 1939 cmd.Init(GL_BLEND, shared_memory_id_, shared_memory_offset_);
1940 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1940 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1941 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1941 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1942 } 1942 }
1943 1943
1944 TEST_F(GLES2DecoderTest1, IsEnabledInvalidArgs0_0) { 1944 TEST_P(GLES2DecoderTest1, IsEnabledInvalidArgs0_0) {
1945 EXPECT_CALL(*gl_, IsEnabled(_)).Times(0); 1945 EXPECT_CALL(*gl_, IsEnabled(_)).Times(0);
1946 SpecializedSetup<cmds::IsEnabled, 0>(false); 1946 SpecializedSetup<cmds::IsEnabled, 0>(false);
1947 cmds::IsEnabled cmd; 1947 cmds::IsEnabled cmd;
1948 cmd.Init(GL_CLIP_PLANE0, shared_memory_id_, shared_memory_offset_); 1948 cmd.Init(GL_CLIP_PLANE0, shared_memory_id_, shared_memory_offset_);
1949 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1949 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1950 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1950 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1951 } 1951 }
1952 1952
1953 TEST_F(GLES2DecoderTest1, IsEnabledInvalidArgs0_1) { 1953 TEST_P(GLES2DecoderTest1, IsEnabledInvalidArgs0_1) {
1954 EXPECT_CALL(*gl_, IsEnabled(_)).Times(0); 1954 EXPECT_CALL(*gl_, IsEnabled(_)).Times(0);
1955 SpecializedSetup<cmds::IsEnabled, 0>(false); 1955 SpecializedSetup<cmds::IsEnabled, 0>(false);
1956 cmds::IsEnabled cmd; 1956 cmds::IsEnabled cmd;
1957 cmd.Init(GL_POINT_SPRITE, shared_memory_id_, shared_memory_offset_); 1957 cmd.Init(GL_POINT_SPRITE, shared_memory_id_, shared_memory_offset_);
1958 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1958 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1959 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1959 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1960 } 1960 }
1961 1961
1962 TEST_F(GLES2DecoderTest1, IsEnabledInvalidArgsBadSharedMemoryId) { 1962 TEST_P(GLES2DecoderTest1, IsEnabledInvalidArgsBadSharedMemoryId) {
1963 SpecializedSetup<cmds::IsEnabled, 0>(false); 1963 SpecializedSetup<cmds::IsEnabled, 0>(false);
1964 cmds::IsEnabled cmd; 1964 cmds::IsEnabled cmd;
1965 cmd.Init(GL_BLEND, kInvalidSharedMemoryId, shared_memory_offset_); 1965 cmd.Init(GL_BLEND, kInvalidSharedMemoryId, shared_memory_offset_);
1966 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1966 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1967 cmd.Init(GL_BLEND, shared_memory_id_, kInvalidSharedMemoryOffset); 1967 cmd.Init(GL_BLEND, shared_memory_id_, kInvalidSharedMemoryOffset);
1968 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1968 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1969 } 1969 }
1970 1970
1971 TEST_F(GLES2DecoderTest1, IsFramebufferValidArgs) { 1971 TEST_P(GLES2DecoderTest1, IsFramebufferValidArgs) {
1972 SpecializedSetup<cmds::IsFramebuffer, 0>(true); 1972 SpecializedSetup<cmds::IsFramebuffer, 0>(true);
1973 cmds::IsFramebuffer cmd; 1973 cmds::IsFramebuffer cmd;
1974 cmd.Init(client_framebuffer_id_, shared_memory_id_, shared_memory_offset_); 1974 cmd.Init(client_framebuffer_id_, shared_memory_id_, shared_memory_offset_);
1975 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1975 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1976 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1976 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1977 } 1977 }
1978 1978
1979 TEST_F(GLES2DecoderTest1, IsFramebufferInvalidArgsBadSharedMemoryId) { 1979 TEST_P(GLES2DecoderTest1, IsFramebufferInvalidArgsBadSharedMemoryId) {
1980 SpecializedSetup<cmds::IsFramebuffer, 0>(false); 1980 SpecializedSetup<cmds::IsFramebuffer, 0>(false);
1981 cmds::IsFramebuffer cmd; 1981 cmds::IsFramebuffer cmd;
1982 cmd.Init( 1982 cmd.Init(
1983 client_framebuffer_id_, kInvalidSharedMemoryId, shared_memory_offset_); 1983 client_framebuffer_id_, kInvalidSharedMemoryId, shared_memory_offset_);
1984 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1984 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1985 cmd.Init( 1985 cmd.Init(
1986 client_framebuffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset); 1986 client_framebuffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
1987 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1987 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1988 } 1988 }
1989 1989
1990 TEST_F(GLES2DecoderTest1, IsProgramValidArgs) { 1990 TEST_P(GLES2DecoderTest1, IsProgramValidArgs) {
1991 SpecializedSetup<cmds::IsProgram, 0>(true); 1991 SpecializedSetup<cmds::IsProgram, 0>(true);
1992 cmds::IsProgram cmd; 1992 cmds::IsProgram cmd;
1993 cmd.Init(client_program_id_, shared_memory_id_, shared_memory_offset_); 1993 cmd.Init(client_program_id_, shared_memory_id_, shared_memory_offset_);
1994 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1994 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1995 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1995 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1996 } 1996 }
1997 1997
1998 TEST_F(GLES2DecoderTest1, IsProgramInvalidArgsBadSharedMemoryId) { 1998 TEST_P(GLES2DecoderTest1, IsProgramInvalidArgsBadSharedMemoryId) {
1999 SpecializedSetup<cmds::IsProgram, 0>(false); 1999 SpecializedSetup<cmds::IsProgram, 0>(false);
2000 cmds::IsProgram cmd; 2000 cmds::IsProgram cmd;
2001 cmd.Init(client_program_id_, kInvalidSharedMemoryId, shared_memory_offset_); 2001 cmd.Init(client_program_id_, kInvalidSharedMemoryId, shared_memory_offset_);
2002 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 2002 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
2003 cmd.Init(client_program_id_, shared_memory_id_, kInvalidSharedMemoryOffset); 2003 cmd.Init(client_program_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
2004 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 2004 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
2005 } 2005 }
2006 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_ 2006 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder_unittest_1.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698