OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
8 #include "gpu/ipc/common/traits_test_service.mojom.h" | 8 #include "gpu/ipc/common/traits_test_service.mojom.h" |
9 #include "mojo/public/cpp/bindings/binding_set.h" | 9 #include "mojo/public/cpp/bindings/binding_set.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
11 | 11 |
12 namespace gpu { | 12 namespace gpu { |
13 | 13 |
14 namespace { | 14 namespace { |
15 | 15 |
16 class StructTraitsTest : public testing::Test, public mojom::TraitsTestService { | 16 class StructTraitsTest : public testing::Test, public mojom::TraitsTestService { |
17 public: | 17 public: |
18 StructTraitsTest() {} | 18 StructTraitsTest() {} |
19 | 19 |
20 protected: | 20 protected: |
21 mojom::TraitsTestServicePtr GetTraitsTestProxy() { | 21 mojom::TraitsTestServicePtr GetTraitsTestProxy() { |
22 return traits_test_bindings_.CreateInterfacePtrAndBind(this); | 22 return traits_test_bindings_.CreateInterfacePtrAndBind(this); |
23 } | 23 } |
24 | 24 |
25 private: | 25 private: |
26 // TraitsTestService: | 26 // TraitsTestService: |
27 void EchoDxDiagNode(const DxDiagNode& d, | |
28 const EchoDxDiagNodeCallback& callback) override { | |
29 callback.Run(d); | |
30 } | |
31 | |
27 void EchoGpuDevice(const GPUInfo::GPUDevice& g, | 32 void EchoGpuDevice(const GPUInfo::GPUDevice& g, |
28 const EchoGpuDeviceCallback& callback) override { | 33 const EchoGpuDeviceCallback& callback) override { |
29 callback.Run(g); | 34 callback.Run(g); |
30 } | 35 } |
31 | 36 |
32 void EchoMailbox(const Mailbox& m, | 37 void EchoMailbox(const Mailbox& m, |
33 const EchoMailboxCallback& callback) override { | 38 const EchoMailboxCallback& callback) override { |
34 callback.Run(m); | 39 callback.Run(m); |
35 } | 40 } |
36 | 41 |
37 void EchoMailboxHolder(const MailboxHolder& r, | 42 void EchoMailboxHolder(const MailboxHolder& r, |
38 const EchoMailboxHolderCallback& callback) override { | 43 const EchoMailboxHolderCallback& callback) override { |
39 callback.Run(r); | 44 callback.Run(r); |
40 } | 45 } |
41 | 46 |
42 void EchoSyncToken(const SyncToken& s, | 47 void EchoSyncToken(const SyncToken& s, |
43 const EchoSyncTokenCallback& callback) override { | 48 const EchoSyncTokenCallback& callback) override { |
44 callback.Run(s); | 49 callback.Run(s); |
45 } | 50 } |
46 | 51 |
52 void EchoVideoDecodeAcceleratorSupportedProfile( | |
53 const VideoDecodeAcceleratorSupportedProfile& v, | |
54 const EchoVideoDecodeAcceleratorSupportedProfileCallback& callback) | |
55 override { | |
56 callback.Run(v); | |
57 } | |
58 | |
59 void EchoVideoDecodeAcceleratorCapabilities( | |
60 const VideoDecodeAcceleratorCapabilities& v, | |
61 const EchoVideoDecodeAcceleratorCapabilitiesCallback& callback) override { | |
62 callback.Run(v); | |
63 } | |
64 | |
65 void EchoVideoEncodeAcceleratorSupportedProfile( | |
66 const VideoEncodeAcceleratorSupportedProfile& v, | |
67 const EchoVideoEncodeAcceleratorSupportedProfileCallback& callback) | |
68 override { | |
69 callback.Run(v); | |
70 } | |
71 | |
47 base::MessageLoop loop_; | 72 base::MessageLoop loop_; |
48 mojo::BindingSet<TraitsTestService> traits_test_bindings_; | 73 mojo::BindingSet<TraitsTestService> traits_test_bindings_; |
49 | 74 |
50 DISALLOW_COPY_AND_ASSIGN(StructTraitsTest); | 75 DISALLOW_COPY_AND_ASSIGN(StructTraitsTest); |
51 }; | 76 }; |
52 | 77 |
53 } // namespace | 78 } // namespace |
54 | 79 |
80 TEST_F(StructTraitsTest, DxDiagNode) { | |
81 gpu::DxDiagNode input; | |
82 input.values["abc"] = "123"; | |
83 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); | |
84 gpu::DxDiagNode output; | |
85 proxy->EchoDxDiagNode(input, &output); | |
86 | |
87 gpu::DxDiagNode test_dx_diag_node; | |
88 test_dx_diag_node.values["abc"] = "123"; | |
89 EXPECT_EQ(test_dx_diag_node.values, output.values); | |
90 } | |
91 | |
55 TEST_F(StructTraitsTest, GPUDevice) { | 92 TEST_F(StructTraitsTest, GPUDevice) { |
56 gpu::GPUInfo::GPUDevice input; | 93 gpu::GPUInfo::GPUDevice input; |
57 // Using the values from gpu/config/gpu_info_collector_unittest.cc::nvidia_gpu | 94 // Using the values from gpu/config/gpu_info_collector_unittest.cc::nvidia_gpu |
58 const uint32_t vendor_id = 0x10de; | 95 const uint32_t vendor_id = 0x10de; |
59 const uint32_t device_id = 0x0df8; | 96 const uint32_t device_id = 0x0df8; |
60 const std::string vendor_string = "vendor_string"; | 97 const std::string vendor_string = "vendor_string"; |
61 const std::string device_string = "device_string"; | 98 const std::string device_string = "device_string"; |
62 | 99 |
63 input.vendor_id = vendor_id; | 100 input.vendor_id = vendor_id; |
64 input.device_id = device_id; | 101 input.device_id = device_id; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
131 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); | 168 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
132 gpu::SyncToken output; | 169 gpu::SyncToken output; |
133 proxy->EchoSyncToken(input, &output); | 170 proxy->EchoSyncToken(input, &output); |
134 EXPECT_EQ(namespace_id, output.namespace_id()); | 171 EXPECT_EQ(namespace_id, output.namespace_id()); |
135 EXPECT_EQ(extra_data_field, output.extra_data_field()); | 172 EXPECT_EQ(extra_data_field, output.extra_data_field()); |
136 EXPECT_EQ(command_buffer_id, output.command_buffer_id()); | 173 EXPECT_EQ(command_buffer_id, output.command_buffer_id()); |
137 EXPECT_EQ(release_count, output.release_count()); | 174 EXPECT_EQ(release_count, output.release_count()); |
138 EXPECT_EQ(verified_flush, output.verified_flush()); | 175 EXPECT_EQ(verified_flush, output.verified_flush()); |
139 } | 176 } |
140 | 177 |
178 TEST_F(StructTraitsTest, VideoDecodeAcceleratorSupportedProfile) { | |
179 const gpu::VideoCodecProfile profile = | |
180 gpu::VideoCodecProfile::H264PROFILE_MAIN; | |
181 const int32_t max_width = 1920; | |
182 const int32_t max_height = 1080; | |
183 const int32_t min_width = 640; | |
184 const int32_t min_height = 480; | |
185 const gfx::Size max_resolution(max_width, max_height); | |
186 const gfx::Size min_resolution(min_width, min_height); | |
187 | |
188 gpu::VideoDecodeAcceleratorSupportedProfile input; | |
189 input.profile = profile; | |
190 input.max_resolution = max_resolution; | |
191 input.min_resolution = min_resolution; | |
192 input.encrypted_only = false; | |
193 | |
194 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); | |
195 gpu::VideoDecodeAcceleratorSupportedProfile output; | |
196 proxy->EchoVideoDecodeAcceleratorSupportedProfile(input, &output); | |
197 EXPECT_EQ(profile, output.profile); | |
198 EXPECT_EQ(max_resolution, output.max_resolution); | |
199 EXPECT_EQ(min_resolution, output.min_resolution); | |
200 EXPECT_FALSE(output.encrypted_only); | |
201 } | |
202 | |
203 TEST_F(StructTraitsTest, VideoDecodeAcceleratorCapabilities) { | |
204 const uint32_t flags = 1234; | |
205 | |
206 gpu::VideoDecodeAcceleratorCapabilities input; | |
207 input.flags = flags; | |
208 | |
209 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); | |
210 gpu::VideoDecodeAcceleratorCapabilities output; | |
211 proxy->EchoVideoDecodeAcceleratorCapabilities(input, &output); | |
212 EXPECT_EQ(flags, output.flags); | |
213 } | |
214 | |
215 TEST_F(StructTraitsTest, VideoEncodeAcceleratorSupportedProfile) { | |
216 const gpu::VideoCodecProfile profile = | |
217 gpu::VideoCodecProfile::H264PROFILE_MAIN; | |
218 const gfx::Size max_resolution(1920, 1080); | |
219 uint32_t max_framerate_numerator = 144; | |
Fady Samuel
2016/07/19 16:47:40
const
Alex Z.
2016/07/19 17:27:12
Done.
| |
220 uint32_t max_framerate_denominator = 12; | |
Fady Samuel
2016/07/19 16:47:40
const
Alex Z.
2016/07/19 17:27:12
Done.
| |
221 | |
222 gpu::VideoEncodeAcceleratorSupportedProfile input; | |
223 input.profile = profile; | |
224 input.max_resolution = max_resolution; | |
225 input.max_framerate_numerator = max_framerate_numerator; | |
226 input.max_framerate_denominator = max_framerate_denominator; | |
227 | |
228 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); | |
229 gpu::VideoEncodeAcceleratorSupportedProfile output; | |
230 proxy->EchoVideoEncodeAcceleratorSupportedProfile(input, &output); | |
231 EXPECT_EQ(profile, output.profile); | |
232 EXPECT_EQ(max_resolution, output.max_resolution); | |
233 EXPECT_EQ(max_framerate_numerator, output.max_framerate_numerator); | |
234 EXPECT_EQ(max_framerate_denominator, output.max_framerate_denominator); | |
235 } | |
236 | |
141 } // namespace gpu | 237 } // namespace gpu |
OLD | NEW |