summaryrefslogtreecommitdiffstats
path: root/content/browser/gpu/gpu_util_unittest.cc
blob: 9d5de36a6ed40b18e7f2b00b90222a7cdb9abd85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// Copyright (c) 2011 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 "content/browser/gpu/gpu_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gl/gl_switches.h"

namespace content {

TEST(GpuUtilsTest, GpuFeatureTypFromString) {
  // Test StringToGpuFeatureType.
  EXPECT_EQ(StringToGpuFeatureType("accelerated_2d_canvas"),
            GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS);
  EXPECT_EQ(StringToGpuFeatureType("accelerated_compositing"),
            GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING);
  EXPECT_EQ(StringToGpuFeatureType("webgl"), GPU_FEATURE_TYPE_WEBGL);
  EXPECT_EQ(StringToGpuFeatureType("multisampling"),
            GPU_FEATURE_TYPE_MULTISAMPLING);
  EXPECT_EQ(StringToGpuFeatureType("flash_3d"), GPU_FEATURE_TYPE_FLASH3D);
  EXPECT_EQ(StringToGpuFeatureType("flash_stage3d"),
            GPU_FEATURE_TYPE_FLASH_STAGE3D);
  EXPECT_EQ(StringToGpuFeatureType("texture_sharing"),
            GPU_FEATURE_TYPE_TEXTURE_SHARING);
  EXPECT_EQ(StringToGpuFeatureType("accelerated_video_decode"),
            GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE);
  EXPECT_EQ(StringToGpuFeatureType("3d_css"), GPU_FEATURE_TYPE_3D_CSS);
  EXPECT_EQ(StringToGpuFeatureType("accelerated_video"),
            GPU_FEATURE_TYPE_ACCELERATED_VIDEO);
  EXPECT_EQ(StringToGpuFeatureType("panel_fitting"),
            GPU_FEATURE_TYPE_PANEL_FITTING);
  EXPECT_EQ(StringToGpuFeatureType("all"), GPU_FEATURE_TYPE_ALL);
  EXPECT_EQ(StringToGpuFeatureType("xxx"), GPU_FEATURE_TYPE_UNKNOWN);
}

TEST(GpuUtilsTest, GpuFeatureTypeToString) {
  // Test GpuFeatureTypeToString for single-bit enums using the all enum
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING).c_str(),
      "accelerated_compositing");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS).c_str(),
      "accelerated_2d_canvas");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_WEBGL).c_str(), "webgl");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_MULTISAMPLING).c_str(),
      "multisampling");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_FLASH3D).c_str(), "flash_3d");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_FLASH_STAGE3D).c_str(),
      "flash_stage3d");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_TEXTURE_SHARING).c_str(),
      "texture_sharing");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE).c_str(),
      "accelerated_video_decode");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_3D_CSS).c_str(), "3d_css");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_ACCELERATED_VIDEO).c_str(),
      "accelerated_video");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_PANEL_FITTING).c_str(),
      "panel_fitting");
  EXPECT_STREQ(
      GpuFeatureTypeToString(GPU_FEATURE_TYPE_ALL).c_str(), "all");
  EXPECT_STREQ(GpuFeatureTypeToString(
      GPU_FEATURE_TYPE_UNKNOWN).c_str(), "unknown");
  EXPECT_STREQ(
      GpuFeatureTypeToString(
          static_cast<GpuFeatureType>(
              GPU_FEATURE_TYPE_WEBGL |
              GPU_FEATURE_TYPE_MULTISAMPLING)).c_str(),
      "webgl,multisampling");
  EXPECT_STREQ(
      GpuFeatureTypeToString(
          static_cast<GpuFeatureType>(
              GPU_FEATURE_TYPE_WEBGL |
              GPU_FEATURE_TYPE_ALL)).c_str(),
      "all");
}

TEST(GpuUtilsTest, GpuSwitchingOptionFromString) {
  // Test StringToGpuSwitchingOption.
  EXPECT_EQ(StringToGpuSwitchingOption(
                switches::kGpuSwitchingOptionNameAutomatic),
            GPU_SWITCHING_OPTION_AUTOMATIC);
  EXPECT_EQ(StringToGpuSwitchingOption(
                switches::kGpuSwitchingOptionNameForceDiscrete),
            GPU_SWITCHING_OPTION_FORCE_DISCRETE);
  EXPECT_EQ(StringToGpuSwitchingOption(
                switches::kGpuSwitchingOptionNameForceIntegrated),
            GPU_SWITCHING_OPTION_FORCE_INTEGRATED);
  EXPECT_EQ(StringToGpuSwitchingOption("xxx"), GPU_SWITCHING_OPTION_UNKNOWN);
}

TEST(GpuUtilsTest, GpuSwitchingOptionToString) {
  // Test GpuSwitchingOptionToString.
  EXPECT_STREQ(
      GpuSwitchingOptionToString(GPU_SWITCHING_OPTION_AUTOMATIC).c_str(),
      switches::kGpuSwitchingOptionNameAutomatic);
  EXPECT_STREQ(
      GpuSwitchingOptionToString(GPU_SWITCHING_OPTION_FORCE_DISCRETE).c_str(),
      switches::kGpuSwitchingOptionNameForceDiscrete);
  EXPECT_STREQ(
      GpuSwitchingOptionToString(GPU_SWITCHING_OPTION_FORCE_INTEGRATED).c_str(),
      switches::kGpuSwitchingOptionNameForceIntegrated);
}

}  // namespace content