blob: 8782f1048bc9655d81be360fe54e28b7a4e14497 [file] [log] [blame]
// 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 "base/memory/scoped_ptr.h"
#include "content/common/gpu/gpu_info.h"
#include "content/gpu/gpu_idirect3d9_mock_win.h"
#include "content/gpu/gpu_info_collector.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
using ::testing::_;
using ::testing::Return;
using ::testing::SetArgumentPointee;
class GPUInfoTest : public testing::Test {
public:
GPUInfoTest() { }
virtual ~GPUInfoTest() { }
protected:
void SetUp() {
// Test variables taken from Lenovo T61
test_identifier_.VendorId = 0x10de;
test_identifier_.DeviceId = 0x429;
test_identifier_.DriverVersion.QuadPart = 0x6000e000b1e23; // 6.14.11.7715
test_caps_.PixelShaderVersion = 0xffff0300; // 3.0
test_caps_.VertexShaderVersion = 0xfffe0300; // 3.0
EXPECT_CALL(d3d_, GetDeviceCaps(_, _, _))
.WillOnce(DoAll(SetArgumentPointee<2>(test_caps_),
Return(D3D_OK)));
EXPECT_CALL(d3d_, QueryInterface(__uuidof(IDirect3D9Ex), _))
.WillOnce(Return(E_NOINTERFACE));
EXPECT_CALL(d3d_, Release());
}
void TearDown() {
}
public:
IDirect3D9Mock d3d_;
private:
D3DADAPTER_IDENTIFIER9 test_identifier_;
D3DCAPS9 test_caps_;
};
TEST_F(GPUInfoTest, PixelShaderVersionD3D) {
GPUInfo gpu_info;
ASSERT_TRUE(gpu_info_collector::CollectGraphicsInfoD3D(&d3d_, &gpu_info));
EXPECT_EQ(gpu_info.pixel_shader_version, "3.0");
}
TEST_F(GPUInfoTest, VertexShaderVersionD3D) {
GPUInfo gpu_info;
ASSERT_TRUE(gpu_info_collector::CollectGraphicsInfoD3D(&d3d_, &gpu_info));
EXPECT_EQ(gpu_info.vertex_shader_version, "3.0");
}