summaryrefslogtreecommitdiffstats
path: root/chrome/common/gpu_feature_flags_unittest.cc
diff options
context:
space:
mode:
authorzmo@google.com <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-11 21:07:18 +0000
committerzmo@google.com <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-11 21:07:18 +0000
commit2efc3118e5132ed7d3497f98d82cfb693490d552 (patch)
tree4e173c50c899c858155cc783c766db4d43a29ddf /chrome/common/gpu_feature_flags_unittest.cc
parenta71a22ff3045cc1523321fd81b82c97e4e53e097 (diff)
downloadchromium_src-2efc3118e5132ed7d3497f98d82cfb693490d552.zip
chromium_src-2efc3118e5132ed7d3497f98d82cfb693490d552.tar.gz
chromium_src-2efc3118e5132ed7d3497f98d82cfb693490d552.tar.bz2
Blacklist bad GPU drivers: currenly we disable all gpu related features if a (os, device, driver) configuration is on the blacklist.
BUG=58182 TEST=unittest Review URL: http://codereview.chromium.org/5612002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68948 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/gpu_feature_flags_unittest.cc')
-rw-r--r--chrome/common/gpu_feature_flags_unittest.cc51
1 files changed, 51 insertions, 0 deletions
diff --git a/chrome/common/gpu_feature_flags_unittest.cc b/chrome/common/gpu_feature_flags_unittest.cc
new file mode 100644
index 0000000..1bd8f40
--- /dev/null
+++ b/chrome/common/gpu_feature_flags_unittest.cc
@@ -0,0 +1,51 @@
+// Copyright (c) 2010 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 "chrome/common/gpu_feature_flags.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+TEST(GpuFeatureFlagsTest, GpuFeatureFlagsBasic) {
+ // Test that by default all flags are set to false.
+ GpuFeatureFlags flags;
+ EXPECT_EQ(flags.flags(), 0u);
+
+ // Test SetFlags().
+ GpuFeatureFlags flags2;
+ flags2.set_flags(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing |
+ GpuFeatureFlags::kGpuFeatureWebgl);
+ EXPECT_EQ(flags2.flags(),
+ static_cast<uint32>(
+ GpuFeatureFlags::kGpuFeatureAcceleratedCompositing |
+ GpuFeatureFlags::kGpuFeatureWebgl));
+
+ // Test Combine() is basically OR operation per flag.
+ flags.set_flags(GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas);
+ flags.Combine(flags2);
+ EXPECT_EQ(flags.flags(),
+ static_cast<uint32>(
+ GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas |
+ GpuFeatureFlags::kGpuFeatureAcceleratedCompositing |
+ GpuFeatureFlags::kGpuFeatureWebgl));
+
+ // Test the currently supported feature set.
+ flags.set_flags(GpuFeatureFlags::kGpuFeatureAll);
+ EXPECT_EQ(flags.flags(),
+ static_cast<uint32>(
+ GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas |
+ GpuFeatureFlags::kGpuFeatureAcceleratedCompositing |
+ GpuFeatureFlags::kGpuFeatureWebgl));
+
+ // Test StringToGpuFeatureType.
+ EXPECT_EQ(GpuFeatureFlags::StringToGpuFeatureType("accelerated_2d_canvas"),
+ GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas);
+ EXPECT_EQ(GpuFeatureFlags::StringToGpuFeatureType("accelerated_compositing"),
+ GpuFeatureFlags::kGpuFeatureAcceleratedCompositing);
+ EXPECT_EQ(GpuFeatureFlags::StringToGpuFeatureType("webgl"),
+ GpuFeatureFlags::kGpuFeatureWebgl);
+ EXPECT_EQ(GpuFeatureFlags::StringToGpuFeatureType("all"),
+ GpuFeatureFlags::kGpuFeatureAll);
+ EXPECT_EQ(GpuFeatureFlags::StringToGpuFeatureType("xxx"),
+ GpuFeatureFlags::kGpuFeatureUnknown);
+}
+