| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Tests for GLES2Implementation. | 5 // Tests for GLES2Implementation. |
| 6 | 6 |
| 7 #include "gpu/command_buffer/client/gles2_implementation.h" | 7 #include "gpu/command_buffer/client/gles2_implementation.h" |
| 8 | 8 |
| 9 #include <limits> | 9 #include <limits> |
| 10 | 10 |
| (...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 889 GLint precision4 = 0; | 889 GLint precision4 = 0; |
| 890 gl_->GetShaderPrecisionFormat(GL_FRAGMENT_SHADER, GL_MEDIUM_FLOAT, range4, | 890 gl_->GetShaderPrecisionFormat(GL_FRAGMENT_SHADER, GL_MEDIUM_FLOAT, range4, |
| 891 &precision4); | 891 &precision4); |
| 892 const void* commands5 = GetPut(); | 892 const void* commands5 = GetPut(); |
| 893 EXPECT_EQ(commands4, commands5); | 893 EXPECT_EQ(commands4, commands5); |
| 894 EXPECT_EQ(range4[0], 3); | 894 EXPECT_EQ(range4[0], 3); |
| 895 EXPECT_EQ(range4[1], 5); | 895 EXPECT_EQ(range4[1], 5); |
| 896 EXPECT_EQ(precision4, 7); | 896 EXPECT_EQ(precision4, 7); |
| 897 } | 897 } |
| 898 | 898 |
| 899 TEST_F(GLES2ImplementationTest, ShaderSource) { | |
| 900 const uint32 kBucketId = GLES2Implementation::kResultBucketId; | |
| 901 const GLuint kShaderId = 456; | |
| 902 const char* kString1 = "foobar"; | |
| 903 const char* kString2 = "barfoo"; | |
| 904 const size_t kString1Size = strlen(kString1) + 1; | |
| 905 const size_t kString2Size = strlen(kString2) + 1; | |
| 906 const size_t kHeaderSize = sizeof(GLint) * 3; | |
| 907 const size_t kSourceSize = kHeaderSize + kString1Size + kString2Size; | |
| 908 const size_t kPaddedHeaderSize = | |
| 909 transfer_buffer_->RoundToAlignment(kHeaderSize); | |
| 910 const size_t kPaddedString1Size = | |
| 911 transfer_buffer_->RoundToAlignment(kString1Size); | |
| 912 const size_t kPaddedString2Size = | |
| 913 transfer_buffer_->RoundToAlignment(kString2Size); | |
| 914 struct Cmds { | |
| 915 cmd::SetBucketSize set_bucket_size; | |
| 916 cmd::SetBucketData set_bucket_header; | |
| 917 cmd::SetToken set_token1; | |
| 918 cmd::SetBucketData set_bucket_data1; | |
| 919 cmd::SetToken set_token2; | |
| 920 cmd::SetBucketData set_bucket_data2; | |
| 921 cmd::SetToken set_token3; | |
| 922 cmds::ShaderSourceBucket shader_source_bucket; | |
| 923 cmd::SetBucketSize clear_bucket_size; | |
| 924 }; | |
| 925 | |
| 926 ExpectedMemoryInfo mem0 = GetExpectedMemory(kPaddedHeaderSize); | |
| 927 ExpectedMemoryInfo mem1 = GetExpectedMemory(kPaddedString1Size); | |
| 928 ExpectedMemoryInfo mem2 = GetExpectedMemory(kPaddedString2Size); | |
| 929 | |
| 930 Cmds expected; | |
| 931 expected.set_bucket_size.Init(kBucketId, kSourceSize); | |
| 932 expected.set_bucket_header.Init( | |
| 933 kBucketId, 0, kHeaderSize, mem0.id, mem0.offset); | |
| 934 expected.set_token1.Init(GetNextToken()); | |
| 935 expected.set_bucket_data1.Init( | |
| 936 kBucketId, kHeaderSize, kString1Size, mem1.id, mem1.offset); | |
| 937 expected.set_token2.Init(GetNextToken()); | |
| 938 expected.set_bucket_data2.Init( | |
| 939 kBucketId, kHeaderSize + kString1Size, kString2Size, mem2.id, | |
| 940 mem2.offset); | |
| 941 expected.set_token3.Init(GetNextToken()); | |
| 942 expected.shader_source_bucket.Init(kShaderId, kBucketId); | |
| 943 expected.clear_bucket_size.Init(kBucketId, 0); | |
| 944 const char* kStrings[] = { | |
| 945 kString1, | |
| 946 kString2, | |
| 947 }; | |
| 948 gl_->ShaderSource(kShaderId, 2, kStrings, NULL); | |
| 949 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); | |
| 950 } | |
| 951 | |
| 952 TEST_F(GLES2ImplementationTest, ShaderSourceWithLength) { | |
| 953 const uint32 kBucketId = GLES2Implementation::kResultBucketId; | |
| 954 const GLuint kShaderId = 456; | |
| 955 const char* kString = "foobar******"; | |
| 956 const size_t kStringSize = 6; // We only need "foobar". | |
| 957 const size_t kHeaderSize = sizeof(GLint) * 2; | |
| 958 const size_t kSourceSize = kHeaderSize + kStringSize + 1; | |
| 959 const size_t kPaddedHeaderSize = | |
| 960 transfer_buffer_->RoundToAlignment(kHeaderSize); | |
| 961 const size_t kPaddedStringSize = | |
| 962 transfer_buffer_->RoundToAlignment(kStringSize + 1); | |
| 963 | |
| 964 struct Cmds { | |
| 965 cmd::SetBucketSize set_bucket_size; | |
| 966 cmd::SetBucketData set_bucket_header; | |
| 967 cmd::SetToken set_token1; | |
| 968 cmd::SetBucketData set_bucket_data; | |
| 969 cmd::SetToken set_token2; | |
| 970 cmds::ShaderSourceBucket shader_source_bucket; | |
| 971 cmd::SetBucketSize clear_bucket_size; | |
| 972 }; | |
| 973 | |
| 974 ExpectedMemoryInfo mem0 = GetExpectedMemory(kPaddedHeaderSize); | |
| 975 ExpectedMemoryInfo mem1 = GetExpectedMemory(kPaddedStringSize); | |
| 976 | |
| 977 Cmds expected; | |
| 978 expected.set_bucket_size.Init(kBucketId, kSourceSize); | |
| 979 expected.set_bucket_header.Init( | |
| 980 kBucketId, 0, kHeaderSize, mem0.id, mem0.offset); | |
| 981 expected.set_token1.Init(GetNextToken()); | |
| 982 expected.set_bucket_data.Init( | |
| 983 kBucketId, kHeaderSize, kStringSize + 1, mem1.id, mem1.offset); | |
| 984 expected.set_token2.Init(GetNextToken()); | |
| 985 expected.shader_source_bucket.Init(kShaderId, kBucketId); | |
| 986 expected.clear_bucket_size.Init(kBucketId, 0); | |
| 987 const char* kStrings[] = { kString }; | |
| 988 const GLint kLength[] = { kStringSize }; | |
| 989 gl_->ShaderSource(kShaderId, 1, kStrings, kLength); | |
| 990 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); | |
| 991 } | |
| 992 | |
| 993 TEST_F(GLES2ImplementationTest, GetShaderSource) { | 899 TEST_F(GLES2ImplementationTest, GetShaderSource) { |
| 994 const uint32 kBucketId = GLES2Implementation::kResultBucketId; | 900 const uint32 kBucketId = GLES2Implementation::kResultBucketId; |
| 995 const GLuint kShaderId = 456; | 901 const GLuint kShaderId = 456; |
| 996 const Str7 kString = {"foobar"}; | 902 const Str7 kString = {"foobar"}; |
| 997 const char kBad = 0x12; | 903 const char kBad = 0x12; |
| 998 struct Cmds { | 904 struct Cmds { |
| 999 cmd::SetBucketSize set_bucket_size1; | 905 cmd::SetBucketSize set_bucket_size1; |
| 1000 cmds::GetShaderSource get_shader_source; | 906 cmds::GetShaderSource get_shader_source; |
| 1001 cmd::GetBucketStart get_bucket_start; | 907 cmd::GetBucketStart get_bucket_start; |
| 1002 cmd::SetToken set_token1; | 908 cmd::SetToken set_token1; |
| (...skipping 2627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3630 TEST_F(GLES2ImplementationManualInitTest, FailInitOnTransferBufferFail) { | 3536 TEST_F(GLES2ImplementationManualInitTest, FailInitOnTransferBufferFail) { |
| 3631 ContextInitOptions init_options; | 3537 ContextInitOptions init_options; |
| 3632 init_options.transfer_buffer_initialize_fail = true; | 3538 init_options.transfer_buffer_initialize_fail = true; |
| 3633 EXPECT_FALSE(Initialize(init_options)); | 3539 EXPECT_FALSE(Initialize(init_options)); |
| 3634 } | 3540 } |
| 3635 | 3541 |
| 3636 #include "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h" | 3542 #include "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h" |
| 3637 | 3543 |
| 3638 } // namespace gles2 | 3544 } // namespace gles2 |
| 3639 } // namespace gpu | 3545 } // namespace gpu |
| OLD | NEW |