#include "gpu/config/gpu_util.h"
#include "base/command_line.h"
#include "gpu/config/gpu_driver_bug_workaround_type.h"
#include "gpu/config/gpu_info.h"
#include "gpu/config/gpu_preferences.h"
#include "gpu/config/gpu_switches.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace gpu {
TEST(GpuUtilTest, GetGpuFeatureInfo_WorkaroundFromCommandLine) {
{
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
GPUInfo gpu_info;
GpuFeatureInfo gpu_feature_info = ComputeGpuFeatureInfo(
gpu_info, GpuPreferences(), &command_line, nullptr);
EXPECT_FALSE(gpu_feature_info.IsWorkaroundEnabled(
USE_GPU_DRIVER_WORKAROUND_FOR_TESTING));
}
{
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
command_line.AppendSwitchASCII(GpuDriverBugWorkaroundTypeToString(
USE_GPU_DRIVER_WORKAROUND_FOR_TESTING),
"1");
GPUInfo gpu_info;
GpuFeatureInfo gpu_feature_info = ComputeGpuFeatureInfo(
gpu_info, GpuPreferences(), &command_line, nullptr);
EXPECT_TRUE(gpu_feature_info.IsWorkaroundEnabled(
USE_GPU_DRIVER_WORKAROUND_FOR_TESTING));
}
{
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
command_line.AppendSwitchASCII(switches::kGpuDriverBugListTestGroup, "1");
GPUInfo gpu_info;
GpuFeatureInfo gpu_feature_info = ComputeGpuFeatureInfo(
gpu_info, GpuPreferences(), &command_line, nullptr);
EXPECT_TRUE(gpu_feature_info.IsWorkaroundEnabled(
USE_GPU_DRIVER_WORKAROUND_FOR_TESTING));
}
{
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
command_line.AppendSwitchASCII(switches::kGpuDriverBugListTestGroup, "1");
command_line.AppendSwitchASCII(GpuDriverBugWorkaroundTypeToString(
USE_GPU_DRIVER_WORKAROUND_FOR_TESTING),
"0");
GPUInfo gpu_info;
GpuFeatureInfo gpu_feature_info = ComputeGpuFeatureInfo(
gpu_info, GpuPreferences(), &command_line, nullptr);
EXPECT_FALSE(gpu_feature_info.IsWorkaroundEnabled(
USE_GPU_DRIVER_WORKAROUND_FOR_TESTING));
}
}
}