|  | // Copyright (c) 2015 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 "gpu/command_buffer/service/context_state.h" | 
|  |  | 
|  | #include <stddef.h> | 
|  |  | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  |  | 
|  | namespace gpu { | 
|  | namespace gles2 { | 
|  |  | 
|  | TEST(ContextStateVec4Test, DefaultValues) { | 
|  | Vec4 v; | 
|  | EXPECT_EQ(SHADER_VARIABLE_FLOAT, v.type()); | 
|  | GLfloat f[4]; | 
|  | v.GetValues(f); | 
|  | EXPECT_EQ(0.f, f[0]); | 
|  | EXPECT_EQ(0.f, f[1]); | 
|  | EXPECT_EQ(0.f, f[2]); | 
|  | EXPECT_EQ(1.f, f[3]); | 
|  | } | 
|  |  | 
|  | TEST(ContextStateVec4Test, SetGetFloatValues) { | 
|  | Vec4 v; | 
|  |  | 
|  | const GLfloat kFloatValues[4] = { 2.f, 3.f, 4.f, 5.f }; | 
|  | v.SetValues(kFloatValues); | 
|  | EXPECT_EQ(SHADER_VARIABLE_FLOAT, v.type()); | 
|  | GLfloat fv[4]; | 
|  | v.GetValues(fv); | 
|  | for (size_t ii = 0; ii < 4; ++ii) { | 
|  | EXPECT_EQ(kFloatValues[ii], fv[ii]); | 
|  | } | 
|  | } | 
|  |  | 
|  | TEST(ContextStateVec4Test, SetGetIntValues) { | 
|  | Vec4 v; | 
|  |  | 
|  | const GLint kIntValues[4] = { 2, 3, -4, 5 }; | 
|  | v.SetValues(kIntValues); | 
|  | EXPECT_EQ(SHADER_VARIABLE_INT, v.type()); | 
|  | GLint iv[4]; | 
|  | v.GetValues(iv); | 
|  | for (size_t ii = 0; ii < 4; ++ii) { | 
|  | EXPECT_EQ(kIntValues[ii], iv[ii]); | 
|  | } | 
|  | } | 
|  |  | 
|  | TEST(ContextStateVec4Test, SetGetUIntValues) { | 
|  | Vec4 v; | 
|  |  | 
|  | const GLuint kUIntValues[4] = { 2, 3, 4, 5 }; | 
|  | v.SetValues(kUIntValues); | 
|  | EXPECT_EQ(SHADER_VARIABLE_UINT, v.type()); | 
|  | GLuint uiv[4]; | 
|  | v.GetValues(uiv); | 
|  | for (size_t ii = 0; ii < 4; ++ii) { | 
|  | EXPECT_EQ(kUIntValues[ii], uiv[ii]); | 
|  | } | 
|  | } | 
|  |  | 
|  | TEST(ContextStateVec4Test, Equal) { | 
|  | Vec4 v1, v2; | 
|  |  | 
|  | const GLint kIntValues[4] = { 2, 3, 4, 5 }; | 
|  | const GLuint kUIntValues[4] = { 2, 3, 4, 5 }; | 
|  |  | 
|  | v1.SetValues(kIntValues); | 
|  | v2.SetValues(kUIntValues); | 
|  | EXPECT_FALSE(v1.Equal(v2)); | 
|  | EXPECT_FALSE(v2.Equal(v1)); | 
|  |  | 
|  | v2.SetValues(kIntValues); | 
|  | EXPECT_TRUE(v1.Equal(v2)); | 
|  | EXPECT_TRUE(v2.Equal(v1)); | 
|  |  | 
|  | const GLint kIntValues2[4] = { 2, 3, 4, 6 }; | 
|  | v2.SetValues(kIntValues2); | 
|  | EXPECT_FALSE(v1.Equal(v2)); | 
|  | EXPECT_FALSE(v2.Equal(v1)); | 
|  | } | 
|  |  | 
|  | }  // namespace gles2 | 
|  | }  // namespace gpu | 
|  |  | 
|  |  |