root/gpu/config/gpu_blacklist_unittest.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. gpu_info
  2. RunFeatureTest
  3. SetUp
  4. TearDown
  5. TEST_F

// Copyright (c) 2013 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 "base/memory/scoped_ptr.h"
#include "gpu/config/gpu_blacklist.h"
#include "gpu/config/gpu_control_list_jsons.h"
#include "gpu/config/gpu_feature_type.h"
#include "gpu/config/gpu_info.h"
#include "testing/gtest/include/gtest/gtest.h"

const char kOsVersion[] = "10.6.4";

namespace gpu {

class GpuBlacklistTest : public testing::Test {
 public:
  GpuBlacklistTest() { }

  virtual ~GpuBlacklistTest() { }

  const GPUInfo& gpu_info() const {
    return gpu_info_;
  }

  void RunFeatureTest(
      const std::string feature_name, GpuFeatureType feature_type) {
    const std::string json =
        "{\n"
        "  \"name\": \"gpu blacklist\",\n"
        "  \"version\": \"0.1\",\n"
        "  \"entries\": [\n"
        "    {\n"
        "      \"id\": 1,\n"
        "      \"os\": {\n"
        "        \"type\": \"macosx\"\n"
        "      },\n"
        "      \"vendor_id\": \"0x10de\",\n"
        "      \"device_id\": [\"0x0640\"],\n"
        "      \"features\": [\n"
        "        \"" +
        feature_name +
        "\"\n"
        "      ]\n"
        "    }\n"
        "  ]\n"
        "}";

    scoped_ptr<GpuBlacklist> blacklist(GpuBlacklist::Create());
    EXPECT_TRUE(blacklist->LoadList(json, GpuBlacklist::kAllOs));
    std::set<int> type = blacklist->MakeDecision(
        GpuBlacklist::kOsMacosx, kOsVersion, gpu_info());
    EXPECT_EQ(1u, type.size());
    EXPECT_EQ(1u, type.count(feature_type));
  }

 protected:
  virtual void SetUp() {
    gpu_info_.gpu.vendor_id = 0x10de;
    gpu_info_.gpu.device_id = 0x0640;
    gpu_info_.driver_vendor = "NVIDIA";
    gpu_info_.driver_version = "1.6.18";
    gpu_info_.driver_date = "7-14-2009";
    gpu_info_.machine_model = "MacBookPro 7.1";
    gpu_info_.gl_vendor = "NVIDIA Corporation";
    gpu_info_.gl_renderer = "NVIDIA GeForce GT 120 OpenGL Engine";
    gpu_info_.performance_stats.graphics = 5.0;
    gpu_info_.performance_stats.gaming = 5.0;
    gpu_info_.performance_stats.overall = 5.0;
  }

  virtual void TearDown() {
  }

 private:
  GPUInfo gpu_info_;
};

TEST_F(GpuBlacklistTest, CurrentBlacklistValidation) {
  scoped_ptr<GpuBlacklist> blacklist(GpuBlacklist::Create());
  EXPECT_TRUE(blacklist->LoadList(
      kSoftwareRenderingListJson, GpuBlacklist::kAllOs));
}

#define GPU_BLACKLIST_FEATURE_TEST(test_name, feature_name, feature_type) \
TEST_F(GpuBlacklistTest, test_name) {                                     \
  RunFeatureTest(feature_name, feature_type);                             \
}

GPU_BLACKLIST_FEATURE_TEST(Accelerated2DCanvas,
                           "accelerated_2d_canvas",
                           GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS)

GPU_BLACKLIST_FEATURE_TEST(AcceleratedCompositing,
                           "accelerated_compositing",
                           GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING)

GPU_BLACKLIST_FEATURE_TEST(WebGL,
                           "webgl",
                           GPU_FEATURE_TYPE_WEBGL)

GPU_BLACKLIST_FEATURE_TEST(Flash3D,
                           "flash_3d",
                           GPU_FEATURE_TYPE_FLASH3D)

GPU_BLACKLIST_FEATURE_TEST(FlashStage3D,
                           "flash_stage3d",
                           GPU_FEATURE_TYPE_FLASH_STAGE3D)

GPU_BLACKLIST_FEATURE_TEST(FlashStage3DBaseline,
                           "flash_stage3d_baseline",
                           GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE)

GPU_BLACKLIST_FEATURE_TEST(AcceleratedVideoDecode,
                           "accelerated_video_decode",
                           GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE)

GPU_BLACKLIST_FEATURE_TEST(AcceleratedVideoEncode,
                           "accelerated_video_encode",
                           GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE)

GPU_BLACKLIST_FEATURE_TEST(Css3D,
                           "3d_css",
                           GPU_FEATURE_TYPE_3D_CSS)

GPU_BLACKLIST_FEATURE_TEST(AcceleratedVideo,
                           "accelerated_video",
                           GPU_FEATURE_TYPE_ACCELERATED_VIDEO)

GPU_BLACKLIST_FEATURE_TEST(PanelFitting,
                           "panel_fitting",
                           GPU_FEATURE_TYPE_PANEL_FITTING)

GPU_BLACKLIST_FEATURE_TEST(ForceCompositingMode,
                           "force_compositing_mode",
                           GPU_FEATURE_TYPE_FORCE_COMPOSITING_MODE)

}  // namespace gpu

/* [<][>][^][v][top][bottom][index][help] */