Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: gpu/command_buffer/build_gles2_cmd_buffer.py

Issue 7789021: Fix GPU cmd tests so they pass ASAN (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | gpu/command_buffer/common/gles2_cmd_format_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # 2 #
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """code generator for GLES2 command buffers.""" 7 """code generator for GLES2 command buffers."""
8 8
9 import os 9 import os
10 import os.path 10 import os.path
(...skipping 2019 matching lines...) Expand 10 before | Expand all | Expand 10 after
2030 """Writes the handler implementation for this command.""" 2030 """Writes the handler implementation for this command."""
2031 file.Write(" %s(%s);\n" % 2031 file.Write(" %s(%s);\n" %
2032 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) 2032 (func.GetGLFunctionName(), func.MakeOriginalArgString("")))
2033 2033
2034 def WriteCmdSizeTest(self, func, file): 2034 def WriteCmdSizeTest(self, func, file):
2035 """Writes the size test for a command.""" 2035 """Writes the size test for a command."""
2036 file.Write(" EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);\n") 2036 file.Write(" EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);\n")
2037 2037
2038 def WriteFormatTest(self, func, file): 2038 def WriteFormatTest(self, func, file):
2039 """Writes a format test for a command.""" 2039 """Writes a format test for a command."""
2040 file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name) 2040 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
2041 file.Write(" %s cmd = { { 0 } };\n" % func.name) 2041 file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name))
2042 file.Write(" void* next_cmd = cmd.Set(\n") 2042 file.Write(" void* next_cmd = cmd.Set(\n")
2043 file.Write(" &cmd") 2043 file.Write(" &cmd")
2044 args = func.GetCmdArgs() 2044 args = func.GetCmdArgs()
2045 value = 11 2045 value = 11
2046 for arg in args: 2046 for arg in args:
2047 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value)) 2047 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value))
2048 value += 1 2048 value += 1
2049 file.Write(");\n") 2049 file.Write(");\n")
2050 value = 11 2050 value = 11
2051 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name) 2051 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
2052 file.Write(" cmd.header.command);\n") 2052 file.Write(" cmd.header.command);\n")
2053 func.type_handler.WriteCmdSizeTest(func, file) 2053 func.type_handler.WriteCmdSizeTest(func, file)
2054 file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n")
2055 file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd));\n");
2056 for arg in args: 2054 for arg in args:
2057 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % 2055 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
2058 (arg.type, value, arg.name)) 2056 (arg.type, value, arg.name))
2059 value += 1 2057 value += 1
2058 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
2059 file.Write(" next_cmd, sizeof(cmd));\n")
2060 file.Write("}\n") 2060 file.Write("}\n")
2061 file.Write("\n") 2061 file.Write("\n")
2062 2062
2063 def WriteImmediateFormatTest(self, func, file): 2063 def WriteImmediateFormatTest(self, func, file):
2064 """Writes a format test for an immediate version of a command.""" 2064 """Writes a format test for an immediate version of a command."""
2065 file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name) 2065 pass
2066 file.Write(" int8 buf[256] = { 0, };\n")
2067 file.Write(" %s& cmd = *static_cast<%s*>(static_cast<void*>(&buf));\n" %
2068 (func.name, func.name))
2069 file.Write(" void* next_cmd = cmd.Set(\n")
2070 file.Write(" &cmd")
2071 args = func.GetCmdArgs()
2072 value = 11
2073 for arg in args:
2074 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value))
2075 value += 1
2076 file.Write(");\n")
2077 value = 11
2078 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
2079 file.Write(" cmd.header.command);\n")
2080 func.type_handler.WriteImmediateCmdSizeTest(func, file)
2081 file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n")
2082 file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd));\n");
2083 for arg in args:
2084 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
2085 (arg.type, value, arg.name))
2086 value += 1
2087 file.Write("}\n")
2088 file.Write("\n")
2089 2066
2090 def WriteBucketFormatTest(self, func, file): 2067 def WriteBucketFormatTest(self, func, file):
2091 """Writes a format test for a bucket version of a command.""" 2068 """Writes a format test for a bucket version of a command."""
2092 pass 2069 pass
2093 2070
2094 def WriteGetDataSizeCode(self, func, file): 2071 def WriteGetDataSizeCode(self, func, file):
2095 """Writes the code to set data_size used in validation""" 2072 """Writes the code to set data_size used in validation"""
2096 pass 2073 pass
2097 2074
2098 def WriteImmediateCmdSizeTest(self, func, file): 2075 def WriteImmediateCmdSizeTest(self, func, file):
(...skipping 857 matching lines...) Expand 10 before | Expand all | Expand 10 after
2956 file.Write(" const uint32 size = gles2::%s::ComputeSize(n);\n" % 2933 file.Write(" const uint32 size = gles2::%s::ComputeSize(n);\n" %
2957 func.name) 2934 func.name)
2958 file.Write(" gles2::%s& c = " 2935 file.Write(" gles2::%s& c = "
2959 "GetImmediateCmdSpaceTotalSize<gles2::%s>(size);\n" % 2936 "GetImmediateCmdSpaceTotalSize<gles2::%s>(size);\n" %
2960 (func.name, func.name)) 2937 (func.name, func.name))
2961 file.Write(" c.Init(%s);\n" % args) 2938 file.Write(" c.Init(%s);\n" % args)
2962 file.Write(" }\n\n") 2939 file.Write(" }\n\n")
2963 2940
2964 def WriteImmediateFormatTest(self, func, file): 2941 def WriteImmediateFormatTest(self, func, file):
2965 """Overrriden from TypeHandler.""" 2942 """Overrriden from TypeHandler."""
2966 file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name) 2943 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
2967 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n") 2944 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n")
2968 file.Write(" int8 buf[256] = { 0, };\n") 2945 file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name))
2969 file.Write(" %s& cmd = *static_cast<%s*>(static_cast<void*>(&buf));\n" %
2970 (func.name, func.name))
2971 file.Write(" void* next_cmd = cmd.Set(\n") 2946 file.Write(" void* next_cmd = cmd.Set(\n")
2972 file.Write(" &cmd") 2947 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n")
2973 args = func.GetCmdArgs()
2974 value = 11
2975 for arg in args:
2976 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value))
2977 value += 1
2978 file.Write(",\n ids);\n")
2979 args = func.GetCmdArgs()
2980 value = 11
2981 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name) 2948 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
2982 file.Write(" cmd.header.command);\n") 2949 file.Write(" cmd.header.command);\n")
2983 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") 2950 file.Write(" EXPECT_EQ(sizeof(cmd) +\n")
2984 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n") 2951 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n")
2985 file.Write(" cmd.header.size * 4u);\n") 2952 file.Write(" cmd.header.size * 4u);\n")
2986 file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n") 2953 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n");
2987 file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd) +\n"); 2954 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
2988 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u));\n"); 2955 file.Write(" next_cmd, sizeof(cmd) +\n")
2989 for arg in args: 2956 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n")
2990 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
2991 (arg.type, value, arg.name))
2992 value += 1
2993 file.Write(" // TODO(gman): Check that ids were inserted;\n") 2957 file.Write(" // TODO(gman): Check that ids were inserted;\n")
2994 file.Write("}\n") 2958 file.Write("}\n")
2995 file.Write("\n") 2959 file.Write("\n")
2996 2960
2997 2961
2998 class CreateHandler(TypeHandler): 2962 class CreateHandler(TypeHandler):
2999 """Handler for glCreate___ type functions.""" 2963 """Handler for glCreate___ type functions."""
3000 2964
3001 def __init__(self): 2965 def __init__(self):
3002 TypeHandler.__init__(self) 2966 TypeHandler.__init__(self)
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
3280 file.Write(" const uint32 size = gles2::%s::ComputeSize(n);\n" % 3244 file.Write(" const uint32 size = gles2::%s::ComputeSize(n);\n" %
3281 func.name) 3245 func.name)
3282 file.Write(" gles2::%s& c = " 3246 file.Write(" gles2::%s& c = "
3283 "GetImmediateCmdSpaceTotalSize<gles2::%s>(size);\n" % 3247 "GetImmediateCmdSpaceTotalSize<gles2::%s>(size);\n" %
3284 (func.name, func.name)) 3248 (func.name, func.name))
3285 file.Write(" c.Init(%s);\n" % args) 3249 file.Write(" c.Init(%s);\n" % args)
3286 file.Write(" }\n\n") 3250 file.Write(" }\n\n")
3287 3251
3288 def WriteImmediateFormatTest(self, func, file): 3252 def WriteImmediateFormatTest(self, func, file):
3289 """Overrriden from TypeHandler.""" 3253 """Overrriden from TypeHandler."""
3290 file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name) 3254 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
3291 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n") 3255 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n")
3292 file.Write(" int8 buf[256] = { 0, };\n") 3256 file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name))
3293 file.Write(" %s& cmd = *static_cast<%s*>(static_cast<void*>(&buf));\n" %
3294 (func.name, func.name))
3295 file.Write(" void* next_cmd = cmd.Set(\n") 3257 file.Write(" void* next_cmd = cmd.Set(\n")
3296 file.Write(" &cmd") 3258 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n")
3297 args = func.GetCmdArgs()
3298 value = 11
3299 for arg in args:
3300 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value))
3301 value += 1
3302 file.Write(",\n ids);\n")
3303 args = func.GetCmdArgs()
3304 value = 11
3305 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name) 3259 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
3306 file.Write(" cmd.header.command);\n") 3260 file.Write(" cmd.header.command);\n")
3307 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") 3261 file.Write(" EXPECT_EQ(sizeof(cmd) +\n")
3308 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n") 3262 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n")
3309 file.Write(" cmd.header.size * 4u);\n") 3263 file.Write(" cmd.header.size * 4u);\n")
3310 file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n") 3264 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n");
3311 file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd) +\n"); 3265 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
3312 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u));\n"); 3266 file.Write(" next_cmd, sizeof(cmd) +\n")
3313 for arg in args: 3267 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n")
3314 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
3315 (arg.type, value, arg.name))
3316 value += 1
3317 file.Write(" // TODO(gman): Check that ids were inserted;\n") 3268 file.Write(" // TODO(gman): Check that ids were inserted;\n")
3318 file.Write("}\n") 3269 file.Write("}\n")
3319 file.Write("\n") 3270 file.Write("\n")
3320 3271
3321 3272
3322 class GETnHandler(TypeHandler): 3273 class GETnHandler(TypeHandler):
3323 """Handler for GETn for glGetBooleanv, glGetFloatv, ... type functions.""" 3274 """Handler for GETn for glGetBooleanv, glGetFloatv, ... type functions."""
3324 3275
3325 def __init__(self): 3276 def __init__(self):
3326 TypeHandler.__init__(self) 3277 TypeHandler.__init__(self)
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
3644 file.Write(" const uint32 size = gles2::%s::ComputeSize();\n" % 3595 file.Write(" const uint32 size = gles2::%s::ComputeSize();\n" %
3645 func.name) 3596 func.name)
3646 file.Write(" gles2::%s& c = " 3597 file.Write(" gles2::%s& c = "
3647 "GetImmediateCmdSpaceTotalSize<gles2::%s>(size);\n" % 3598 "GetImmediateCmdSpaceTotalSize<gles2::%s>(size);\n" %
3648 (func.name, func.name)) 3599 (func.name, func.name))
3649 file.Write(" c.Init(%s);\n" % args) 3600 file.Write(" c.Init(%s);\n" % args)
3650 file.Write(" }\n\n") 3601 file.Write(" }\n\n")
3651 3602
3652 def WriteImmediateFormatTest(self, func, file): 3603 def WriteImmediateFormatTest(self, func, file):
3653 """Overrriden from TypeHandler.""" 3604 """Overrriden from TypeHandler."""
3654 file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name) 3605 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
3655 file.Write(" const int kSomeBaseValueToTestWith = 51;\n") 3606 file.Write(" const int kSomeBaseValueToTestWith = 51;\n")
3656 file.Write(" static %s data[] = {\n" % func.info.data_type) 3607 file.Write(" static %s data[] = {\n" % func.info.data_type)
3657 for v in range(0, func.info.count): 3608 for v in range(0, func.info.count):
3658 file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" % 3609 file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" %
3659 (func.info.data_type, v)) 3610 (func.info.data_type, v))
3660 file.Write(" };\n") 3611 file.Write(" };\n")
3661 file.Write(" int8 buf[256] = { 0, };\n") 3612 file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name))
3662 file.Write(" %s& cmd = *static_cast<%s*>(static_cast<void*>(&buf));\n" %
3663 (func.name, func.name))
3664 file.Write(" void* next_cmd = cmd.Set(\n") 3613 file.Write(" void* next_cmd = cmd.Set(\n")
3665 file.Write(" &cmd") 3614 file.Write(" &cmd")
3666 args = func.GetCmdArgs() 3615 args = func.GetCmdArgs()
3667 value = 11 3616 value = 11
3668 for arg in args: 3617 for arg in args:
3669 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value)) 3618 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value))
3670 value += 1 3619 value += 1
3671 file.Write(",\n data);\n") 3620 file.Write(",\n data);\n")
3672 args = func.GetCmdArgs() 3621 args = func.GetCmdArgs()
3673 value = 11 3622 value = 11
3674 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name) 3623 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
3675 file.Write(" cmd.header.command);\n") 3624 file.Write(" cmd.header.command);\n")
3676 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") 3625 file.Write(" EXPECT_EQ(sizeof(cmd) +\n")
3677 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)),\n") 3626 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)),\n")
3678 file.Write(" cmd.header.size * 4u);\n") 3627 file.Write(" cmd.header.size * 4u);\n")
3679 file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n")
3680 file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd) +\n")
3681 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n")
3682 for arg in args: 3628 for arg in args:
3683 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % 3629 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
3684 (arg.type, value, arg.name)) 3630 (arg.type, value, arg.name))
3685 value += 1 3631 value += 1
3632 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
3633 file.Write(" next_cmd, sizeof(cmd) +\n")
3634 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n")
3686 file.Write(" // TODO(gman): Check that data was inserted;\n") 3635 file.Write(" // TODO(gman): Check that data was inserted;\n")
3687 file.Write("}\n") 3636 file.Write("}\n")
3688 file.Write("\n") 3637 file.Write("\n")
3689 3638
3690 3639
3691 class PUTnHandler(TypeHandler): 3640 class PUTnHandler(TypeHandler):
3692 """Handler for PUTn 'glUniform__v' type functions.""" 3641 """Handler for PUTn 'glUniform__v' type functions."""
3693 3642
3694 def __init__(self): 3643 def __init__(self):
3695 TypeHandler.__init__(self) 3644 TypeHandler.__init__(self)
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
3875 file.Write(" const uint32 size = gles2::%s::ComputeSize(count);\n" % 3824 file.Write(" const uint32 size = gles2::%s::ComputeSize(count);\n" %
3876 func.name) 3825 func.name)
3877 file.Write(" gles2::%s& c = " 3826 file.Write(" gles2::%s& c = "
3878 "GetImmediateCmdSpaceTotalSize<gles2::%s>(size);\n" % 3827 "GetImmediateCmdSpaceTotalSize<gles2::%s>(size);\n" %
3879 (func.name, func.name)) 3828 (func.name, func.name))
3880 file.Write(" c.Init(%s);\n" % args) 3829 file.Write(" c.Init(%s);\n" % args)
3881 file.Write(" }\n\n") 3830 file.Write(" }\n\n")
3882 3831
3883 def WriteImmediateFormatTest(self, func, file): 3832 def WriteImmediateFormatTest(self, func, file):
3884 """Overrriden from TypeHandler.""" 3833 """Overrriden from TypeHandler."""
3885 file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name) 3834 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
3886 file.Write(" const int kSomeBaseValueToTestWith = 51;\n") 3835 file.Write(" const int kSomeBaseValueToTestWith = 51;\n")
3887 file.Write(" static %s data[] = {\n" % func.info.data_type) 3836 file.Write(" static %s data[] = {\n" % func.info.data_type)
3888 for v in range(0, func.info.count * 2): 3837 for v in range(0, func.info.count * 2):
3889 file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" % 3838 file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" %
3890 (func.info.data_type, v)) 3839 (func.info.data_type, v))
3891 file.Write(" };\n") 3840 file.Write(" };\n")
3892 file.Write(" int8 buf[256] = { 0, };\n") 3841 file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name))
3893 file.Write(" %s& cmd = *static_cast<%s*>(static_cast<void*>(&buf));\n" % 3842 file.Write(" const GLsizei kNumElements = 2;\n")
3894 (func.name, func.name)) 3843 file.Write(" const size_t kExpectedCmdSize =\n")
3844 file.Write(" sizeof(cmd) + kNumElements * sizeof(%s) * %d;\n" %
3845 (func.info.data_type, func.info.count))
3895 file.Write(" void* next_cmd = cmd.Set(\n") 3846 file.Write(" void* next_cmd = cmd.Set(\n")
3896 file.Write(" &cmd") 3847 file.Write(" &cmd")
3897 args = func.GetCmdArgs() 3848 args = func.GetCmdArgs()
3898 value = 1 3849 value = 1
3899 for arg in args: 3850 for arg in args:
3900 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value)) 3851 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value))
3901 value += 1 3852 value += 1
3902 file.Write(",\n data);\n") 3853 file.Write(",\n data);\n")
3903 args = func.GetCmdArgs() 3854 args = func.GetCmdArgs()
3904 value = 1 3855 value = 1
3905 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name) 3856 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
3906 file.Write(" cmd.header.command);\n") 3857 file.Write(" cmd.header.command);\n")
3907 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") 3858 file.Write(" EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);\n")
3908 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)),\n")
3909 file.Write(" cmd.header.size * 4u);\n")
3910 file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n")
3911 file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd) +\n")
3912 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n")
3913 for arg in args: 3859 for arg in args:
3914 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % 3860 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
3915 (arg.type, value, arg.name)) 3861 (arg.type, value, arg.name))
3916 value += 1 3862 value += 1
3863 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
3864 file.Write(" next_cmd, sizeof(cmd) +\n")
3865 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n")
3917 file.Write(" // TODO(gman): Check that data was inserted;\n") 3866 file.Write(" // TODO(gman): Check that data was inserted;\n")
3918 file.Write("}\n") 3867 file.Write("}\n")
3919 file.Write("\n") 3868 file.Write("\n")
3920 3869
3921 3870
3922 class PUTXnHandler(TypeHandler): 3871 class PUTXnHandler(TypeHandler):
3923 """Handler for glUniform?f functions.""" 3872 """Handler for glUniform?f functions."""
3924 def __init__(self): 3873 def __init__(self):
3925 TypeHandler.__init__(self) 3874 TypeHandler.__init__(self)
3926 3875
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
4052 value = 11 4001 value = 11
4053 for arg in all_but_last_arg: 4002 for arg in all_but_last_arg:
4054 init_code.append(" static_cast<%s>(%d)," % (arg.type, value)) 4003 init_code.append(" static_cast<%s>(%d)," % (arg.type, value))
4055 value += 1 4004 value += 1
4056 value = 11 4005 value = 11
4057 for arg in all_but_last_arg: 4006 for arg in all_but_last_arg:
4058 check_code.append(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);" % 4007 check_code.append(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);" %
4059 (arg.type, value, arg.name)) 4008 (arg.type, value, arg.name))
4060 value += 1 4009 value += 1
4061 code = """ 4010 code = """
4062 TEST(GLES2FormatTest, %(func_name)s) { 4011 TEST_F(GLES2FormatTest, %(func_name)s) {
4063 int8 buf[256] = { 0, }; 4012 %(func_name)s& cmd = *GetBufferAs<%(func_name)s>();
4064 %(func_name)s& cmd = *static_cast<%(func_name)s*>(static_cast<void*>(&buf));
4065 static const char* const test_str = \"test string\"; 4013 static const char* const test_str = \"test string\";
4066 void* next_cmd = cmd.Set( 4014 void* next_cmd = cmd.Set(
4067 &cmd, 4015 &cmd,
4068 %(init_code)s 4016 %(init_code)s
4069 test_str, 4017 test_str,
4070 strlen(test_str)); 4018 strlen(test_str));
4071 EXPECT_EQ(static_cast<uint32>(%(func_name)s::kCmdId), 4019 EXPECT_EQ(static_cast<uint32>(%(func_name)s::kCmdId),
4072 cmd.header.command); 4020 cmd.header.command);
4073 EXPECT_EQ(sizeof(cmd) + 4021 EXPECT_EQ(sizeof(cmd) +
4074 RoundSizeToMultipleOfEntries(strlen(test_str)), 4022 RoundSizeToMultipleOfEntries(strlen(test_str)),
4075 cmd.header.size * 4u); 4023 cmd.header.size * 4u);
4076 EXPECT_EQ(static_cast<char*>(next_cmd), 4024 EXPECT_EQ(static_cast<char*>(next_cmd),
4077 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + 4025 reinterpret_cast<char*>(&cmd) + sizeof(cmd) +
4078 RoundSizeToMultipleOfEntries(strlen(test_str))); 4026 RoundSizeToMultipleOfEntries(strlen(test_str)));
4079 %(check_code)s 4027 %(check_code)s
4080 EXPECT_EQ(static_cast<uint32>(strlen(test_str)), cmd.data_size); 4028 EXPECT_EQ(static_cast<uint32>(strlen(test_str)), cmd.data_size);
4081 EXPECT_EQ(0, memcmp(test_str, ImmediateDataAddress(&cmd), strlen(test_str))); 4029 EXPECT_EQ(0, memcmp(test_str, ImmediateDataAddress(&cmd), strlen(test_str)));
4030 CheckBytesWritten(
4031 next_cmd,
4032 sizeof(cmd) + RoundSizeToMultipleOfEntries(strlen(test_str)),
4033 sizeof(cmd) + strlen(test_str));
4082 } 4034 }
4083 4035
4084 """ 4036 """
4085 file.Write(code % { 4037 file.Write(code % {
4086 'func_name': func.name, 4038 'func_name': func.name,
4087 'init_code': "\n".join(init_code), 4039 'init_code': "\n".join(init_code),
4088 'check_code': "\n".join(check_code), 4040 'check_code': "\n".join(check_code),
4089 }) 4041 })
4090 4042
4091 4043
(...skipping 1901 matching lines...) Expand 10 before | Expand all | Expand 10 after
5993 5945
5994 if options.generate_docs: 5946 if options.generate_docs:
5995 gen.WriteDocs("docs/gles2_cmd_format_docs_autogen.h") 5947 gen.WriteDocs("docs/gles2_cmd_format_docs_autogen.h")
5996 5948
5997 if gen.errors > 0: 5949 if gen.errors > 0:
5998 print "%d errors" % gen.errors 5950 print "%d errors" % gen.errors
5999 sys.exit(1) 5951 sys.exit(1)
6000 5952
6001 if __name__ == '__main__': 5953 if __name__ == '__main__':
6002 main(sys.argv[1:]) 5954 main(sys.argv[1:])
OLDNEW
« no previous file with comments | « no previous file | gpu/command_buffer/common/gles2_cmd_format_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698