| // Copyright (c) 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "gpu/config/gpu_info.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace gpu { |
| |
| namespace { |
| // This overrides the base class to test behaviors of virtual functions. |
| class TestGPUInfoEnumerator : public gpu::GPUInfo::Enumerator { |
| public: |
| TestGPUInfoEnumerator() |
| : gpu_device_active_(false), |
| video_decode_accelerator_profile_active_(false), |
| video_encode_accelerator_profile_active_(false), |
| image_decode_accelerator_profile_active_(false), |
| overlay_info_active_(false), |
| aux_attributes_active_(false) {} |
| |
| void AddInt64(const char* name, int64_t value) override {} |
| |
| void AddInt(const char* name, int value) override {} |
| |
| void AddString(const char* name, const std::string& value) override {} |
| |
| void AddBool(const char* name, bool value) override {} |
| |
| void AddBinary(const char* name, |
| const base::span<const uint8_t>& blob) override {} |
| |
| void AddTimeDeltaInSecondsF(const char* name, |
| const base::TimeDelta& value) override {} |
| |
| // Enumerator state mutator functions |
| void BeginGPUDevice() override { gpu_device_active_ = true; } |
| |
| void EndGPUDevice() override { gpu_device_active_ = false; } |
| |
| void BeginVideoDecodeAcceleratorSupportedProfile() override { |
| video_decode_accelerator_profile_active_ = true; |
| } |
| |
| void EndVideoDecodeAcceleratorSupportedProfile() override { |
| video_decode_accelerator_profile_active_ = false; |
| } |
| |
| void BeginVideoEncodeAcceleratorSupportedProfile() override { |
| video_encode_accelerator_profile_active_ = true; |
| } |
| |
| void EndVideoEncodeAcceleratorSupportedProfile() override { |
| video_encode_accelerator_profile_active_ = false; |
| } |
| |
| void BeginImageDecodeAcceleratorSupportedProfile() override { |
| image_decode_accelerator_profile_active_ = true; |
| } |
| |
| void EndImageDecodeAcceleratorSupportedProfile() override { |
| image_decode_accelerator_profile_active_ = false; |
| } |
| |
| void BeginOverlayInfo() override { overlay_info_active_ = true; } |
| |
| void EndOverlayInfo() override { overlay_info_active_ = false; } |
| |
| void BeginAuxAttributes() override { aux_attributes_active_ = true; } |
| |
| void EndAuxAttributes() override { aux_attributes_active_ = false; } |
| |
| // Accessor functions |
| bool gpu_device_active() const { return gpu_device_active_; } |
| |
| bool video_decode_accelerator_profile_active() const { |
| return video_decode_accelerator_profile_active_; |
| } |
| |
| bool video_encode_accelerator_profile_active() const { |
| return video_encode_accelerator_profile_active_; |
| } |
| |
| bool image_decode_accelerator_profile_active() const { |
| return image_decode_accelerator_profile_active_; |
| } |
| |
| bool aux_attributes_active() const { return aux_attributes_active_; } |
| |
| private: |
| bool gpu_device_active_; |
| bool video_decode_accelerator_profile_active_; |
| bool video_encode_accelerator_profile_active_; |
| bool image_decode_accelerator_profile_active_; |
| bool overlay_info_active_; |
| bool aux_attributes_active_; |
| }; |
| } // namespace |
| |
| // Makes sure that after EnumerateFields is called, the field edit states |
| // are inactive |
| TEST(GpuInfoTest, FieldEditStates) { |
| GPUInfo gpu_info; |
| TestGPUInfoEnumerator enumerator; |
| gpu_info.EnumerateFields(&enumerator); |
| EXPECT_FALSE(enumerator.gpu_device_active()); |
| EXPECT_FALSE(enumerator.video_decode_accelerator_profile_active()); |
| EXPECT_FALSE(enumerator.video_encode_accelerator_profile_active()); |
| EXPECT_FALSE(enumerator.image_decode_accelerator_profile_active()); |
| EXPECT_FALSE(enumerator.aux_attributes_active()); |
| } |
| |
| } // namespace gpu |