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

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

Issue 1730023004: Revert of Decouple browser-specific GPU IPC messages from GPU service IPCs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "content/common/gpu/establish_channel_params.h"
9 #include "content/common/gpu/gpu_channel.h" 8 #include "content/common/gpu/gpu_channel.h"
10 #include "content/common/gpu/gpu_channel_manager.h" 9 #include "content/common/gpu/gpu_channel_manager.h"
11 #include "content/common/gpu/gpu_channel_test_common.h" 10 #include "content/common/gpu/gpu_channel_test_common.h"
11 #include "content/common/gpu/gpu_messages.h"
12 #include "gpu/command_buffer/common/value_state.h" 12 #include "gpu/command_buffer/common/value_state.h"
13 #include "gpu/command_buffer/service/gl_utils.h" 13 #include "gpu/command_buffer/service/gl_utils.h"
14 #include "gpu/command_buffer/service/valuebuffer_manager.h" 14 #include "gpu/command_buffer/service/valuebuffer_manager.h"
15 #include "ipc/ipc_test_sink.h"
15 16
16 using gpu::gles2::ValuebufferManager; 17 using gpu::gles2::ValuebufferManager;
17 using gpu::ValueState; 18 using gpu::ValueState;
18 19
19 namespace content { 20 namespace content {
20 21
21 class GpuChannelManagerTest : public GpuChannelTestCommon { 22 class GpuChannelManagerTest : public GpuChannelTestCommon {
22 public: 23 public:
23 GpuChannelManagerTest() : GpuChannelTestCommon() {} 24 GpuChannelManagerTest() : GpuChannelTestCommon() {}
24 ~GpuChannelManagerTest() override {} 25 ~GpuChannelManagerTest() override {}
25 }; 26 };
26 27
27 TEST_F(GpuChannelManagerTest, EstablishChannel) { 28 TEST_F(GpuChannelManagerTest, EstablishChannel) {
28 int32_t kClientId = 1; 29 int32_t kClientId = 1;
29 uint64_t kClientTracingId = 1; 30 uint64_t kClientTracingId = 1;
30 31
31 ASSERT_TRUE(channel_manager()); 32 ASSERT_TRUE(channel_manager());
32 33
33 EstablishChannelParams params; 34 GpuMsg_EstablishChannel_Params params;
34 params.client_id = kClientId; 35 params.client_id = kClientId;
35 params.client_tracing_id = kClientTracingId; 36 params.client_tracing_id = kClientTracingId;
36 params.preempts = false; 37 params.preempts = false;
37 params.allow_view_command_buffers = false; 38 params.allow_view_command_buffers = false;
38 params.allow_real_time_streams = false; 39 params.allow_real_time_streams = false;
39 channel_manager()->EstablishChannel(params); 40 EXPECT_TRUE(
40 IPC::ChannelHandle handle = 41 channel_manager()->OnMessageReceived(GpuMsg_EstablishChannel(params)));
41 channel_manager_delegate()->last_established_channel_handle(); 42 EXPECT_EQ((size_t)1, sink()->message_count());
42 EXPECT_NE("", handle.name); 43 const IPC::Message* msg =
44 sink()->GetUniqueMessageMatching(GpuHostMsg_ChannelEstablished::ID);
45 ASSERT_TRUE(msg);
46 base::Tuple<IPC::ChannelHandle> handle;
47 ASSERT_TRUE(GpuHostMsg_ChannelEstablished::Read(msg, &handle));
48 EXPECT_NE("", base::get<0>(handle).name);
49 sink()->ClearMessages();
43 50
44 GpuChannel* channel = channel_manager()->LookupChannel(kClientId); 51 GpuChannel* channel = channel_manager()->LookupChannel(kClientId);
45 ASSERT_TRUE(channel); 52 ASSERT_TRUE(channel);
46 EXPECT_EQ(handle.name, channel->channel_id()); 53 EXPECT_EQ(base::get<0>(handle).name, channel->channel_id());
47 } 54 }
48 55
49 TEST_F(GpuChannelManagerTest, SecureValueStateForwarding) { 56 TEST_F(GpuChannelManagerTest, SecureValueStateForwarding) {
50 int32_t kClientId1 = 111; 57 int32_t kClientId1 = 111;
51 uint64_t kClientTracingId1 = 11111; 58 uint64_t kClientTracingId1 = 11111;
52 int32_t kClientId2 = 222; 59 int32_t kClientId2 = 222;
53 uint64_t kClientTracingId2 = 22222; 60 uint64_t kClientTracingId2 = 22222;
54 ValueState value_state1; 61 ValueState value_state1;
55 value_state1.int_value[0] = 1111; 62 value_state1.int_value[0] = 1111;
56 value_state1.int_value[1] = 0; 63 value_state1.int_value[1] = 0;
57 value_state1.int_value[2] = 0; 64 value_state1.int_value[2] = 0;
58 value_state1.int_value[3] = 0; 65 value_state1.int_value[3] = 0;
59 ValueState value_state2; 66 ValueState value_state2;
60 value_state2.int_value[0] = 3333; 67 value_state2.int_value[0] = 3333;
61 value_state2.int_value[1] = 0; 68 value_state2.int_value[1] = 0;
62 value_state2.int_value[2] = 0; 69 value_state2.int_value[2] = 0;
63 value_state2.int_value[3] = 0; 70 value_state2.int_value[3] = 0;
64 71
65 ASSERT_TRUE(channel_manager()); 72 ASSERT_TRUE(channel_manager());
66 73
67 // Initialize gpu channels 74 // Initialize gpu channels
68 EstablishChannelParams params; 75 GpuMsg_EstablishChannel_Params params;
69 params.client_id = kClientId1; 76 params.client_id = kClientId1;
70 params.client_tracing_id = kClientTracingId1; 77 params.client_tracing_id = kClientTracingId1;
71 params.preempts = false; 78 params.preempts = false;
72 params.allow_view_command_buffers = false; 79 params.allow_view_command_buffers = false;
73 params.allow_real_time_streams = false; 80 params.allow_real_time_streams = false;
74 channel_manager()->EstablishChannel(params); 81 EXPECT_TRUE(
82 channel_manager()->OnMessageReceived(GpuMsg_EstablishChannel(params)));
75 GpuChannel* channel1 = channel_manager()->LookupChannel(kClientId1); 83 GpuChannel* channel1 = channel_manager()->LookupChannel(kClientId1);
76 ASSERT_TRUE(channel1); 84 ASSERT_TRUE(channel1);
77 85
78 params.client_id = kClientId2; 86 params.client_id = kClientId2;
79 params.client_tracing_id = kClientTracingId2; 87 params.client_tracing_id = kClientTracingId2;
80 channel_manager()->EstablishChannel(params); 88 EXPECT_TRUE(
89 channel_manager()->OnMessageReceived(GpuMsg_EstablishChannel(params)));
81 GpuChannel* channel2 = channel_manager()->LookupChannel(kClientId2); 90 GpuChannel* channel2 = channel_manager()->LookupChannel(kClientId2);
82 ASSERT_TRUE(channel2); 91 ASSERT_TRUE(channel2);
83 92
84 EXPECT_NE(channel1, channel2); 93 EXPECT_NE(channel1, channel2);
85 94
86 // Make sure value states are only accessible by proper channels 95 // Make sure value states are only accessible by proper channels
87 channel_manager()->UpdateValueState(kClientId1, GL_MOUSE_POSITION_CHROMIUM, 96 channel_manager()->OnMessageReceived(GpuMsg_UpdateValueState(
88 value_state1); 97 kClientId1, GL_MOUSE_POSITION_CHROMIUM, value_state1));
89 channel_manager()->UpdateValueState(kClientId2, GL_MOUSE_POSITION_CHROMIUM, 98 channel_manager()->OnMessageReceived(GpuMsg_UpdateValueState(
90 value_state2); 99 kClientId2, GL_MOUSE_POSITION_CHROMIUM, value_state2));
91 100
92 const gpu::ValueStateMap* pending_value_buffer_state1 = 101 const gpu::ValueStateMap* pending_value_buffer_state1 =
93 channel1->pending_valuebuffer_state(); 102 channel1->pending_valuebuffer_state();
94 const gpu::ValueStateMap* pending_value_buffer_state2 = 103 const gpu::ValueStateMap* pending_value_buffer_state2 =
95 channel2->pending_valuebuffer_state(); 104 channel2->pending_valuebuffer_state();
96 EXPECT_NE(pending_value_buffer_state1, pending_value_buffer_state2); 105 EXPECT_NE(pending_value_buffer_state1, pending_value_buffer_state2);
97 106
98 const ValueState* state1 = 107 const ValueState* state1 =
99 pending_value_buffer_state1->GetState(GL_MOUSE_POSITION_CHROMIUM); 108 pending_value_buffer_state1->GetState(GL_MOUSE_POSITION_CHROMIUM);
100 const ValueState* state2 = 109 const ValueState* state2 =
101 pending_value_buffer_state2->GetState(GL_MOUSE_POSITION_CHROMIUM); 110 pending_value_buffer_state2->GetState(GL_MOUSE_POSITION_CHROMIUM);
102 EXPECT_NE(state1, state2); 111 EXPECT_NE(state1, state2);
103 112
104 EXPECT_EQ(state1->int_value[0], value_state1.int_value[0]); 113 EXPECT_EQ(state1->int_value[0], value_state1.int_value[0]);
105 EXPECT_EQ(state2->int_value[0], value_state2.int_value[0]); 114 EXPECT_EQ(state2->int_value[0], value_state2.int_value[0]);
106 EXPECT_NE(state1->int_value[0], state2->int_value[0]); 115 EXPECT_NE(state1->int_value[0], state2->int_value[0]);
107 } 116 }
108 117
109 } // namespace content 118 } // namespace content
OLDNEW
« no previous file with comments | « content/common/gpu/gpu_channel_manager_delegate.h ('k') | content/common/gpu/gpu_channel_test_common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698