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 const uint32_t max_framerate_numerator = 144; |
| 220 const uint32_t max_framerate_denominator = 12; |
| 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 |