// 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 #include "testing/gtest/include/gtest/gtest.h" namespace gpu { namespace gles2 { TEST(ContextStateVec4Test, DefaultValues) { Vec4 v; EXPECT_EQ(Vec4::kFloat, 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(Vec4::kFloat, 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(Vec4::kInt, 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(Vec4::kUInt, 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