// 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& 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