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

Side by Side Diff: content/common/gpu/gpu_channel_manager_unittest.cc

Issue 997433002: Fix uninitialized data in GpuChannelManagerTest::SecureValueStateForwarding. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 #include "base/run_loop.h" 5 #include "base/run_loop.h"
6 #include "base/synchronization/waitable_event.h" 6 #include "base/synchronization/waitable_event.h"
7 #include "base/test/test_simple_task_runner.h" 7 #include "base/test/test_simple_task_runner.h"
8 #include "content/common/gpu/gpu_channel.h" 8 #include "content/common/gpu/gpu_channel.h"
9 #include "content/common/gpu/gpu_channel_manager.h" 9 #include "content/common/gpu/gpu_channel_manager.h"
10 #include "content/common/gpu/gpu_messages.h" 10 #include "content/common/gpu/gpu_messages.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 scoped_ptr<SimpleGpuClient> simple_client_; 165 scoped_ptr<SimpleGpuClient> simple_client_;
166 scoped_ptr<IPC::SimpleServer> simple_server_; 166 scoped_ptr<IPC::SimpleServer> simple_server_;
167 167
168 private: 168 private:
169 base::MessageLoop message_loop_; 169 base::MessageLoop message_loop_;
170 }; 170 };
171 171
172 TEST_F(GpuChannelManagerTest, SecureValueStateForwarding) { 172 TEST_F(GpuChannelManagerTest, SecureValueStateForwarding) {
173 const int kClientId1 = 111; 173 const int kClientId1 = 111;
174 const int kClientId2 = 222; 174 const int kClientId2 = 222;
175 ValueState kValueState1; 175 ValueState value_state1;
Lei Zhang 2015/03/10 03:36:26 Doesn't ValueState also contain float float_value[
176 kValueState1.int_value[0] = 1111; 176 value_state1.int_value[0] = 1111;
177 ValueState kValueState2; 177 value_state1.int_value[1] = 0;
178 kValueState2.int_value[0] = 3333; 178 value_state1.int_value[2] = 0;
179 value_state1.int_value[3] = 0;
180 ValueState value_state2;
181 value_state2.int_value[0] = 3333;
182 value_state2.int_value[1] = 0;
183 value_state2.int_value[2] = 0;
184 value_state2.int_value[3] = 0;
179 185
180 ASSERT_TRUE(simple_client_->gpu_channel_manager() != NULL); 186 ASSERT_TRUE(simple_client_->gpu_channel_manager() != NULL);
181 187
182 // Initialize gpu channels 188 // Initialize gpu channels
183 simple_client_->gpu_channel_manager()->OnMessageReceived( 189 simple_client_->gpu_channel_manager()->OnMessageReceived(
184 GpuMsg_EstablishChannel(kClientId1, false, false)); 190 GpuMsg_EstablishChannel(kClientId1, false, false));
185 GpuChannel *channel1 = 191 GpuChannel *channel1 =
186 simple_client_->gpu_channel_manager()->LookupChannel(kClientId1); 192 simple_client_->gpu_channel_manager()->LookupChannel(kClientId1);
187 simple_client_->gpu_channel_manager()->OnMessageReceived( 193 simple_client_->gpu_channel_manager()->OnMessageReceived(
188 GpuMsg_EstablishChannel(kClientId2, false, false)); 194 GpuMsg_EstablishChannel(kClientId2, false, false));
189 GpuChannel *channel2 = 195 GpuChannel *channel2 =
190 simple_client_->gpu_channel_manager()->LookupChannel(kClientId2); 196 simple_client_->gpu_channel_manager()->LookupChannel(kClientId2);
191 ASSERT_TRUE(channel1 != NULL); 197 ASSERT_TRUE(channel1 != NULL);
192 ASSERT_TRUE(channel2 != NULL); 198 ASSERT_TRUE(channel2 != NULL);
193 ASSERT_NE(channel1, channel2); 199 ASSERT_NE(channel1, channel2);
194 200
195 // Make sure value states are only accessible by proper channels 201 // Make sure value states are only accessible by proper channels
196 simple_client_->gpu_channel_manager()->OnMessageReceived( 202 simple_client_->gpu_channel_manager()->OnMessageReceived(
197 GpuMsg_UpdateValueState( 203 GpuMsg_UpdateValueState(
198 kClientId1, GL_MOUSE_POSITION_CHROMIUM, kValueState1)); 204 kClientId1, GL_MOUSE_POSITION_CHROMIUM, value_state1));
199 simple_client_->gpu_channel_manager()->OnMessageReceived( 205 simple_client_->gpu_channel_manager()->OnMessageReceived(
200 GpuMsg_UpdateValueState( 206 GpuMsg_UpdateValueState(
201 kClientId2, GL_MOUSE_POSITION_CHROMIUM, kValueState2)); 207 kClientId2, GL_MOUSE_POSITION_CHROMIUM, value_state2));
202 208
203 const gpu::ValueStateMap* pending_value_buffer_state1 = 209 const gpu::ValueStateMap* pending_value_buffer_state1 =
204 channel1->pending_valuebuffer_state(); 210 channel1->pending_valuebuffer_state();
205 const gpu::ValueStateMap* pending_value_buffer_state2 = 211 const gpu::ValueStateMap* pending_value_buffer_state2 =
206 channel2->pending_valuebuffer_state(); 212 channel2->pending_valuebuffer_state();
207 ASSERT_NE(pending_value_buffer_state1, pending_value_buffer_state2); 213 ASSERT_NE(pending_value_buffer_state1, pending_value_buffer_state2);
208 214
209 const ValueState* state1 = 215 const ValueState* state1 =
210 pending_value_buffer_state1->GetState(GL_MOUSE_POSITION_CHROMIUM); 216 pending_value_buffer_state1->GetState(GL_MOUSE_POSITION_CHROMIUM);
211 const ValueState* state2 = 217 const ValueState* state2 =
212 pending_value_buffer_state2->GetState(GL_MOUSE_POSITION_CHROMIUM); 218 pending_value_buffer_state2->GetState(GL_MOUSE_POSITION_CHROMIUM);
213 ASSERT_NE(state1, state2); 219 ASSERT_NE(state1, state2);
214 220
215 ASSERT_EQ(state1->int_value[0], kValueState1.int_value[0]); 221 ASSERT_EQ(state1->int_value[0], value_state1.int_value[0]);
216 ASSERT_EQ(state2->int_value[0], kValueState2.int_value[0]); 222 ASSERT_EQ(state2->int_value[0], value_state2.int_value[0]);
217 ASSERT_NE(state1->int_value[0], state2->int_value[0]); 223 ASSERT_NE(state1->int_value[0], state2->int_value[0]);
218 } 224 }
219 225
220 } // namespace content 226 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698