| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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:]) |
| OLD | NEW |