OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """code generator for GLES2 command buffers.""" | 6 """code generator for GLES2 command buffers.""" |
7 | 7 |
8 import itertools | 8 import itertools |
9 import os | 9 import os |
10 import os.path | 10 import os.path |
(...skipping 2580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2591 file.Write(" %s(%s);\n" % | 2591 file.Write(" %s(%s);\n" % |
2592 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) | 2592 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) |
2593 | 2593 |
2594 def WriteCmdSizeTest(self, func, file): | 2594 def WriteCmdSizeTest(self, func, file): |
2595 """Writes the size test for a command.""" | 2595 """Writes the size test for a command.""" |
2596 file.Write(" EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);\n") | 2596 file.Write(" EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);\n") |
2597 | 2597 |
2598 def WriteFormatTest(self, func, file): | 2598 def WriteFormatTest(self, func, file): |
2599 """Writes a format test for a command.""" | 2599 """Writes a format test for a command.""" |
2600 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) | 2600 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) |
2601 file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name)) | 2601 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % |
| 2602 (func.name, func.name)) |
2602 file.Write(" void* next_cmd = cmd.Set(\n") | 2603 file.Write(" void* next_cmd = cmd.Set(\n") |
2603 file.Write(" &cmd") | 2604 file.Write(" &cmd") |
2604 args = func.GetCmdArgs() | 2605 args = func.GetCmdArgs() |
2605 for value, arg in enumerate(args): | 2606 for value, arg in enumerate(args): |
2606 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 11)) | 2607 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 11)) |
2607 file.Write(");\n") | 2608 file.Write(");\n") |
2608 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name) | 2609 file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" % |
| 2610 func.name) |
2609 file.Write(" cmd.header.command);\n") | 2611 file.Write(" cmd.header.command);\n") |
2610 func.type_handler.WriteCmdSizeTest(func, file) | 2612 func.type_handler.WriteCmdSizeTest(func, file) |
2611 for value, arg in enumerate(args): | 2613 for value, arg in enumerate(args): |
2612 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % | 2614 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % |
2613 (arg.type, value + 11, arg.name)) | 2615 (arg.type, value + 11, arg.name)) |
2614 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") | 2616 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") |
2615 file.Write(" next_cmd, sizeof(cmd));\n") | 2617 file.Write(" next_cmd, sizeof(cmd));\n") |
2616 file.Write("}\n") | 2618 file.Write("}\n") |
2617 file.Write("\n") | 2619 file.Write("\n") |
2618 | 2620 |
(...skipping 22 matching lines...) Expand all Loading... |
2641 def WriteBucketHandlerImplementation (self, func, file): | 2643 def WriteBucketHandlerImplementation (self, func, file): |
2642 """Writes the handler impl for the bucket version of a command.""" | 2644 """Writes the handler impl for the bucket version of a command.""" |
2643 file.Write(" %s(%s);\n" % | 2645 file.Write(" %s(%s);\n" % |
2644 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) | 2646 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) |
2645 | 2647 |
2646 def WriteServiceImplementation(self, func, file): | 2648 def WriteServiceImplementation(self, func, file): |
2647 """Writes the service implementation for a command.""" | 2649 """Writes the service implementation for a command.""" |
2648 file.Write( | 2650 file.Write( |
2649 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 2651 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
2650 file.Write( | 2652 file.Write( |
2651 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | 2653 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 2654 func.name) |
2652 self.WriteHandlerDeferReadWrite(func, file); | 2655 self.WriteHandlerDeferReadWrite(func, file); |
2653 if len(func.GetOriginalArgs()) > 0: | 2656 if len(func.GetOriginalArgs()) > 0: |
2654 last_arg = func.GetLastOriginalArg() | 2657 last_arg = func.GetLastOriginalArg() |
2655 all_but_last_arg = func.GetOriginalArgs()[:-1] | 2658 all_but_last_arg = func.GetOriginalArgs()[:-1] |
2656 for arg in all_but_last_arg: | 2659 for arg in all_but_last_arg: |
2657 arg.WriteGetCode(file) | 2660 arg.WriteGetCode(file) |
2658 self.WriteGetDataSizeCode(func, file) | 2661 self.WriteGetDataSizeCode(func, file) |
2659 last_arg.WriteGetCode(file) | 2662 last_arg.WriteGetCode(file) |
2660 func.WriteHandlerValidation(file) | 2663 func.WriteHandlerValidation(file) |
2661 func.WriteHandlerImplementation(file) | 2664 func.WriteHandlerImplementation(file) |
2662 file.Write(" return error::kNoError;\n") | 2665 file.Write(" return error::kNoError;\n") |
2663 file.Write("}\n") | 2666 file.Write("}\n") |
2664 file.Write("\n") | 2667 file.Write("\n") |
2665 | 2668 |
2666 def WriteImmediateServiceImplementation(self, func, file): | 2669 def WriteImmediateServiceImplementation(self, func, file): |
2667 """Writes the service implementation for an immediate version of command.""" | 2670 """Writes the service implementation for an immediate version of command.""" |
2668 file.Write( | 2671 file.Write( |
2669 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 2672 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
2670 file.Write( | 2673 file.Write( |
2671 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | 2674 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 2675 func.name) |
2672 self.WriteHandlerDeferReadWrite(func, file); | 2676 self.WriteHandlerDeferReadWrite(func, file); |
2673 last_arg = func.GetLastOriginalArg() | 2677 last_arg = func.GetLastOriginalArg() |
2674 all_but_last_arg = func.GetOriginalArgs()[:-1] | 2678 all_but_last_arg = func.GetOriginalArgs()[:-1] |
2675 for arg in all_but_last_arg: | 2679 for arg in all_but_last_arg: |
2676 arg.WriteGetCode(file) | 2680 arg.WriteGetCode(file) |
2677 self.WriteGetDataSizeCode(func, file) | 2681 self.WriteGetDataSizeCode(func, file) |
2678 last_arg.WriteGetCode(file) | 2682 last_arg.WriteGetCode(file) |
2679 func.WriteHandlerValidation(file) | 2683 func.WriteHandlerValidation(file) |
2680 func.WriteHandlerImplementation(file) | 2684 func.WriteHandlerImplementation(file) |
2681 file.Write(" return error::kNoError;\n") | 2685 file.Write(" return error::kNoError;\n") |
2682 file.Write("}\n") | 2686 file.Write("}\n") |
2683 file.Write("\n") | 2687 file.Write("\n") |
2684 | 2688 |
2685 def WriteBucketServiceImplementation(self, func, file): | 2689 def WriteBucketServiceImplementation(self, func, file): |
2686 """Writes the service implementation for a bucket version of command.""" | 2690 """Writes the service implementation for a bucket version of command.""" |
2687 file.Write( | 2691 file.Write( |
2688 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 2692 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
2689 file.Write( | 2693 file.Write( |
2690 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | 2694 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 2695 func.name) |
2691 self.WriteHandlerDeferReadWrite(func, file); | 2696 self.WriteHandlerDeferReadWrite(func, file); |
2692 last_arg = func.GetLastOriginalArg() | 2697 last_arg = func.GetLastOriginalArg() |
2693 all_but_last_arg = func.GetOriginalArgs()[:-1] | 2698 all_but_last_arg = func.GetOriginalArgs()[:-1] |
2694 for arg in all_but_last_arg: | 2699 for arg in all_but_last_arg: |
2695 arg.WriteGetCode(file) | 2700 arg.WriteGetCode(file) |
2696 self.WriteGetDataSizeCode(func, file) | 2701 self.WriteGetDataSizeCode(func, file) |
2697 last_arg.WriteGetCode(file) | 2702 last_arg.WriteGetCode(file) |
2698 func.WriteHandlerValidation(file) | 2703 func.WriteHandlerValidation(file) |
2699 func.WriteHandlerImplementation(file) | 2704 func.WriteHandlerImplementation(file) |
2700 file.Write(" return error::kNoError;\n") | 2705 file.Write(" return error::kNoError;\n") |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2773 'gl_error_test': gl_error_test, | 2778 'gl_error_test': gl_error_test, |
2774 } | 2779 } |
2775 vars.update(extra) | 2780 vars.update(extra) |
2776 file.Write(test % vars) | 2781 file.Write(test % vars) |
2777 | 2782 |
2778 def WriteServiceUnitTest(self, func, file): | 2783 def WriteServiceUnitTest(self, func, file): |
2779 """Writes the service unit test for a command.""" | 2784 """Writes the service unit test for a command.""" |
2780 valid_test = """ | 2785 valid_test = """ |
2781 TEST_F(%(test_name)s, %(name)sValidArgs) { | 2786 TEST_F(%(test_name)s, %(name)sValidArgs) { |
2782 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 2787 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
2783 SpecializedSetup<%(name)s, 0>(true); | 2788 SpecializedSetup<cmds::%(name)s, 0>(true); |
2784 %(name)s cmd; | 2789 cmds::%(name)s cmd; |
2785 cmd.Init(%(args)s); | 2790 cmd.Init(%(args)s); |
2786 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 2791 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
2787 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 2792 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
2788 } | 2793 } |
2789 """ | 2794 """ |
2790 self.WriteValidUnitTest(func, file, valid_test) | 2795 self.WriteValidUnitTest(func, file, valid_test) |
2791 | 2796 |
2792 invalid_test = """ | 2797 invalid_test = """ |
2793 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 2798 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
2794 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 2799 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
2795 SpecializedSetup<%(name)s, 0>(false); | 2800 SpecializedSetup<cmds::%(name)s, 0>(false); |
2796 %(name)s cmd; | 2801 cmds::%(name)s cmd; |
2797 cmd.Init(%(args)s); | 2802 cmd.Init(%(args)s); |
2798 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s | 2803 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s |
2799 } | 2804 } |
2800 """ | 2805 """ |
2801 self.WriteInvalidUnitTest(func, file, invalid_test) | 2806 self.WriteInvalidUnitTest(func, file, invalid_test) |
2802 | 2807 |
2803 def WriteImmediateServiceUnitTest(self, func, file): | 2808 def WriteImmediateServiceUnitTest(self, func, file): |
2804 """Writes the service unit test for an immediate command.""" | 2809 """Writes the service unit test for an immediate command.""" |
2805 file.Write("// TODO(gman): %s\n" % func.name) | 2810 file.Write("// TODO(gman): %s\n" % func.name) |
2806 | 2811 |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2928 file.Write("}\n") | 2933 file.Write("}\n") |
2929 | 2934 |
2930 def WriteGLES2ImplementationUnitTest(self, func, file): | 2935 def WriteGLES2ImplementationUnitTest(self, func, file): |
2931 """Writes the GLES2 Implemention unit test.""" | 2936 """Writes the GLES2 Implemention unit test.""" |
2932 client_test = func.GetInfo('client_test') | 2937 client_test = func.GetInfo('client_test') |
2933 if (func.can_auto_generate and | 2938 if (func.can_auto_generate and |
2934 (client_test == None or client_test == True)): | 2939 (client_test == None or client_test == True)): |
2935 code = """ | 2940 code = """ |
2936 TEST_F(GLES2ImplementationTest, %(name)s) { | 2941 TEST_F(GLES2ImplementationTest, %(name)s) { |
2937 struct Cmds { | 2942 struct Cmds { |
2938 %(name)s cmd; | 2943 cmds::%(name)s cmd; |
2939 }; | 2944 }; |
2940 Cmds expected; | 2945 Cmds expected; |
2941 expected.cmd.Init(%(cmd_args)s); | 2946 expected.cmd.Init(%(cmd_args)s); |
2942 | 2947 |
2943 gl_->%(name)s(%(args)s); | 2948 gl_->%(name)s(%(args)s); |
2944 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); | 2949 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
2945 } | 2950 } |
2946 """ | 2951 """ |
2947 cmd_arg_strings = [] | 2952 cmd_arg_strings = [] |
2948 for count, arg in enumerate(func.GetCmdArgs()): | 2953 for count, arg in enumerate(func.GetCmdArgs()): |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2989 """Writes the Init function for the immediate version of a command.""" | 2994 """Writes the Init function for the immediate version of a command.""" |
2990 raise NotImplementedError(func.name) | 2995 raise NotImplementedError(func.name) |
2991 | 2996 |
2992 def WriteImmediateCmdSet(self, func, file): | 2997 def WriteImmediateCmdSet(self, func, file): |
2993 """Writes the Set function for the immediate version of a command.""" | 2998 """Writes the Set function for the immediate version of a command.""" |
2994 raise NotImplementedError(func.name) | 2999 raise NotImplementedError(func.name) |
2995 | 3000 |
2996 def WriteCmdHelper(self, func, file): | 3001 def WriteCmdHelper(self, func, file): |
2997 """Writes the cmd helper definition for a cmd.""" | 3002 """Writes the cmd helper definition for a cmd.""" |
2998 code = """ void %(name)s(%(typed_args)s) { | 3003 code = """ void %(name)s(%(typed_args)s) { |
2999 gles2::%(name)s* c = GetCmdSpace<gles2::%(name)s>(); | 3004 gles2::cmds::%(name)s* c = GetCmdSpace<gles2::cmds::%(name)s>(); |
3000 if (c) { | 3005 if (c) { |
3001 c->Init(%(args)s); | 3006 c->Init(%(args)s); |
3002 } | 3007 } |
3003 } | 3008 } |
3004 | 3009 |
3005 """ | 3010 """ |
3006 file.Write(code % { | 3011 file.Write(code % { |
3007 "name": func.name, | 3012 "name": func.name, |
3008 "typed_args": func.MakeTypedCmdArgString(""), | 3013 "typed_args": func.MakeTypedCmdArgString(""), |
3009 "args": func.MakeCmdArgString(""), | 3014 "args": func.MakeCmdArgString(""), |
3010 }) | 3015 }) |
3011 | 3016 |
3012 def WriteImmediateCmdHelper(self, func, file): | 3017 def WriteImmediateCmdHelper(self, func, file): |
3013 """Writes the cmd helper definition for the immediate version of a cmd.""" | 3018 """Writes the cmd helper definition for the immediate version of a cmd.""" |
3014 code = """ void %(name)s(%(typed_args)s) { | 3019 code = """ void %(name)s(%(typed_args)s) { |
3015 const uint32 s = 0; // TODO(gman): compute correct size | 3020 const uint32 s = 0; // TODO(gman): compute correct size |
3016 gles2::%(name)s* c = | 3021 gles2::cmds::%(name)s* c = |
3017 GetImmediateCmdSpaceTotalSize<gles2::%(name)s>(s); | 3022 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(s); |
3018 if (c) { | 3023 if (c) { |
3019 c->Init(%(args)s); | 3024 c->Init(%(args)s); |
3020 } | 3025 } |
3021 } | 3026 } |
3022 | 3027 |
3023 """ | 3028 """ |
3024 file.Write(code % { | 3029 file.Write(code % { |
3025 "name": func.name, | 3030 "name": func.name, |
3026 "typed_args": func.MakeTypedCmdArgString(""), | 3031 "typed_args": func.MakeTypedCmdArgString(""), |
3027 "args": func.MakeCmdArgString(""), | 3032 "args": func.MakeCmdArgString(""), |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3069 """Overrriden from TypeHandler.""" | 3074 """Overrriden from TypeHandler.""" |
3070 TypeHandler.WriteServiceUnitTest(self, func, file) | 3075 TypeHandler.WriteServiceUnitTest(self, func, file) |
3071 state_name = func.GetInfo('state') | 3076 state_name = func.GetInfo('state') |
3072 state = _STATES[state_name] | 3077 state = _STATES[state_name] |
3073 states = state['states'] | 3078 states = state['states'] |
3074 for ndx,item in enumerate(states): | 3079 for ndx,item in enumerate(states): |
3075 if 'range_checks' in item: | 3080 if 'range_checks' in item: |
3076 for check_ndx, range_check in enumerate(item['range_checks']): | 3081 for check_ndx, range_check in enumerate(item['range_checks']): |
3077 valid_test = """ | 3082 valid_test = """ |
3078 TEST_F(%(test_name)s, %(name)sInvalidValue%(ndx)d_%(check_ndx)d) { | 3083 TEST_F(%(test_name)s, %(name)sInvalidValue%(ndx)d_%(check_ndx)d) { |
3079 SpecializedSetup<%(name)s, 0>(false); | 3084 SpecializedSetup<cmds::%(name)s, 0>(false); |
3080 %(name)s cmd; | 3085 cmds::%(name)s cmd; |
3081 cmd.Init(%(args)s); | 3086 cmd.Init(%(args)s); |
3082 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3087 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
3083 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); | 3088 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
3084 } | 3089 } |
3085 """ | 3090 """ |
3086 name = func.name | 3091 name = func.name |
3087 arg_strings = [] | 3092 arg_strings = [] |
3088 for count, arg in enumerate(func.GetOriginalArgs()): | 3093 for count, arg in enumerate(func.GetOriginalArgs()): |
3089 arg_strings.append(arg.GetValidArg(func, count, 0)) | 3094 arg_strings.append(arg.GetValidArg(func, count, 0)) |
3090 arg_strings[ndx] = range_check['test_value'] | 3095 arg_strings[ndx] = range_check['test_value'] |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3275 if func.return_type != "void": | 3280 if func.return_type != "void": |
3276 file.Write(" return 0;\n") | 3281 file.Write(" return 0;\n") |
3277 file.Write("}\n") | 3282 file.Write("}\n") |
3278 file.Write("\n") | 3283 file.Write("\n") |
3279 | 3284 |
3280 def WriteServiceImplementation(self, func, file): | 3285 def WriteServiceImplementation(self, func, file): |
3281 """Overrriden from TypeHandler.""" | 3286 """Overrriden from TypeHandler.""" |
3282 file.Write( | 3287 file.Write( |
3283 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 3288 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
3284 file.Write( | 3289 file.Write( |
3285 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | 3290 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 3291 func.name) |
3286 file.Write(" // TODO: for now this is a no-op\n") | 3292 file.Write(" // TODO: for now this is a no-op\n") |
3287 file.Write( | 3293 file.Write( |
3288 " SetGLError(GL_INVALID_OPERATION, \"gl%s\", \"not implemented\");\n" % | 3294 " SetGLError(GL_INVALID_OPERATION, \"gl%s\", \"not implemented\");\n" % |
3289 func.name) | 3295 func.name) |
3290 file.Write(" return error::kNoError;\n") | 3296 file.Write(" return error::kNoError;\n") |
3291 file.Write("}\n") | 3297 file.Write("}\n") |
3292 file.Write("\n") | 3298 file.Write("\n") |
3293 | 3299 |
3294 | 3300 |
3295 class HandWrittenHandler(CustomHandler): | 3301 class HandWrittenHandler(CustomHandler): |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3541 def __init__(self): | 3547 def __init__(self): |
3542 TypeHandler.__init__(self) | 3548 TypeHandler.__init__(self) |
3543 | 3549 |
3544 def WriteServiceUnitTest(self, func, file): | 3550 def WriteServiceUnitTest(self, func, file): |
3545 """Overrriden from TypeHandler.""" | 3551 """Overrriden from TypeHandler.""" |
3546 | 3552 |
3547 if len(func.GetOriginalArgs()) == 1: | 3553 if len(func.GetOriginalArgs()) == 1: |
3548 valid_test = """ | 3554 valid_test = """ |
3549 TEST_F(%(test_name)s, %(name)sValidArgs) { | 3555 TEST_F(%(test_name)s, %(name)sValidArgs) { |
3550 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 3556 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
3551 SpecializedSetup<%(name)s, 0>(true); | 3557 SpecializedSetup<cmds::%(name)s, 0>(true); |
3552 %(name)s cmd; | 3558 cmds::%(name)s cmd; |
3553 cmd.Init(%(args)s); | 3559 cmd.Init(%(args)s); |
3554 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3560 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
3555 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3561 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
3556 } | 3562 } |
3557 | 3563 |
3558 TEST_F(%(test_name)s, %(name)sValidArgsNewId) { | 3564 TEST_F(%(test_name)s, %(name)sValidArgsNewId) { |
3559 EXPECT_CALL(*gl_, %(gl_func_name)s(kNewServiceId)); | 3565 EXPECT_CALL(*gl_, %(gl_func_name)s(kNewServiceId)); |
3560 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) | 3566 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) |
3561 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 3567 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); |
3562 SpecializedSetup<%(name)s, 0>(true); | 3568 SpecializedSetup<cmds::%(name)s, 0>(true); |
3563 %(name)s cmd; | 3569 cmds::%(name)s cmd; |
3564 cmd.Init(kNewClientId); | 3570 cmd.Init(kNewClientId); |
3565 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3571 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
3566 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3572 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
3567 EXPECT_TRUE(Get%(resource_type)sInfo(kNewClientId) != NULL); | 3573 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); |
3568 } | 3574 } |
3569 """ | 3575 """ |
3570 gen_func_names = { | 3576 gen_func_names = { |
3571 } | 3577 } |
3572 self.WriteValidUnitTest(func, file, valid_test, { | 3578 self.WriteValidUnitTest(func, file, valid_test, { |
3573 'resource_type': func.GetOriginalArgs()[0].resource_type, | 3579 'resource_type': func.GetOriginalArgs()[0].resource_type, |
3574 'gl_gen_func_name': func.GetInfo("gen_func"), | 3580 'gl_gen_func_name': func.GetInfo("gen_func"), |
3575 }) | 3581 }) |
3576 else: | 3582 else: |
3577 valid_test = """ | 3583 valid_test = """ |
3578 TEST_F(%(test_name)s, %(name)sValidArgs) { | 3584 TEST_F(%(test_name)s, %(name)sValidArgs) { |
3579 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 3585 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
3580 SpecializedSetup<%(name)s, 0>(true); | 3586 SpecializedSetup<cmds::%(name)s, 0>(true); |
3581 %(name)s cmd; | 3587 cmds::%(name)s cmd; |
3582 cmd.Init(%(args)s); | 3588 cmd.Init(%(args)s); |
3583 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3589 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
3584 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3590 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
3585 } | 3591 } |
3586 | 3592 |
3587 TEST_F(%(test_name)s, %(name)sValidArgsNewId) { | 3593 TEST_F(%(test_name)s, %(name)sValidArgsNewId) { |
3588 EXPECT_CALL(*gl_, %(gl_func_name)s(%(first_gl_arg)s, kNewServiceId)); | 3594 EXPECT_CALL(*gl_, %(gl_func_name)s(%(first_gl_arg)s, kNewServiceId)); |
3589 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) | 3595 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) |
3590 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 3596 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); |
3591 SpecializedSetup<%(name)s, 0>(true); | 3597 SpecializedSetup<cmds::%(name)s, 0>(true); |
3592 %(name)s cmd; | 3598 cmds::%(name)s cmd; |
3593 cmd.Init(%(first_arg)s, kNewClientId); | 3599 cmd.Init(%(first_arg)s, kNewClientId); |
3594 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3600 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
3595 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3601 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
3596 EXPECT_TRUE(Get%(resource_type)sInfo(kNewClientId) != NULL); | 3602 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); |
3597 } | 3603 } |
3598 """ | 3604 """ |
3599 gen_func_names = { | 3605 gen_func_names = { |
3600 } | 3606 } |
3601 self.WriteValidUnitTest(func, file, valid_test, { | 3607 self.WriteValidUnitTest(func, file, valid_test, { |
3602 'first_arg': func.GetOriginalArgs()[0].GetValidArg(func, 0, 0), | 3608 'first_arg': func.GetOriginalArgs()[0].GetValidArg(func, 0, 0), |
3603 'first_gl_arg': func.GetOriginalArgs()[0].GetValidGLArg(func, 0, 0), | 3609 'first_gl_arg': func.GetOriginalArgs()[0].GetValidGLArg(func, 0, 0), |
3604 'resource_type': func.GetOriginalArgs()[1].resource_type, | 3610 'resource_type': func.GetOriginalArgs()[1].resource_type, |
3605 'gl_gen_func_name': func.GetInfo("gen_func"), | 3611 'gl_gen_func_name': func.GetInfo("gen_func"), |
3606 }) | 3612 }) |
3607 | 3613 |
3608 invalid_test = """ | 3614 invalid_test = """ |
3609 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 3615 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
3610 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 3616 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
3611 SpecializedSetup<%(name)s, 0>(false); | 3617 SpecializedSetup<cmds::%(name)s, 0>(false); |
3612 %(name)s cmd; | 3618 cmds::%(name)s cmd; |
3613 cmd.Init(%(args)s); | 3619 cmd.Init(%(args)s); |
3614 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s | 3620 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s |
3615 } | 3621 } |
3616 """ | 3622 """ |
3617 self.WriteInvalidUnitTest(func, file, invalid_test) | 3623 self.WriteInvalidUnitTest(func, file, invalid_test) |
3618 | 3624 |
3619 def WriteGLES2Implementation(self, func, file): | 3625 def WriteGLES2Implementation(self, func, file): |
3620 """Writes the GLES2 Implemention.""" | 3626 """Writes the GLES2 Implemention.""" |
3621 | 3627 |
3622 impl_func = func.GetInfo('impl_func') | 3628 impl_func = func.GetInfo('impl_func') |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3663 }) | 3669 }) |
3664 | 3670 |
3665 def WriteGLES2ImplementationUnitTest(self, func, file): | 3671 def WriteGLES2ImplementationUnitTest(self, func, file): |
3666 """Overrriden from TypeHandler.""" | 3672 """Overrriden from TypeHandler.""" |
3667 client_test = func.GetInfo('client_test') | 3673 client_test = func.GetInfo('client_test') |
3668 if client_test == False: | 3674 if client_test == False: |
3669 return | 3675 return |
3670 code = """ | 3676 code = """ |
3671 TEST_F(GLES2ImplementationTest, %(name)s) { | 3677 TEST_F(GLES2ImplementationTest, %(name)s) { |
3672 struct Cmds { | 3678 struct Cmds { |
3673 %(name)s cmd; | 3679 cmds::%(name)s cmd; |
3674 }; | 3680 }; |
3675 Cmds expected; | 3681 Cmds expected; |
3676 expected.cmd.Init(%(cmd_args)s); | 3682 expected.cmd.Init(%(cmd_args)s); |
3677 | 3683 |
3678 gl_->%(name)s(%(args)s); | 3684 gl_->%(name)s(%(args)s); |
3679 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); | 3685 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
3680 ClearCommands(); | 3686 ClearCommands(); |
3681 gl_->%(name)s(%(args)s); | 3687 gl_->%(name)s(%(args)s); |
3682 EXPECT_TRUE(NoCommandsWritten()); | 3688 EXPECT_TRUE(NoCommandsWritten()); |
3683 } | 3689 } |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3764 | 3770 |
3765 """ | 3771 """ |
3766 file.Write(code % args) | 3772 file.Write(code % args) |
3767 | 3773 |
3768 def WriteGLES2ImplementationUnitTest(self, func, file): | 3774 def WriteGLES2ImplementationUnitTest(self, func, file): |
3769 """Overrriden from TypeHandler.""" | 3775 """Overrriden from TypeHandler.""" |
3770 code = """ | 3776 code = """ |
3771 TEST_F(GLES2ImplementationTest, %(name)s) { | 3777 TEST_F(GLES2ImplementationTest, %(name)s) { |
3772 GLuint ids[2] = { 0, }; | 3778 GLuint ids[2] = { 0, }; |
3773 struct Cmds { | 3779 struct Cmds { |
3774 %(name)sImmediate gen; | 3780 cmds::%(name)sImmediate gen; |
3775 GLuint data[2]; | 3781 GLuint data[2]; |
3776 }; | 3782 }; |
3777 Cmds expected; | 3783 Cmds expected; |
3778 expected.gen.Init(arraysize(ids), &ids[0]); | 3784 expected.gen.Init(arraysize(ids), &ids[0]); |
3779 expected.data[0] = k%(types)sStartId; | 3785 expected.data[0] = k%(types)sStartId; |
3780 expected.data[1] = k%(types)sStartId + 1; | 3786 expected.data[1] = k%(types)sStartId + 1; |
3781 gl_->%(name)s(arraysize(ids), &ids[0]); | 3787 gl_->%(name)s(arraysize(ids), &ids[0]); |
3782 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); | 3788 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
3783 EXPECT_EQ(k%(types)sStartId, ids[0]); | 3789 EXPECT_EQ(k%(types)sStartId, ids[0]); |
3784 EXPECT_EQ(k%(types)sStartId + 1, ids[1]); | 3790 EXPECT_EQ(k%(types)sStartId + 1, ids[1]); |
3785 } | 3791 } |
3786 """ | 3792 """ |
3787 file.Write(code % { | 3793 file.Write(code % { |
3788 'name': func.name, | 3794 'name': func.name, |
3789 'types': func.GetInfo('resource_types'), | 3795 'types': func.GetInfo('resource_types'), |
3790 }) | 3796 }) |
3791 | 3797 |
3792 def WriteServiceUnitTest(self, func, file): | 3798 def WriteServiceUnitTest(self, func, file): |
3793 """Overrriden from TypeHandler.""" | 3799 """Overrriden from TypeHandler.""" |
3794 valid_test = """ | 3800 valid_test = """ |
3795 TEST_F(%(test_name)s, %(name)sValidArgs) { | 3801 TEST_F(%(test_name)s, %(name)sValidArgs) { |
3796 EXPECT_CALL(*gl_, %(gl_func_name)s(1, _)) | 3802 EXPECT_CALL(*gl_, %(gl_func_name)s(1, _)) |
3797 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 3803 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); |
3798 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; | 3804 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; |
3799 SpecializedSetup<%(name)s, 0>(true); | 3805 SpecializedSetup<cmds::%(name)s, 0>(true); |
3800 %(name)s cmd; | 3806 cmds::%(name)s cmd; |
3801 cmd.Init(%(args)s); | 3807 cmd.Init(%(args)s); |
3802 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3808 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
3803 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3809 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
3804 EXPECT_TRUE(Get%(resource_name)sInfo(kNewClientId) != NULL); | 3810 EXPECT_TRUE(Get%(resource_name)s(kNewClientId) != NULL); |
3805 } | 3811 } |
3806 """ | 3812 """ |
3807 self.WriteValidUnitTest(func, file, valid_test, { | 3813 self.WriteValidUnitTest(func, file, valid_test, { |
3808 'resource_name': func.GetInfo('resource_type'), | 3814 'resource_name': func.GetInfo('resource_type'), |
3809 }) | 3815 }) |
3810 invalid_test = """ | 3816 invalid_test = """ |
3811 TEST_F(%(test_name)s, %(name)sInvalidArgs) { | 3817 TEST_F(%(test_name)s, %(name)sInvalidArgs) { |
3812 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _)).Times(0); | 3818 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _)).Times(0); |
3813 GetSharedMemoryAs<GLuint*>()[0] = client_%(resource_name)s_id_; | 3819 GetSharedMemoryAs<GLuint*>()[0] = client_%(resource_name)s_id_; |
3814 SpecializedSetup<%(name)s, 0>(false); | 3820 SpecializedSetup<cmds::%(name)s, 0>(false); |
3815 %(name)s cmd; | 3821 cmds::%(name)s cmd; |
3816 cmd.Init(%(args)s); | 3822 cmd.Init(%(args)s); |
3817 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); | 3823 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); |
3818 } | 3824 } |
3819 """ | 3825 """ |
3820 self.WriteValidUnitTest(func, file, invalid_test, { | 3826 self.WriteValidUnitTest(func, file, invalid_test, { |
3821 'resource_name': func.GetInfo('resource_type').lower(), | 3827 'resource_name': func.GetInfo('resource_type').lower(), |
3822 }) | 3828 }) |
3823 | 3829 |
3824 def WriteImmediateServiceUnitTest(self, func, file): | 3830 def WriteImmediateServiceUnitTest(self, func, file): |
3825 """Overrriden from TypeHandler.""" | 3831 """Overrriden from TypeHandler.""" |
3826 valid_test = """ | 3832 valid_test = """ |
3827 TEST_F(%(test_name)s, %(name)sValidArgs) { | 3833 TEST_F(%(test_name)s, %(name)sValidArgs) { |
3828 EXPECT_CALL(*gl_, %(gl_func_name)s(1, _)) | 3834 EXPECT_CALL(*gl_, %(gl_func_name)s(1, _)) |
3829 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 3835 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); |
3830 %(name)s* cmd = GetImmediateAs<%(name)s>(); | 3836 cmds::%(name)s* cmd = GetImmediateAs<cmds::%(name)s>(); |
3831 GLuint temp = kNewClientId; | 3837 GLuint temp = kNewClientId; |
3832 SpecializedSetup<%(name)s, 0>(true); | 3838 SpecializedSetup<cmds::%(name)s, 0>(true); |
3833 cmd->Init(1, &temp); | 3839 cmd->Init(1, &temp); |
3834 EXPECT_EQ(error::kNoError, | 3840 EXPECT_EQ(error::kNoError, |
3835 ExecuteImmediateCmd(*cmd, sizeof(temp))); | 3841 ExecuteImmediateCmd(*cmd, sizeof(temp))); |
3836 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3842 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
3837 EXPECT_TRUE(Get%(resource_name)sInfo(kNewClientId) != NULL); | 3843 EXPECT_TRUE(Get%(resource_name)s(kNewClientId) != NULL); |
3838 } | 3844 } |
3839 """ | 3845 """ |
3840 self.WriteValidUnitTest(func, file, valid_test, { | 3846 self.WriteValidUnitTest(func, file, valid_test, { |
3841 'resource_name': func.GetInfo('resource_type'), | 3847 'resource_name': func.GetInfo('resource_type'), |
3842 }) | 3848 }) |
3843 invalid_test = """ | 3849 invalid_test = """ |
3844 TEST_F(%(test_name)s, %(name)sInvalidArgs) { | 3850 TEST_F(%(test_name)s, %(name)sInvalidArgs) { |
3845 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _)).Times(0); | 3851 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _)).Times(0); |
3846 %(name)s* cmd = GetImmediateAs<%(name)s>(); | 3852 cmds::%(name)s* cmd = GetImmediateAs<cmds::%(name)s>(); |
3847 SpecializedSetup<%(name)s, 0>(false); | 3853 SpecializedSetup<cmds::%(name)s, 0>(false); |
3848 cmd->Init(1, &client_%(resource_name)s_id_); | 3854 cmd->Init(1, &client_%(resource_name)s_id_); |
3849 EXPECT_EQ(error::kInvalidArguments, | 3855 EXPECT_EQ(error::kInvalidArguments, |
3850 ExecuteImmediateCmd(*cmd, sizeof(&client_%(resource_name)s_id_))); | 3856 ExecuteImmediateCmd(*cmd, sizeof(&client_%(resource_name)s_id_))); |
3851 } | 3857 } |
3852 """ | 3858 """ |
3853 self.WriteValidUnitTest(func, file, invalid_test, { | 3859 self.WriteValidUnitTest(func, file, invalid_test, { |
3854 'resource_name': func.GetInfo('resource_type').lower(), | 3860 'resource_name': func.GetInfo('resource_type').lower(), |
3855 }) | 3861 }) |
3856 | 3862 |
3857 def WriteImmediateCmdComputeSize(self, func, file): | 3863 def WriteImmediateCmdComputeSize(self, func, file): |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3900 (copy_args, last_arg.name)) | 3906 (copy_args, last_arg.name)) |
3901 file.Write(" const uint32 size = ComputeSize(_n);\n") | 3907 file.Write(" const uint32 size = ComputeSize(_n);\n") |
3902 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" | 3908 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" |
3903 "cmd, size);\n") | 3909 "cmd, size);\n") |
3904 file.Write(" }\n") | 3910 file.Write(" }\n") |
3905 file.Write("\n") | 3911 file.Write("\n") |
3906 | 3912 |
3907 def WriteImmediateCmdHelper(self, func, file): | 3913 def WriteImmediateCmdHelper(self, func, file): |
3908 """Overrriden from TypeHandler.""" | 3914 """Overrriden from TypeHandler.""" |
3909 code = """ void %(name)s(%(typed_args)s) { | 3915 code = """ void %(name)s(%(typed_args)s) { |
3910 const uint32 size = gles2::%(name)s::ComputeSize(n); | 3916 const uint32 size = gles2::cmds::%(name)s::ComputeSize(n); |
3911 gles2::%(name)s* c = | 3917 gles2::cmds::%(name)s* c = |
3912 GetImmediateCmdSpaceTotalSize<gles2::%(name)s>(size); | 3918 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); |
3913 if (c) { | 3919 if (c) { |
3914 c->Init(%(args)s); | 3920 c->Init(%(args)s); |
3915 } | 3921 } |
3916 } | 3922 } |
3917 | 3923 |
3918 """ | 3924 """ |
3919 file.Write(code % { | 3925 file.Write(code % { |
3920 "name": func.name, | 3926 "name": func.name, |
3921 "typed_args": func.MakeTypedOriginalArgString(""), | 3927 "typed_args": func.MakeTypedOriginalArgString(""), |
3922 "args": func.MakeOriginalArgString(""), | 3928 "args": func.MakeOriginalArgString(""), |
3923 }) | 3929 }) |
3924 | 3930 |
3925 def WriteImmediateFormatTest(self, func, file): | 3931 def WriteImmediateFormatTest(self, func, file): |
3926 """Overrriden from TypeHandler.""" | 3932 """Overrriden from TypeHandler.""" |
3927 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) | 3933 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) |
3928 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n") | 3934 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n") |
3929 file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name)) | 3935 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % |
| 3936 (func.name, func.name)) |
3930 file.Write(" void* next_cmd = cmd.Set(\n") | 3937 file.Write(" void* next_cmd = cmd.Set(\n") |
3931 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n") | 3938 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n") |
3932 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name) | 3939 file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" % |
| 3940 func.name) |
3933 file.Write(" cmd.header.command);\n") | 3941 file.Write(" cmd.header.command);\n") |
3934 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") | 3942 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") |
3935 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n") | 3943 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n") |
3936 file.Write(" cmd.header.size * 4u);\n") | 3944 file.Write(" cmd.header.size * 4u);\n") |
3937 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n"); | 3945 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n"); |
3938 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") | 3946 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") |
3939 file.Write(" next_cmd, sizeof(cmd) +\n") | 3947 file.Write(" next_cmd, sizeof(cmd) +\n") |
3940 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n") | 3948 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n") |
3941 file.Write(" // TODO(gman): Check that ids were inserted;\n") | 3949 file.Write(" // TODO(gman): Check that ids were inserted;\n") |
3942 file.Write("}\n") | 3950 file.Write("}\n") |
3943 file.Write("\n") | 3951 file.Write("\n") |
3944 | 3952 |
3945 | 3953 |
3946 class CreateHandler(TypeHandler): | 3954 class CreateHandler(TypeHandler): |
3947 """Handler for glCreate___ type functions.""" | 3955 """Handler for glCreate___ type functions.""" |
3948 | 3956 |
3949 def __init__(self): | 3957 def __init__(self): |
3950 TypeHandler.__init__(self) | 3958 TypeHandler.__init__(self) |
3951 | 3959 |
3952 def InitFunction(self, func): | 3960 def InitFunction(self, func): |
3953 """Overrriden from TypeHandler.""" | 3961 """Overrriden from TypeHandler.""" |
3954 func.AddCmdArg(Argument("client_id", 'uint32')) | 3962 func.AddCmdArg(Argument("client_id", 'uint32')) |
3955 | 3963 |
3956 def WriteServiceUnitTest(self, func, file): | 3964 def WriteServiceUnitTest(self, func, file): |
3957 """Overrriden from TypeHandler.""" | 3965 """Overrriden from TypeHandler.""" |
3958 valid_test = """ | 3966 valid_test = """ |
3959 TEST_F(%(test_name)s, %(name)sValidArgs) { | 3967 TEST_F(%(test_name)s, %(name)sValidArgs) { |
3960 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) | 3968 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) |
3961 .WillOnce(Return(kNewServiceId)); | 3969 .WillOnce(Return(kNewServiceId)); |
3962 SpecializedSetup<%(name)s, 0>(true); | 3970 SpecializedSetup<cmds::%(name)s, 0>(true); |
3963 %(name)s cmd; | 3971 cmds::%(name)s cmd; |
3964 cmd.Init(%(args)s%(comma)skNewClientId); | 3972 cmd.Init(%(args)s%(comma)skNewClientId); |
3965 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3973 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
3966 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3974 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
3967 EXPECT_TRUE(Get%(resource_type)sInfo(kNewClientId) != NULL); | 3975 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); |
3968 } | 3976 } |
3969 """ | 3977 """ |
3970 comma = "" | 3978 comma = "" |
3971 if len(func.GetOriginalArgs()): | 3979 if len(func.GetOriginalArgs()): |
3972 comma =", " | 3980 comma =", " |
3973 self.WriteValidUnitTest(func, file, valid_test, { | 3981 self.WriteValidUnitTest(func, file, valid_test, { |
3974 'comma': comma, | 3982 'comma': comma, |
3975 'resource_type': func.name[6:], | 3983 'resource_type': func.name[6:], |
3976 }) | 3984 }) |
3977 invalid_test = """ | 3985 invalid_test = """ |
3978 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 3986 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
3979 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 3987 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
3980 SpecializedSetup<%(name)s, 0>(false); | 3988 SpecializedSetup<cmds::%(name)s, 0>(false); |
3981 %(name)s cmd; | 3989 cmds::%(name)s cmd; |
3982 cmd.Init(%(args)s%(comma)skNewClientId); | 3990 cmd.Init(%(args)s%(comma)skNewClientId); |
3983 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));%(gl_error_test)s | 3991 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));%(gl_error_test)s |
3984 } | 3992 } |
3985 """ | 3993 """ |
3986 self.WriteInvalidUnitTest(func, file, invalid_test, { | 3994 self.WriteInvalidUnitTest(func, file, invalid_test, { |
3987 'comma': comma, | 3995 'comma': comma, |
3988 }) | 3996 }) |
3989 | 3997 |
3990 def WriteHandlerImplementation (self, func, file): | 3998 def WriteHandlerImplementation (self, func, file): |
3991 """Overrriden from TypeHandler.""" | 3999 """Overrriden from TypeHandler.""" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4061 } | 4069 } |
4062 """ | 4070 """ |
4063 file.Write(code) | 4071 file.Write(code) |
4064 | 4072 |
4065 def WriteGLES2ImplementationUnitTest(self, func, file): | 4073 def WriteGLES2ImplementationUnitTest(self, func, file): |
4066 """Overrriden from TypeHandler.""" | 4074 """Overrriden from TypeHandler.""" |
4067 code = """ | 4075 code = """ |
4068 TEST_F(GLES2ImplementationTest, %(name)s) { | 4076 TEST_F(GLES2ImplementationTest, %(name)s) { |
4069 GLuint ids[2] = { k%(types)sStartId, k%(types)sStartId + 1 }; | 4077 GLuint ids[2] = { k%(types)sStartId, k%(types)sStartId + 1 }; |
4070 struct Cmds { | 4078 struct Cmds { |
4071 %(name)sImmediate del; | 4079 cmds::%(name)sImmediate del; |
4072 GLuint data[2]; | 4080 GLuint data[2]; |
4073 }; | 4081 }; |
4074 Cmds expected; | 4082 Cmds expected; |
4075 expected.del.Init(arraysize(ids), &ids[0]); | 4083 expected.del.Init(arraysize(ids), &ids[0]); |
4076 expected.data[0] = k%(types)sStartId; | 4084 expected.data[0] = k%(types)sStartId; |
4077 expected.data[1] = k%(types)sStartId + 1; | 4085 expected.data[1] = k%(types)sStartId + 1; |
4078 gl_->%(name)s(arraysize(ids), &ids[0]); | 4086 gl_->%(name)s(arraysize(ids), &ids[0]); |
4079 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); | 4087 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
4080 } | 4088 } |
4081 """ | 4089 """ |
4082 file.Write(code % { | 4090 file.Write(code % { |
4083 'name': func.name, | 4091 'name': func.name, |
4084 'types': func.GetInfo('resource_types'), | 4092 'types': func.GetInfo('resource_types'), |
4085 }) | 4093 }) |
4086 | 4094 |
4087 def WriteServiceUnitTest(self, func, file): | 4095 def WriteServiceUnitTest(self, func, file): |
4088 """Overrriden from TypeHandler.""" | 4096 """Overrriden from TypeHandler.""" |
4089 valid_test = """ | 4097 valid_test = """ |
4090 TEST_F(%(test_name)s, %(name)sValidArgs) { | 4098 TEST_F(%(test_name)s, %(name)sValidArgs) { |
4091 EXPECT_CALL( | 4099 EXPECT_CALL( |
4092 *gl_, | 4100 *gl_, |
4093 %(gl_func_name)s(1, Pointee(kService%(upper_resource_name)sId))) | 4101 %(gl_func_name)s(1, Pointee(kService%(upper_resource_name)sId))) |
4094 .Times(1); | 4102 .Times(1); |
4095 GetSharedMemoryAs<GLuint*>()[0] = client_%(resource_name)s_id_; | 4103 GetSharedMemoryAs<GLuint*>()[0] = client_%(resource_name)s_id_; |
4096 SpecializedSetup<%(name)s, 0>(true); | 4104 SpecializedSetup<cmds::%(name)s, 0>(true); |
4097 %(name)s cmd; | 4105 cmds::%(name)s cmd; |
4098 cmd.Init(%(args)s); | 4106 cmd.Init(%(args)s); |
4099 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4107 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
4100 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4108 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
4101 EXPECT_TRUE( | 4109 EXPECT_TRUE( |
4102 Get%(upper_resource_name)sInfo(client_%(resource_name)s_id_) == NULL); | 4110 Get%(upper_resource_name)s(client_%(resource_name)s_id_) == NULL); |
4103 } | 4111 } |
4104 """ | 4112 """ |
4105 self.WriteValidUnitTest(func, file, valid_test, { | 4113 self.WriteValidUnitTest(func, file, valid_test, { |
4106 'resource_name': func.GetInfo('resource_type').lower(), | 4114 'resource_name': func.GetInfo('resource_type').lower(), |
4107 'upper_resource_name': func.GetInfo('resource_type'), | 4115 'upper_resource_name': func.GetInfo('resource_type'), |
4108 }) | 4116 }) |
4109 invalid_test = """ | 4117 invalid_test = """ |
4110 TEST_F(%(test_name)s, %(name)sInvalidArgs) { | 4118 TEST_F(%(test_name)s, %(name)sInvalidArgs) { |
4111 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; | 4119 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; |
4112 SpecializedSetup<%(name)s, 0>(false); | 4120 SpecializedSetup<cmds::%(name)s, 0>(false); |
4113 %(name)s cmd; | 4121 cmds::%(name)s cmd; |
4114 cmd.Init(%(args)s); | 4122 cmd.Init(%(args)s); |
4115 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4123 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
4116 } | 4124 } |
4117 """ | 4125 """ |
4118 self.WriteValidUnitTest(func, file, invalid_test) | 4126 self.WriteValidUnitTest(func, file, invalid_test) |
4119 | 4127 |
4120 def WriteImmediateServiceUnitTest(self, func, file): | 4128 def WriteImmediateServiceUnitTest(self, func, file): |
4121 """Overrriden from TypeHandler.""" | 4129 """Overrriden from TypeHandler.""" |
4122 valid_test = """ | 4130 valid_test = """ |
4123 TEST_F(%(test_name)s, %(name)sValidArgs) { | 4131 TEST_F(%(test_name)s, %(name)sValidArgs) { |
4124 EXPECT_CALL( | 4132 EXPECT_CALL( |
4125 *gl_, | 4133 *gl_, |
4126 %(gl_func_name)s(1, Pointee(kService%(upper_resource_name)sId))) | 4134 %(gl_func_name)s(1, Pointee(kService%(upper_resource_name)sId))) |
4127 .Times(1); | 4135 .Times(1); |
4128 %(name)s& cmd = *GetImmediateAs<%(name)s>(); | 4136 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
4129 SpecializedSetup<%(name)s, 0>(true); | 4137 SpecializedSetup<cmds::%(name)s, 0>(true); |
4130 cmd.Init(1, &client_%(resource_name)s_id_); | 4138 cmd.Init(1, &client_%(resource_name)s_id_); |
4131 EXPECT_EQ(error::kNoError, | 4139 EXPECT_EQ(error::kNoError, |
4132 ExecuteImmediateCmd(cmd, sizeof(client_%(resource_name)s_id_))); | 4140 ExecuteImmediateCmd(cmd, sizeof(client_%(resource_name)s_id_))); |
4133 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4141 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
4134 EXPECT_TRUE( | 4142 EXPECT_TRUE( |
4135 Get%(upper_resource_name)sInfo(client_%(resource_name)s_id_) == NULL); | 4143 Get%(upper_resource_name)s(client_%(resource_name)s_id_) == NULL); |
4136 } | 4144 } |
4137 """ | 4145 """ |
4138 self.WriteValidUnitTest(func, file, valid_test, { | 4146 self.WriteValidUnitTest(func, file, valid_test, { |
4139 'resource_name': func.GetInfo('resource_type').lower(), | 4147 'resource_name': func.GetInfo('resource_type').lower(), |
4140 'upper_resource_name': func.GetInfo('resource_type'), | 4148 'upper_resource_name': func.GetInfo('resource_type'), |
4141 }) | 4149 }) |
4142 invalid_test = """ | 4150 invalid_test = """ |
4143 TEST_F(%(test_name)s, %(name)sInvalidArgs) { | 4151 TEST_F(%(test_name)s, %(name)sInvalidArgs) { |
4144 %(name)s& cmd = *GetImmediateAs<%(name)s>(); | 4152 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
4145 SpecializedSetup<%(name)s, 0>(false); | 4153 SpecializedSetup<cmds::%(name)s, 0>(false); |
4146 GLuint temp = kInvalidClientId; | 4154 GLuint temp = kInvalidClientId; |
4147 cmd.Init(1, &temp); | 4155 cmd.Init(1, &temp); |
4148 EXPECT_EQ(error::kNoError, | 4156 EXPECT_EQ(error::kNoError, |
4149 ExecuteImmediateCmd(cmd, sizeof(temp))); | 4157 ExecuteImmediateCmd(cmd, sizeof(temp))); |
4150 } | 4158 } |
4151 """ | 4159 """ |
4152 self.WriteValidUnitTest(func, file, invalid_test) | 4160 self.WriteValidUnitTest(func, file, invalid_test) |
4153 | 4161 |
4154 def WriteHandlerImplementation (self, func, file): | 4162 def WriteHandlerImplementation (self, func, file): |
4155 """Overrriden from TypeHandler.""" | 4163 """Overrriden from TypeHandler.""" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4246 (copy_args, last_arg.name)) | 4254 (copy_args, last_arg.name)) |
4247 file.Write(" const uint32 size = ComputeSize(_n);\n") | 4255 file.Write(" const uint32 size = ComputeSize(_n);\n") |
4248 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" | 4256 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" |
4249 "cmd, size);\n") | 4257 "cmd, size);\n") |
4250 file.Write(" }\n") | 4258 file.Write(" }\n") |
4251 file.Write("\n") | 4259 file.Write("\n") |
4252 | 4260 |
4253 def WriteImmediateCmdHelper(self, func, file): | 4261 def WriteImmediateCmdHelper(self, func, file): |
4254 """Overrriden from TypeHandler.""" | 4262 """Overrriden from TypeHandler.""" |
4255 code = """ void %(name)s(%(typed_args)s) { | 4263 code = """ void %(name)s(%(typed_args)s) { |
4256 const uint32 size = gles2::%(name)s::ComputeSize(n); | 4264 const uint32 size = gles2::cmds::%(name)s::ComputeSize(n); |
4257 gles2::%(name)s* c = | 4265 gles2::cmds::%(name)s* c = |
4258 GetImmediateCmdSpaceTotalSize<gles2::%(name)s>(size); | 4266 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); |
4259 if (c) { | 4267 if (c) { |
4260 c->Init(%(args)s); | 4268 c->Init(%(args)s); |
4261 } | 4269 } |
4262 } | 4270 } |
4263 | 4271 |
4264 """ | 4272 """ |
4265 file.Write(code % { | 4273 file.Write(code % { |
4266 "name": func.name, | 4274 "name": func.name, |
4267 "typed_args": func.MakeTypedOriginalArgString(""), | 4275 "typed_args": func.MakeTypedOriginalArgString(""), |
4268 "args": func.MakeOriginalArgString(""), | 4276 "args": func.MakeOriginalArgString(""), |
4269 }) | 4277 }) |
4270 | 4278 |
4271 def WriteImmediateFormatTest(self, func, file): | 4279 def WriteImmediateFormatTest(self, func, file): |
4272 """Overrriden from TypeHandler.""" | 4280 """Overrriden from TypeHandler.""" |
4273 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) | 4281 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) |
4274 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n") | 4282 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n") |
4275 file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name)) | 4283 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % |
| 4284 (func.name, func.name)) |
4276 file.Write(" void* next_cmd = cmd.Set(\n") | 4285 file.Write(" void* next_cmd = cmd.Set(\n") |
4277 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n") | 4286 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n") |
4278 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name) | 4287 file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" % |
| 4288 func.name) |
4279 file.Write(" cmd.header.command);\n") | 4289 file.Write(" cmd.header.command);\n") |
4280 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") | 4290 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") |
4281 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n") | 4291 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n") |
4282 file.Write(" cmd.header.size * 4u);\n") | 4292 file.Write(" cmd.header.size * 4u);\n") |
4283 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n"); | 4293 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n"); |
4284 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") | 4294 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") |
4285 file.Write(" next_cmd, sizeof(cmd) +\n") | 4295 file.Write(" next_cmd, sizeof(cmd) +\n") |
4286 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n") | 4296 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n") |
4287 file.Write(" // TODO(gman): Check that ids were inserted;\n") | 4297 file.Write(" // TODO(gman): Check that ids were inserted;\n") |
4288 file.Write("}\n") | 4298 file.Write("}\n") |
4289 file.Write("\n") | 4299 file.Write("\n") |
4290 | 4300 |
4291 | 4301 |
4292 class GETnHandler(TypeHandler): | 4302 class GETnHandler(TypeHandler): |
4293 """Handler for GETn for glGetBooleanv, glGetFloatv, ... type functions.""" | 4303 """Handler for GETn for glGetBooleanv, glGetFloatv, ... type functions.""" |
4294 | 4304 |
4295 def __init__(self): | 4305 def __init__(self): |
4296 TypeHandler.__init__(self) | 4306 TypeHandler.__init__(self) |
4297 | 4307 |
4298 def AddImmediateFunction(self, generator, func): | 4308 def AddImmediateFunction(self, generator, func): |
4299 """Overrriden from TypeHandler.""" | 4309 """Overrriden from TypeHandler.""" |
4300 pass | 4310 pass |
4301 | 4311 |
4302 def WriteServiceImplementation(self, func, file): | 4312 def WriteServiceImplementation(self, func, file): |
4303 """Overrriden from TypeHandler.""" | 4313 """Overrriden from TypeHandler.""" |
4304 file.Write( | 4314 file.Write( |
4305 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 4315 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
4306 file.Write( | 4316 file.Write( |
4307 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | 4317 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 4318 func.name) |
4308 last_arg = func.GetLastOriginalArg() | 4319 last_arg = func.GetLastOriginalArg() |
4309 | 4320 |
4310 all_but_last_args = func.GetOriginalArgs()[:-1] | 4321 all_but_last_args = func.GetOriginalArgs()[:-1] |
4311 for arg in all_but_last_args: | 4322 for arg in all_but_last_args: |
4312 arg.WriteGetCode(file) | 4323 arg.WriteGetCode(file) |
4313 | 4324 |
4314 code = """ typedef %(func_name)s::Result Result; | 4325 code = """ typedef cmds::%(func_name)s::Result Result; |
4315 GLsizei num_values = 0; | 4326 GLsizei num_values = 0; |
4316 GetNumValuesReturnedForGLGet(pname, &num_values); | 4327 GetNumValuesReturnedForGLGet(pname, &num_values); |
4317 Result* result = GetSharedMemoryAs<Result*>( | 4328 Result* result = GetSharedMemoryAs<Result*>( |
4318 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 4329 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
4319 %(last_arg_type)s params = result ? result->GetData() : NULL; | 4330 %(last_arg_type)s params = result ? result->GetData() : NULL; |
4320 """ | 4331 """ |
4321 file.Write(code % { | 4332 file.Write(code % { |
4322 'last_arg_type': last_arg.type, | 4333 'last_arg_type': last_arg.type, |
4323 'func_name': func.name, | 4334 'func_name': func.name, |
4324 }) | 4335 }) |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4357 arg.WriteClientSideValidationCode(file, func) | 4368 arg.WriteClientSideValidationCode(file, func) |
4358 all_but_last_args = func.GetOriginalArgs()[:-1] | 4369 all_but_last_args = func.GetOriginalArgs()[:-1] |
4359 arg_string = ( | 4370 arg_string = ( |
4360 ", ".join(["%s" % arg.name for arg in all_but_last_args])) | 4371 ", ".join(["%s" % arg.name for arg in all_but_last_args])) |
4361 all_arg_string = ( | 4372 all_arg_string = ( |
4362 ", ".join(["%s" % arg.name for arg in func.GetOriginalArgs()])) | 4373 ", ".join(["%s" % arg.name for arg in func.GetOriginalArgs()])) |
4363 self.WriteTraceEvent(func, file) | 4374 self.WriteTraceEvent(func, file) |
4364 code = """ if (%(func_name)sHelper(%(all_arg_string)s)) { | 4375 code = """ if (%(func_name)sHelper(%(all_arg_string)s)) { |
4365 return; | 4376 return; |
4366 } | 4377 } |
4367 typedef %(func_name)s::Result Result; | 4378 typedef cmds::%(func_name)s::Result Result; |
4368 Result* result = GetResultAs<Result*>(); | 4379 Result* result = GetResultAs<Result*>(); |
4369 if (!result) { | 4380 if (!result) { |
4370 return; | 4381 return; |
4371 } | 4382 } |
4372 result->SetNumResults(0); | 4383 result->SetNumResults(0); |
4373 helper_->%(func_name)s(%(arg_string)s, | 4384 helper_->%(func_name)s(%(arg_string)s, |
4374 GetResultShmId(), GetResultShmOffset()); | 4385 GetResultShmId(), GetResultShmOffset()); |
4375 WaitForCmd(); | 4386 WaitForCmd(); |
4376 result->CopyResult(params); | 4387 result->CopyResult(params); |
4377 GPU_CLIENT_LOG_CODE_BLOCK({ | 4388 GPU_CLIENT_LOG_CODE_BLOCK({ |
4378 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 4389 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
4379 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 4390 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
4380 } | 4391 } |
4381 }); | 4392 }); |
4382 CheckGLError(); | 4393 CheckGLError(); |
4383 } | 4394 } |
4384 """ | 4395 """ |
4385 file.Write(code % { | 4396 file.Write(code % { |
4386 'func_name': func.name, | 4397 'func_name': func.name, |
4387 'arg_string': arg_string, | 4398 'arg_string': arg_string, |
4388 'all_arg_string': all_arg_string, | 4399 'all_arg_string': all_arg_string, |
4389 }) | 4400 }) |
4390 | 4401 |
4391 def WriteGLES2ImplementationUnitTest(self, func, file): | 4402 def WriteGLES2ImplementationUnitTest(self, func, file): |
4392 """Writes the GLES2 Implemention unit test.""" | 4403 """Writes the GLES2 Implemention unit test.""" |
4393 code = """ | 4404 code = """ |
4394 TEST_F(GLES2ImplementationTest, %(name)s) { | 4405 TEST_F(GLES2ImplementationTest, %(name)s) { |
4395 struct Cmds { | 4406 struct Cmds { |
4396 %(name)s cmd; | 4407 cmds::%(name)s cmd; |
4397 }; | 4408 }; |
4398 typedef %(name)s::Result Result; | 4409 typedef cmds::%(name)s::Result Result; |
4399 Result::Type result = 0; | 4410 Result::Type result = 0; |
4400 Cmds expected; | 4411 Cmds expected; |
4401 ExpectedMemoryInfo result1 = GetExpectedResultMemory(4); | 4412 ExpectedMemoryInfo result1 = GetExpectedResultMemory(4); |
4402 expected.cmd.Init(%(cmd_args)s, result1.id, result1.offset); | 4413 expected.cmd.Init(%(cmd_args)s, result1.id, result1.offset); |
4403 EXPECT_CALL(*command_buffer(), OnFlush()) | 4414 EXPECT_CALL(*command_buffer(), OnFlush()) |
4404 .WillOnce(SetMemory(result1.ptr, SizedResultHelper<Result::Type>(1))) | 4415 .WillOnce(SetMemory(result1.ptr, SizedResultHelper<Result::Type>(1))) |
4405 .RetiresOnSaturation(); | 4416 .RetiresOnSaturation(); |
4406 gl_->%(name)s(%(args)s, &result); | 4417 gl_->%(name)s(%(args)s, &result); |
4407 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); | 4418 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
4408 EXPECT_EQ(static_cast<Result::Type>(1), result); | 4419 EXPECT_EQ(static_cast<Result::Type>(1), result); |
(...skipping 14 matching lines...) Expand all Loading... |
4423 }) | 4434 }) |
4424 | 4435 |
4425 def WriteServiceUnitTest(self, func, file): | 4436 def WriteServiceUnitTest(self, func, file): |
4426 """Overrriden from TypeHandler.""" | 4437 """Overrriden from TypeHandler.""" |
4427 valid_test = """ | 4438 valid_test = """ |
4428 TEST_F(%(test_name)s, %(name)sValidArgs) { | 4439 TEST_F(%(test_name)s, %(name)sValidArgs) { |
4429 EXPECT_CALL(*gl_, GetError()) | 4440 EXPECT_CALL(*gl_, GetError()) |
4430 .WillOnce(Return(GL_NO_ERROR)) | 4441 .WillOnce(Return(GL_NO_ERROR)) |
4431 .WillOnce(Return(GL_NO_ERROR)) | 4442 .WillOnce(Return(GL_NO_ERROR)) |
4432 .RetiresOnSaturation(); | 4443 .RetiresOnSaturation(); |
4433 SpecializedSetup<%(name)s, 0>(true); | 4444 SpecializedSetup<cmds::%(name)s, 0>(true); |
4434 typedef %(name)s::Result Result; | 4445 typedef cmds::%(name)s::Result Result; |
4435 Result* result = static_cast<Result*>(shared_memory_address_); | 4446 Result* result = static_cast<Result*>(shared_memory_address_); |
4436 EXPECT_CALL(*gl_, %(gl_func_name)s(%(local_gl_args)s)); | 4447 EXPECT_CALL(*gl_, %(gl_func_name)s(%(local_gl_args)s)); |
4437 result->size = 0; | 4448 result->size = 0; |
4438 %(name)s cmd; | 4449 cmds::%(name)s cmd; |
4439 cmd.Init(%(args)s); | 4450 cmd.Init(%(args)s); |
4440 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4451 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
4441 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( | 4452 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( |
4442 %(valid_pname)s), | 4453 %(valid_pname)s), |
4443 result->GetNumResults()); | 4454 result->GetNumResults()); |
4444 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4455 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
4445 } | 4456 } |
4446 """ | 4457 """ |
4447 gl_arg_strings = [] | 4458 gl_arg_strings = [] |
4448 valid_pname = '' | 4459 valid_pname = '' |
4449 for count, arg in enumerate(func.GetOriginalArgs()[:-1]): | 4460 for count, arg in enumerate(func.GetOriginalArgs()[:-1]): |
4450 arg_value = arg.GetValidGLArg(func, count, 0) | 4461 arg_value = arg.GetValidGLArg(func, count, 0) |
4451 gl_arg_strings.append(arg_value) | 4462 gl_arg_strings.append(arg_value) |
4452 if arg.name == 'pname': | 4463 if arg.name == 'pname': |
4453 valid_pname = arg_value | 4464 valid_pname = arg_value |
4454 if func.GetInfo('gl_test_func') == 'glGetIntegerv': | 4465 if func.GetInfo('gl_test_func') == 'glGetIntegerv': |
4455 gl_arg_strings.append("_") | 4466 gl_arg_strings.append("_") |
4456 else: | 4467 else: |
4457 gl_arg_strings.append("result->GetData()") | 4468 gl_arg_strings.append("result->GetData()") |
4458 | 4469 |
4459 self.WriteValidUnitTest(func, file, valid_test, { | 4470 self.WriteValidUnitTest(func, file, valid_test, { |
4460 'local_gl_args': ", ".join(gl_arg_strings), | 4471 'local_gl_args': ", ".join(gl_arg_strings), |
4461 'valid_pname': valid_pname, | 4472 'valid_pname': valid_pname, |
4462 }) | 4473 }) |
4463 | 4474 |
4464 invalid_test = """ | 4475 invalid_test = """ |
4465 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 4476 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
4466 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 4477 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
4467 SpecializedSetup<%(name)s, 0>(false); | 4478 SpecializedSetup<cmds::%(name)s, 0>(false); |
4468 %(name)s::Result* result = | 4479 cmds::%(name)s::Result* result = |
4469 static_cast<%(name)s::Result*>(shared_memory_address_); | 4480 static_cast<cmds::%(name)s::Result*>(shared_memory_address_); |
4470 result->size = 0; | 4481 result->size = 0; |
4471 %(name)s cmd; | 4482 cmds::%(name)s cmd; |
4472 cmd.Init(%(args)s); | 4483 cmd.Init(%(args)s); |
4473 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd)); | 4484 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd)); |
4474 EXPECT_EQ(0u, result->size);%(gl_error_test)s | 4485 EXPECT_EQ(0u, result->size);%(gl_error_test)s |
4475 } | 4486 } |
4476 """ | 4487 """ |
4477 self.WriteInvalidUnitTest(func, file, invalid_test) | 4488 self.WriteInvalidUnitTest(func, file, invalid_test) |
4478 | 4489 |
4479 | 4490 |
4480 class PUTHandler(TypeHandler): | 4491 class PUTHandler(TypeHandler): |
4481 """Handler for glTexParameter_v, glVertexAttrib_v functions.""" | 4492 """Handler for glTexParameter_v, glVertexAttrib_v functions.""" |
4482 | 4493 |
4483 def __init__(self): | 4494 def __init__(self): |
4484 TypeHandler.__init__(self) | 4495 TypeHandler.__init__(self) |
4485 | 4496 |
4486 def WriteServiceUnitTest(self, func, file): | 4497 def WriteServiceUnitTest(self, func, file): |
4487 """Writes the service unit test for a command.""" | 4498 """Writes the service unit test for a command.""" |
4488 valid_test = """ | 4499 valid_test = """ |
4489 TEST_F(%(test_name)s, %(name)sValidArgs) { | 4500 TEST_F(%(test_name)s, %(name)sValidArgs) { |
4490 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 4501 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
4491 SpecializedSetup<%(name)s, 0>(true); | 4502 SpecializedSetup<cmds::%(name)s, 0>(true); |
4492 %(name)s cmd; | 4503 cmds::%(name)s cmd; |
4493 cmd.Init(%(args)s); | 4504 cmd.Init(%(args)s); |
4494 GetSharedMemoryAs<%(data_type)s*>()[0] = %(data_value)s; | 4505 GetSharedMemoryAs<%(data_type)s*>()[0] = %(data_value)s; |
4495 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4506 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
4496 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4507 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
4497 } | 4508 } |
4498 """ | 4509 """ |
4499 extra = { | 4510 extra = { |
4500 'data_type': func.GetInfo('data_type'), | 4511 'data_type': func.GetInfo('data_type'), |
4501 'data_value': func.GetInfo('data_value') or '0', | 4512 'data_value': func.GetInfo('data_value') or '0', |
4502 } | 4513 } |
4503 self.WriteValidUnitTest(func, file, valid_test, extra) | 4514 self.WriteValidUnitTest(func, file, valid_test, extra) |
4504 | 4515 |
4505 invalid_test = """ | 4516 invalid_test = """ |
4506 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 4517 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
4507 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 4518 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
4508 SpecializedSetup<%(name)s, 0>(false); | 4519 SpecializedSetup<cmds::%(name)s, 0>(false); |
4509 %(name)s cmd; | 4520 cmds::%(name)s cmd; |
4510 cmd.Init(%(args)s); | 4521 cmd.Init(%(args)s); |
4511 GetSharedMemoryAs<%(data_type)s*>()[0] = %(data_value)s; | 4522 GetSharedMemoryAs<%(data_type)s*>()[0] = %(data_value)s; |
4512 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s | 4523 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s |
4513 } | 4524 } |
4514 """ | 4525 """ |
4515 self.WriteInvalidUnitTest(func, file, invalid_test, extra) | 4526 self.WriteInvalidUnitTest(func, file, invalid_test, extra) |
4516 | 4527 |
4517 def WriteImmediateServiceUnitTest(self, func, file): | 4528 def WriteImmediateServiceUnitTest(self, func, file): |
4518 """Writes the service unit test for a command.""" | 4529 """Writes the service unit test for a command.""" |
4519 valid_test = """ | 4530 valid_test = """ |
4520 TEST_F(%(test_name)s, %(name)sValidArgs) { | 4531 TEST_F(%(test_name)s, %(name)sValidArgs) { |
4521 %(name)s& cmd = *GetImmediateAs<%(name)s>(); | 4532 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
4522 EXPECT_CALL( | 4533 EXPECT_CALL( |
4523 *gl_, | 4534 *gl_, |
4524 %(gl_func_name)s(%(gl_args)s, | 4535 %(gl_func_name)s(%(gl_args)s, |
4525 reinterpret_cast<%(data_type)s*>(ImmediateDataAddress(&cmd)))); | 4536 reinterpret_cast<%(data_type)s*>(ImmediateDataAddress(&cmd)))); |
4526 SpecializedSetup<%(name)s, 0>(true); | 4537 SpecializedSetup<cmds::%(name)s, 0>(true); |
4527 %(data_type)s temp[%(data_count)s] = { %(data_value)s, }; | 4538 %(data_type)s temp[%(data_count)s] = { %(data_value)s, }; |
4528 cmd.Init(%(gl_args)s, &temp[0]); | 4539 cmd.Init(%(gl_args)s, &temp[0]); |
4529 EXPECT_EQ(error::kNoError, | 4540 EXPECT_EQ(error::kNoError, |
4530 ExecuteImmediateCmd(cmd, sizeof(temp))); | 4541 ExecuteImmediateCmd(cmd, sizeof(temp))); |
4531 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4542 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
4532 } | 4543 } |
4533 """ | 4544 """ |
4534 gl_arg_strings = [] | 4545 gl_arg_strings = [] |
4535 gl_any_strings = [] | 4546 gl_any_strings = [] |
4536 for count, arg in enumerate(func.GetOriginalArgs()[0:-1]): | 4547 for count, arg in enumerate(func.GetOriginalArgs()[0:-1]): |
4537 gl_arg_strings.append(arg.GetValidGLArg(func, count, 0)) | 4548 gl_arg_strings.append(arg.GetValidGLArg(func, count, 0)) |
4538 gl_any_strings.append("_") | 4549 gl_any_strings.append("_") |
4539 extra = { | 4550 extra = { |
4540 'data_type': func.GetInfo('data_type'), | 4551 'data_type': func.GetInfo('data_type'), |
4541 'data_count': func.GetInfo('count'), | 4552 'data_count': func.GetInfo('count'), |
4542 'data_value': func.GetInfo('data_value') or '0', | 4553 'data_value': func.GetInfo('data_value') or '0', |
4543 'gl_args': ", ".join(gl_arg_strings), | 4554 'gl_args': ", ".join(gl_arg_strings), |
4544 'gl_any_args': ", ".join(gl_any_strings), | 4555 'gl_any_args': ", ".join(gl_any_strings), |
4545 } | 4556 } |
4546 self.WriteValidUnitTest(func, file, valid_test, extra) | 4557 self.WriteValidUnitTest(func, file, valid_test, extra) |
4547 | 4558 |
4548 invalid_test = """ | 4559 invalid_test = """ |
4549 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 4560 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
4550 %(name)s& cmd = *GetImmediateAs<%(name)s>(); | 4561 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
4551 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_any_args)s, _)).Times(0); | 4562 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_any_args)s, _)).Times(0); |
4552 SpecializedSetup<%(name)s, 0>(false); | 4563 SpecializedSetup<cmds::%(name)s, 0>(false); |
4553 %(data_type)s temp[%(data_count)s] = { %(data_value)s, }; | 4564 %(data_type)s temp[%(data_count)s] = { %(data_value)s, }; |
4554 cmd.Init(%(all_but_last_args)s, &temp[0]); | 4565 cmd.Init(%(all_but_last_args)s, &temp[0]); |
4555 EXPECT_EQ(error::%(parse_result)s, | 4566 EXPECT_EQ(error::%(parse_result)s, |
4556 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s | 4567 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s |
4557 } | 4568 } |
4558 """ | 4569 """ |
4559 self.WriteInvalidUnitTest(func, file, invalid_test, extra) | 4570 self.WriteInvalidUnitTest(func, file, invalid_test, extra) |
4560 | 4571 |
4561 def WriteGetDataSizeCode(self, func, file): | 4572 def WriteGetDataSizeCode(self, func, file): |
4562 """Overrriden from TypeHandler.""" | 4573 """Overrriden from TypeHandler.""" |
(...skipping 26 matching lines...) Expand all Loading... |
4589 (func.name, func.MakeOriginalArgString(""))) | 4600 (func.name, func.MakeOriginalArgString(""))) |
4590 file.Write(" CheckGLError();\n") | 4601 file.Write(" CheckGLError();\n") |
4591 file.Write("}\n") | 4602 file.Write("}\n") |
4592 file.Write("\n") | 4603 file.Write("\n") |
4593 | 4604 |
4594 def WriteGLES2ImplementationUnitTest(self, func, file): | 4605 def WriteGLES2ImplementationUnitTest(self, func, file): |
4595 """Writes the GLES2 Implemention unit test.""" | 4606 """Writes the GLES2 Implemention unit test.""" |
4596 code = """ | 4607 code = """ |
4597 TEST_F(GLES2ImplementationTest, %(name)s) { | 4608 TEST_F(GLES2ImplementationTest, %(name)s) { |
4598 struct Cmds { | 4609 struct Cmds { |
4599 %(name)sImmediate cmd; | 4610 cmds::%(name)sImmediate cmd; |
4600 %(type)s data[%(count)d]; | 4611 %(type)s data[%(count)d]; |
4601 }; | 4612 }; |
4602 | 4613 |
4603 Cmds expected; | 4614 Cmds expected; |
4604 for (int jj = 0; jj < %(count)d; ++jj) { | 4615 for (int jj = 0; jj < %(count)d; ++jj) { |
4605 expected.data[jj] = static_cast<%(type)s>(jj); | 4616 expected.data[jj] = static_cast<%(type)s>(jj); |
4606 } | 4617 } |
4607 expected.cmd.Init(%(cmd_args)s, &expected.data[0]); | 4618 expected.cmd.Init(%(cmd_args)s, &expected.data[0]); |
4608 gl_->%(name)s(%(args)s, &expected.data[0]); | 4619 gl_->%(name)s(%(args)s, &expected.data[0]); |
4609 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); | 4620 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4672 (copy_args, last_arg.name)) | 4683 (copy_args, last_arg.name)) |
4673 file.Write(" const uint32 size = ComputeSize();\n") | 4684 file.Write(" const uint32 size = ComputeSize();\n") |
4674 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" | 4685 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" |
4675 "cmd, size);\n") | 4686 "cmd, size);\n") |
4676 file.Write(" }\n") | 4687 file.Write(" }\n") |
4677 file.Write("\n") | 4688 file.Write("\n") |
4678 | 4689 |
4679 def WriteImmediateCmdHelper(self, func, file): | 4690 def WriteImmediateCmdHelper(self, func, file): |
4680 """Overrriden from TypeHandler.""" | 4691 """Overrriden from TypeHandler.""" |
4681 code = """ void %(name)s(%(typed_args)s) { | 4692 code = """ void %(name)s(%(typed_args)s) { |
4682 const uint32 size = gles2::%(name)s::ComputeSize(); | 4693 const uint32 size = gles2::cmds::%(name)s::ComputeSize(); |
4683 gles2::%(name)s* c = | 4694 gles2::cmds::%(name)s* c = |
4684 GetImmediateCmdSpaceTotalSize<gles2::%(name)s>(size); | 4695 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); |
4685 if (c) { | 4696 if (c) { |
4686 c->Init(%(args)s); | 4697 c->Init(%(args)s); |
4687 } | 4698 } |
4688 } | 4699 } |
4689 | 4700 |
4690 """ | 4701 """ |
4691 file.Write(code % { | 4702 file.Write(code % { |
4692 "name": func.name, | 4703 "name": func.name, |
4693 "typed_args": func.MakeTypedOriginalArgString(""), | 4704 "typed_args": func.MakeTypedOriginalArgString(""), |
4694 "args": func.MakeOriginalArgString(""), | 4705 "args": func.MakeOriginalArgString(""), |
4695 }) | 4706 }) |
4696 | 4707 |
4697 def WriteImmediateFormatTest(self, func, file): | 4708 def WriteImmediateFormatTest(self, func, file): |
4698 """Overrriden from TypeHandler.""" | 4709 """Overrriden from TypeHandler.""" |
4699 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) | 4710 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) |
4700 file.Write(" const int kSomeBaseValueToTestWith = 51;\n") | 4711 file.Write(" const int kSomeBaseValueToTestWith = 51;\n") |
4701 file.Write(" static %s data[] = {\n" % func.info.data_type) | 4712 file.Write(" static %s data[] = {\n" % func.info.data_type) |
4702 for v in range(0, func.info.count): | 4713 for v in range(0, func.info.count): |
4703 file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" % | 4714 file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" % |
4704 (func.info.data_type, v)) | 4715 (func.info.data_type, v)) |
4705 file.Write(" };\n") | 4716 file.Write(" };\n") |
4706 file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name)) | 4717 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % |
| 4718 (func.name, func.name)) |
4707 file.Write(" void* next_cmd = cmd.Set(\n") | 4719 file.Write(" void* next_cmd = cmd.Set(\n") |
4708 file.Write(" &cmd") | 4720 file.Write(" &cmd") |
4709 args = func.GetCmdArgs() | 4721 args = func.GetCmdArgs() |
4710 for value, arg in enumerate(args): | 4722 for value, arg in enumerate(args): |
4711 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 11)) | 4723 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 11)) |
4712 file.Write(",\n data);\n") | 4724 file.Write(",\n data);\n") |
4713 args = func.GetCmdArgs() | 4725 args = func.GetCmdArgs() |
4714 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name) | 4726 file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" |
| 4727 % func.name) |
4715 file.Write(" cmd.header.command);\n") | 4728 file.Write(" cmd.header.command);\n") |
4716 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") | 4729 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") |
4717 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)),\n") | 4730 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)),\n") |
4718 file.Write(" cmd.header.size * 4u);\n") | 4731 file.Write(" cmd.header.size * 4u);\n") |
4719 for value, arg in enumerate(args): | 4732 for value, arg in enumerate(args): |
4720 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % | 4733 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % |
4721 (arg.type, value + 11, arg.name)) | 4734 (arg.type, value + 11, arg.name)) |
4722 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") | 4735 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") |
4723 file.Write(" next_cmd, sizeof(cmd) +\n") | 4736 file.Write(" next_cmd, sizeof(cmd) +\n") |
4724 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n") | 4737 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n") |
4725 file.Write(" // TODO(gman): Check that data was inserted;\n") | 4738 file.Write(" // TODO(gman): Check that data was inserted;\n") |
4726 file.Write("}\n") | 4739 file.Write("}\n") |
4727 file.Write("\n") | 4740 file.Write("\n") |
4728 | 4741 |
4729 | 4742 |
4730 class PUTnHandler(TypeHandler): | 4743 class PUTnHandler(TypeHandler): |
4731 """Handler for PUTn 'glUniform__v' type functions.""" | 4744 """Handler for PUTn 'glUniform__v' type functions.""" |
4732 | 4745 |
4733 def __init__(self): | 4746 def __init__(self): |
4734 TypeHandler.__init__(self) | 4747 TypeHandler.__init__(self) |
4735 | 4748 |
4736 def WriteServiceUnitTest(self, func, file): | 4749 def WriteServiceUnitTest(self, func, file): |
4737 """Overridden from TypeHandler.""" | 4750 """Overridden from TypeHandler.""" |
4738 TypeHandler.WriteServiceUnitTest(self, func, file) | 4751 TypeHandler.WriteServiceUnitTest(self, func, file) |
4739 | 4752 |
4740 valid_test = """ | 4753 valid_test = """ |
4741 TEST_F(%(test_name)s, %(name)sValidArgsCountTooLarge) { | 4754 TEST_F(%(test_name)s, %(name)sValidArgsCountTooLarge) { |
4742 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 4755 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
4743 SpecializedSetup<%(name)s, 0>(true); | 4756 SpecializedSetup<cmds::%(name)s, 0>(true); |
4744 %(name)s cmd; | 4757 cmds::%(name)s cmd; |
4745 cmd.Init(%(args)s); | 4758 cmd.Init(%(args)s); |
4746 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4759 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
4747 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4760 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
4748 } | 4761 } |
4749 """ | 4762 """ |
4750 gl_arg_strings = [] | 4763 gl_arg_strings = [] |
4751 arg_strings = [] | 4764 arg_strings = [] |
4752 for count, arg in enumerate(func.GetOriginalArgs()): | 4765 for count, arg in enumerate(func.GetOriginalArgs()): |
4753 # hardcoded to match unit tests. | 4766 # hardcoded to match unit tests. |
4754 if count == 0: | 4767 if count == 0: |
(...skipping 12 matching lines...) Expand all Loading... |
4767 extra = { | 4780 extra = { |
4768 'gl_args': ", ".join(gl_arg_strings), | 4781 'gl_args': ", ".join(gl_arg_strings), |
4769 'args': ", ".join(arg_strings), | 4782 'args': ", ".join(arg_strings), |
4770 } | 4783 } |
4771 self.WriteValidUnitTest(func, file, valid_test, extra) | 4784 self.WriteValidUnitTest(func, file, valid_test, extra) |
4772 | 4785 |
4773 def WriteImmediateServiceUnitTest(self, func, file): | 4786 def WriteImmediateServiceUnitTest(self, func, file): |
4774 """Overridden from TypeHandler.""" | 4787 """Overridden from TypeHandler.""" |
4775 valid_test = """ | 4788 valid_test = """ |
4776 TEST_F(%(test_name)s, %(name)sValidArgs) { | 4789 TEST_F(%(test_name)s, %(name)sValidArgs) { |
4777 %(name)s& cmd = *GetImmediateAs<%(name)s>(); | 4790 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
4778 EXPECT_CALL( | 4791 EXPECT_CALL( |
4779 *gl_, | 4792 *gl_, |
4780 %(gl_func_name)s(%(gl_args)s, | 4793 %(gl_func_name)s(%(gl_args)s, |
4781 reinterpret_cast<%(data_type)s*>(ImmediateDataAddress(&cmd)))); | 4794 reinterpret_cast<%(data_type)s*>(ImmediateDataAddress(&cmd)))); |
4782 SpecializedSetup<%(name)s, 0>(true); | 4795 SpecializedSetup<cmds::%(name)s, 0>(true); |
4783 %(data_type)s temp[%(data_count)s * 2] = { 0, }; | 4796 %(data_type)s temp[%(data_count)s * 2] = { 0, }; |
4784 cmd.Init(%(args)s, &temp[0]); | 4797 cmd.Init(%(args)s, &temp[0]); |
4785 EXPECT_EQ(error::kNoError, | 4798 EXPECT_EQ(error::kNoError, |
4786 ExecuteImmediateCmd(cmd, sizeof(temp))); | 4799 ExecuteImmediateCmd(cmd, sizeof(temp))); |
4787 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4800 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
4788 } | 4801 } |
4789 """ | 4802 """ |
4790 gl_arg_strings = [] | 4803 gl_arg_strings = [] |
4791 gl_any_strings = [] | 4804 gl_any_strings = [] |
4792 arg_strings = [] | 4805 arg_strings = [] |
4793 for count, arg in enumerate(func.GetOriginalArgs()[0:-1]): | 4806 for count, arg in enumerate(func.GetOriginalArgs()[0:-1]): |
4794 gl_arg_strings.append(arg.GetValidGLArg(func, count, 0)) | 4807 gl_arg_strings.append(arg.GetValidGLArg(func, count, 0)) |
4795 gl_any_strings.append("_") | 4808 gl_any_strings.append("_") |
4796 arg_strings.append(arg.GetValidArg(func, count, 0)) | 4809 arg_strings.append(arg.GetValidArg(func, count, 0)) |
4797 extra = { | 4810 extra = { |
4798 'data_type': func.GetInfo('data_type'), | 4811 'data_type': func.GetInfo('data_type'), |
4799 'data_count': func.GetInfo('count'), | 4812 'data_count': func.GetInfo('count'), |
4800 'args': ", ".join(arg_strings), | 4813 'args': ", ".join(arg_strings), |
4801 'gl_args': ", ".join(gl_arg_strings), | 4814 'gl_args': ", ".join(gl_arg_strings), |
4802 'gl_any_args': ", ".join(gl_any_strings), | 4815 'gl_any_args': ", ".join(gl_any_strings), |
4803 } | 4816 } |
4804 self.WriteValidUnitTest(func, file, valid_test, extra) | 4817 self.WriteValidUnitTest(func, file, valid_test, extra) |
4805 | 4818 |
4806 invalid_test = """ | 4819 invalid_test = """ |
4807 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 4820 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
4808 %(name)s& cmd = *GetImmediateAs<%(name)s>(); | 4821 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
4809 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_any_args)s, _)).Times(0); | 4822 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_any_args)s, _)).Times(0); |
4810 SpecializedSetup<%(name)s, 0>(false); | 4823 SpecializedSetup<cmds::%(name)s, 0>(false); |
4811 %(data_type)s temp[%(data_count)s * 2] = { 0, }; | 4824 %(data_type)s temp[%(data_count)s * 2] = { 0, }; |
4812 cmd.Init(%(all_but_last_args)s, &temp[0]); | 4825 cmd.Init(%(all_but_last_args)s, &temp[0]); |
4813 EXPECT_EQ(error::%(parse_result)s, | 4826 EXPECT_EQ(error::%(parse_result)s, |
4814 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s | 4827 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s |
4815 } | 4828 } |
4816 """ | 4829 """ |
4817 self.WriteInvalidUnitTest(func, file, invalid_test, extra) | 4830 self.WriteInvalidUnitTest(func, file, invalid_test, extra) |
4818 | 4831 |
4819 def WriteGetDataSizeCode(self, func, file): | 4832 def WriteGetDataSizeCode(self, func, file): |
4820 """Overrriden from TypeHandler.""" | 4833 """Overrriden from TypeHandler.""" |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4853 (func.name, func.MakeOriginalArgString(""))) | 4866 (func.name, func.MakeOriginalArgString(""))) |
4854 file.Write(" CheckGLError();\n") | 4867 file.Write(" CheckGLError();\n") |
4855 file.Write("}\n") | 4868 file.Write("}\n") |
4856 file.Write("\n") | 4869 file.Write("\n") |
4857 | 4870 |
4858 def WriteGLES2ImplementationUnitTest(self, func, file): | 4871 def WriteGLES2ImplementationUnitTest(self, func, file): |
4859 """Writes the GLES2 Implemention unit test.""" | 4872 """Writes the GLES2 Implemention unit test.""" |
4860 code = """ | 4873 code = """ |
4861 TEST_F(GLES2ImplementationTest, %(name)s) { | 4874 TEST_F(GLES2ImplementationTest, %(name)s) { |
4862 struct Cmds { | 4875 struct Cmds { |
4863 %(name)sImmediate cmd; | 4876 cmds::%(name)sImmediate cmd; |
4864 %(type)s data[2][%(count)d]; | 4877 %(type)s data[2][%(count)d]; |
4865 }; | 4878 }; |
4866 | 4879 |
4867 Cmds expected; | 4880 Cmds expected; |
4868 for (int ii = 0; ii < 2; ++ii) { | 4881 for (int ii = 0; ii < 2; ++ii) { |
4869 for (int jj = 0; jj < %(count)d; ++jj) { | 4882 for (int jj = 0; jj < %(count)d; ++jj) { |
4870 expected.data[ii][jj] = static_cast<%(type)s>(ii * %(count)d + jj); | 4883 expected.data[ii][jj] = static_cast<%(type)s>(ii * %(count)d + jj); |
4871 } | 4884 } |
4872 } | 4885 } |
4873 expected.cmd.Init(%(cmd_args)s, &expected.data[0][0]); | 4886 expected.cmd.Init(%(cmd_args)s, &expected.data[0][0]); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4938 (copy_args, last_arg.name)) | 4951 (copy_args, last_arg.name)) |
4939 file.Write(" const uint32 size = ComputeSize(_count);\n") | 4952 file.Write(" const uint32 size = ComputeSize(_count);\n") |
4940 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" | 4953 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" |
4941 "cmd, size);\n") | 4954 "cmd, size);\n") |
4942 file.Write(" }\n") | 4955 file.Write(" }\n") |
4943 file.Write("\n") | 4956 file.Write("\n") |
4944 | 4957 |
4945 def WriteImmediateCmdHelper(self, func, file): | 4958 def WriteImmediateCmdHelper(self, func, file): |
4946 """Overrriden from TypeHandler.""" | 4959 """Overrriden from TypeHandler.""" |
4947 code = """ void %(name)s(%(typed_args)s) { | 4960 code = """ void %(name)s(%(typed_args)s) { |
4948 const uint32 size = gles2::%(name)s::ComputeSize(count); | 4961 const uint32 size = gles2::cmds::%(name)s::ComputeSize(count); |
4949 gles2::%(name)s* c = | 4962 gles2::cmds::%(name)s* c = |
4950 GetImmediateCmdSpaceTotalSize<gles2::%(name)s>(size); | 4963 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); |
4951 if (c) { | 4964 if (c) { |
4952 c->Init(%(args)s); | 4965 c->Init(%(args)s); |
4953 } | 4966 } |
4954 } | 4967 } |
4955 | 4968 |
4956 """ | 4969 """ |
4957 file.Write(code % { | 4970 file.Write(code % { |
4958 "name": func.name, | 4971 "name": func.name, |
4959 "typed_args": func.MakeTypedOriginalArgString(""), | 4972 "typed_args": func.MakeTypedOriginalArgString(""), |
4960 "args": func.MakeOriginalArgString(""), | 4973 "args": func.MakeOriginalArgString(""), |
4961 }) | 4974 }) |
4962 | 4975 |
4963 def WriteImmediateFormatTest(self, func, file): | 4976 def WriteImmediateFormatTest(self, func, file): |
4964 """Overrriden from TypeHandler.""" | 4977 """Overrriden from TypeHandler.""" |
4965 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) | 4978 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) |
4966 file.Write(" const int kSomeBaseValueToTestWith = 51;\n") | 4979 file.Write(" const int kSomeBaseValueToTestWith = 51;\n") |
4967 file.Write(" static %s data[] = {\n" % func.info.data_type) | 4980 file.Write(" static %s data[] = {\n" % func.info.data_type) |
4968 for v in range(0, func.info.count * 2): | 4981 for v in range(0, func.info.count * 2): |
4969 file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" % | 4982 file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" % |
4970 (func.info.data_type, v)) | 4983 (func.info.data_type, v)) |
4971 file.Write(" };\n") | 4984 file.Write(" };\n") |
4972 file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name)) | 4985 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % |
| 4986 (func.name, func.name)) |
4973 file.Write(" const GLsizei kNumElements = 2;\n") | 4987 file.Write(" const GLsizei kNumElements = 2;\n") |
4974 file.Write(" const size_t kExpectedCmdSize =\n") | 4988 file.Write(" const size_t kExpectedCmdSize =\n") |
4975 file.Write(" sizeof(cmd) + kNumElements * sizeof(%s) * %d;\n" % | 4989 file.Write(" sizeof(cmd) + kNumElements * sizeof(%s) * %d;\n" % |
4976 (func.info.data_type, func.info.count)) | 4990 (func.info.data_type, func.info.count)) |
4977 file.Write(" void* next_cmd = cmd.Set(\n") | 4991 file.Write(" void* next_cmd = cmd.Set(\n") |
4978 file.Write(" &cmd") | 4992 file.Write(" &cmd") |
4979 args = func.GetCmdArgs() | 4993 args = func.GetCmdArgs() |
4980 for value, arg in enumerate(args): | 4994 for value, arg in enumerate(args): |
4981 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 1)) | 4995 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 1)) |
4982 file.Write(",\n data);\n") | 4996 file.Write(",\n data);\n") |
4983 args = func.GetCmdArgs() | 4997 args = func.GetCmdArgs() |
4984 file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name) | 4998 file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" % |
| 4999 func.name) |
4985 file.Write(" cmd.header.command);\n") | 5000 file.Write(" cmd.header.command);\n") |
4986 file.Write(" EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);\n") | 5001 file.Write(" EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);\n") |
4987 for value, arg in enumerate(args): | 5002 for value, arg in enumerate(args): |
4988 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % | 5003 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % |
4989 (arg.type, value + 1, arg.name)) | 5004 (arg.type, value + 1, arg.name)) |
4990 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") | 5005 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") |
4991 file.Write(" next_cmd, sizeof(cmd) +\n") | 5006 file.Write(" next_cmd, sizeof(cmd) +\n") |
4992 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n") | 5007 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n") |
4993 file.Write(" // TODO(gman): Check that data was inserted;\n") | 5008 file.Write(" // TODO(gman): Check that data was inserted;\n") |
4994 file.Write("}\n") | 5009 file.Write("}\n") |
(...skipping 24 matching lines...) Expand all Loading... |
5019 'location': args[0].name, | 5034 'location': args[0].name, |
5020 'args': func.MakeOriginalArgString(""), | 5035 'args': func.MakeOriginalArgString(""), |
5021 'values': values, | 5036 'values': values, |
5022 }) | 5037 }) |
5023 | 5038 |
5024 def WriteServiceUnitTest(self, func, file): | 5039 def WriteServiceUnitTest(self, func, file): |
5025 """Overrriden from TypeHandler.""" | 5040 """Overrriden from TypeHandler.""" |
5026 valid_test = """ | 5041 valid_test = """ |
5027 TEST_F(%(test_name)s, %(name)sValidArgs) { | 5042 TEST_F(%(test_name)s, %(name)sValidArgs) { |
5028 EXPECT_CALL(*gl_, %(name)sv(%(local_args)s)); | 5043 EXPECT_CALL(*gl_, %(name)sv(%(local_args)s)); |
5029 SpecializedSetup<%(name)s, 0>(true); | 5044 SpecializedSetup<cmds::%(name)s, 0>(true); |
5030 %(name)s cmd; | 5045 cmds::%(name)s cmd; |
5031 cmd.Init(%(args)s); | 5046 cmd.Init(%(args)s); |
5032 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5047 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
5033 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 5048 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
5034 } | 5049 } |
5035 """ | 5050 """ |
5036 args = func.GetOriginalArgs() | 5051 args = func.GetOriginalArgs() |
5037 local_args = "%s, 1, _" % args[0].GetValidGLArg(func, 0, 0) | 5052 local_args = "%s, 1, _" % args[0].GetValidGLArg(func, 0, 0) |
5038 self.WriteValidUnitTest(func, file, valid_test, { | 5053 self.WriteValidUnitTest(func, file, valid_test, { |
5039 'name': func.name, | 5054 'name': func.name, |
5040 'count': func.GetInfo('count'), | 5055 'count': func.GetInfo('count'), |
5041 'local_args': local_args, | 5056 'local_args': local_args, |
5042 }) | 5057 }) |
5043 | 5058 |
5044 invalid_test = """ | 5059 invalid_test = """ |
5045 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 5060 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
5046 EXPECT_CALL(*gl_, %(name)sv(_, _, _).Times(0); | 5061 EXPECT_CALL(*gl_, %(name)sv(_, _, _).Times(0); |
5047 SpecializedSetup<%(name)s, 0>(false); | 5062 SpecializedSetup<cmds::%(name)s, 0>(false); |
5048 %(name)s cmd; | 5063 cmds::%(name)s cmd; |
5049 cmd.Init(%(args)s); | 5064 cmd.Init(%(args)s); |
5050 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s | 5065 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s |
5051 } | 5066 } |
5052 """ | 5067 """ |
5053 self.WriteInvalidUnitTest(func, file, invalid_test, { | 5068 self.WriteInvalidUnitTest(func, file, invalid_test, { |
5054 'name': func.GetInfo('name'), | 5069 'name': func.GetInfo('name'), |
5055 'count': func.GetInfo('count'), | 5070 'count': func.GetInfo('count'), |
5056 }) | 5071 }) |
5057 | 5072 |
5058 | 5073 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5108 func.MakeOriginalArgString("_")) | 5123 func.MakeOriginalArgString("_")) |
5109 file.Write(" return NextImmediateCmdAddress<ValueType>(" | 5124 file.Write(" return NextImmediateCmdAddress<ValueType>(" |
5110 "cmd, _data_size);\n") | 5125 "cmd, _data_size);\n") |
5111 file.Write(" }\n") | 5126 file.Write(" }\n") |
5112 file.Write("\n") | 5127 file.Write("\n") |
5113 | 5128 |
5114 def WriteImmediateCmdHelper(self, func, file): | 5129 def WriteImmediateCmdHelper(self, func, file): |
5115 """Overrriden from TypeHandler.""" | 5130 """Overrriden from TypeHandler.""" |
5116 code = """ void %(name)s(%(typed_args)s) { | 5131 code = """ void %(name)s(%(typed_args)s) { |
5117 const uint32 data_size = strlen(name); | 5132 const uint32 data_size = strlen(name); |
5118 gles2::%(name)s* c = GetImmediateCmdSpace<gles2::%(name)s>(data_size); | 5133 gles2::cmds::%(name)s* c = |
| 5134 GetImmediateCmdSpace<gles2::cmds::%(name)s>(data_size); |
5119 if (c) { | 5135 if (c) { |
5120 c->Init(%(args)s, data_size); | 5136 c->Init(%(args)s, data_size); |
5121 } | 5137 } |
5122 } | 5138 } |
5123 | 5139 |
5124 """ | 5140 """ |
5125 file.Write(code % { | 5141 file.Write(code % { |
5126 "name": func.name, | 5142 "name": func.name, |
5127 "typed_args": func.MakeTypedOriginalArgString(""), | 5143 "typed_args": func.MakeTypedOriginalArgString(""), |
5128 "args": func.MakeOriginalArgString(""), | 5144 "args": func.MakeOriginalArgString(""), |
5129 }) | 5145 }) |
5130 | 5146 |
5131 | 5147 |
5132 def WriteImmediateFormatTest(self, func, file): | 5148 def WriteImmediateFormatTest(self, func, file): |
5133 """Overrriden from TypeHandler.""" | 5149 """Overrriden from TypeHandler.""" |
5134 init_code = [] | 5150 init_code = [] |
5135 check_code = [] | 5151 check_code = [] |
5136 all_but_last_arg = func.GetCmdArgs()[:-1] | 5152 all_but_last_arg = func.GetCmdArgs()[:-1] |
5137 for value, arg in enumerate(all_but_last_arg): | 5153 for value, arg in enumerate(all_but_last_arg): |
5138 init_code.append(" static_cast<%s>(%d)," % (arg.type, value + 11)) | 5154 init_code.append(" static_cast<%s>(%d)," % (arg.type, value + 11)) |
5139 for value, arg in enumerate(all_but_last_arg): | 5155 for value, arg in enumerate(all_but_last_arg): |
5140 check_code.append(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);" % | 5156 check_code.append(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);" % |
5141 (arg.type, value + 11, arg.name)) | 5157 (arg.type, value + 11, arg.name)) |
5142 code = """ | 5158 code = """ |
5143 TEST_F(GLES2FormatTest, %(func_name)s) { | 5159 TEST_F(GLES2FormatTest, %(func_name)s) { |
5144 %(func_name)s& cmd = *GetBufferAs<%(func_name)s>(); | 5160 cmds::%(func_name)s& cmd = *GetBufferAs<cmds::%(func_name)s>(); |
5145 static const char* const test_str = \"test string\"; | 5161 static const char* const test_str = \"test string\"; |
5146 void* next_cmd = cmd.Set( | 5162 void* next_cmd = cmd.Set( |
5147 &cmd, | 5163 &cmd, |
5148 %(init_code)s | 5164 %(init_code)s |
5149 test_str, | 5165 test_str, |
5150 strlen(test_str)); | 5166 strlen(test_str)); |
5151 EXPECT_EQ(static_cast<uint32>(%(func_name)s::kCmdId), | 5167 EXPECT_EQ(static_cast<uint32>(cmds::%(func_name)s::kCmdId), |
5152 cmd.header.command); | 5168 cmd.header.command); |
5153 EXPECT_EQ(sizeof(cmd) + | 5169 EXPECT_EQ(sizeof(cmd) + |
5154 RoundSizeToMultipleOfEntries(strlen(test_str)), | 5170 RoundSizeToMultipleOfEntries(strlen(test_str)), |
5155 cmd.header.size * 4u); | 5171 cmd.header.size * 4u); |
5156 EXPECT_EQ(static_cast<char*>(next_cmd), | 5172 EXPECT_EQ(static_cast<char*>(next_cmd), |
5157 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + | 5173 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + |
5158 RoundSizeToMultipleOfEntries(strlen(test_str))); | 5174 RoundSizeToMultipleOfEntries(strlen(test_str))); |
5159 %(check_code)s | 5175 %(check_code)s |
5160 EXPECT_EQ(static_cast<uint32>(strlen(test_str)), cmd.data_size); | 5176 EXPECT_EQ(static_cast<uint32>(strlen(test_str)), cmd.data_size); |
5161 EXPECT_EQ(0, memcmp(test_str, ImmediateDataAddress(&cmd), strlen(test_str))); | 5177 EXPECT_EQ(0, memcmp(test_str, ImmediateDataAddress(&cmd), strlen(test_str))); |
(...skipping 26 matching lines...) Expand all Loading... |
5188 """Overrriden from TypeHandler.""" | 5204 """Overrriden from TypeHandler.""" |
5189 pass | 5205 pass |
5190 | 5206 |
5191 def AddBucketFunction(self, generator, func): | 5207 def AddBucketFunction(self, generator, func): |
5192 """Overrriden from TypeHandler.""" | 5208 """Overrriden from TypeHandler.""" |
5193 pass | 5209 pass |
5194 | 5210 |
5195 def WriteServiceImplementation(self, func, file): | 5211 def WriteServiceImplementation(self, func, file): |
5196 """Overrriden from TypeHandler.""" | 5212 """Overrriden from TypeHandler.""" |
5197 file.Write("""error::Error GLES2DecoderImpl::Handle%(name)s( | 5213 file.Write("""error::Error GLES2DecoderImpl::Handle%(name)s( |
5198 uint32 immediate_data_size, const gles2::%(name)s& c) { | 5214 uint32 immediate_data_size, const gles2::cmds::%(name)s& c) { |
5199 GLuint bucket_id = static_cast<GLuint>(c.%(bucket_id)s); | 5215 GLuint bucket_id = static_cast<GLuint>(c.%(bucket_id)s); |
5200 Bucket* bucket = GetBucket(bucket_id); | 5216 Bucket* bucket = GetBucket(bucket_id); |
5201 if (!bucket || bucket->size() == 0) { | 5217 if (!bucket || bucket->size() == 0) { |
5202 return error::kInvalidArguments; | 5218 return error::kInvalidArguments; |
5203 } | 5219 } |
5204 std::string str; | 5220 std::string str; |
5205 if (!bucket->GetAsString(&str)) { | 5221 if (!bucket->GetAsString(&str)) { |
5206 return error::kInvalidArguments; | 5222 return error::kInvalidArguments; |
5207 } | 5223 } |
5208 %(gl_func_name)s(0, str.c_str()); | 5224 %(gl_func_name)s(0, str.c_str()); |
(...skipping 18 matching lines...) Expand all Loading... |
5227 func.AddCmdArg(Argument("result_shm_id", 'uint32')) | 5243 func.AddCmdArg(Argument("result_shm_id", 'uint32')) |
5228 func.AddCmdArg(Argument("result_shm_offset", 'uint32')) | 5244 func.AddCmdArg(Argument("result_shm_offset", 'uint32')) |
5229 if func.GetInfo('result') == None: | 5245 if func.GetInfo('result') == None: |
5230 func.AddInfo('result', ['uint32']) | 5246 func.AddInfo('result', ['uint32']) |
5231 | 5247 |
5232 def WriteServiceUnitTest(self, func, file): | 5248 def WriteServiceUnitTest(self, func, file): |
5233 """Overrriden from TypeHandler.""" | 5249 """Overrriden from TypeHandler.""" |
5234 valid_test = """ | 5250 valid_test = """ |
5235 TEST_F(%(test_name)s, %(name)sValidArgs) { | 5251 TEST_F(%(test_name)s, %(name)sValidArgs) { |
5236 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 5252 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
5237 SpecializedSetup<%(name)s, 0>(true); | 5253 SpecializedSetup<cmds::%(name)s, 0>(true); |
5238 %(name)s cmd; | 5254 cmds::%(name)s cmd; |
5239 cmd.Init(%(args)s%(comma)sshared_memory_id_, shared_memory_offset_); | 5255 cmd.Init(%(args)s%(comma)sshared_memory_id_, shared_memory_offset_); |
5240 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5256 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
5241 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 5257 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
5242 } | 5258 } |
5243 """ | 5259 """ |
5244 comma = "" | 5260 comma = "" |
5245 if len(func.GetOriginalArgs()): | 5261 if len(func.GetOriginalArgs()): |
5246 comma =", " | 5262 comma =", " |
5247 self.WriteValidUnitTest(func, file, valid_test, { | 5263 self.WriteValidUnitTest(func, file, valid_test, { |
5248 'comma': comma, | 5264 'comma': comma, |
5249 }) | 5265 }) |
5250 | 5266 |
5251 invalid_test = """ | 5267 invalid_test = """ |
5252 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 5268 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
5253 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 5269 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
5254 SpecializedSetup<%(name)s, 0>(false); | 5270 SpecializedSetup<cmds::%(name)s, 0>(false); |
5255 %(name)s cmd; | 5271 cmds::%(name)s cmd; |
5256 cmd.Init(%(args)s%(comma)sshared_memory_id_, shared_memory_offset_); | 5272 cmd.Init(%(args)s%(comma)sshared_memory_id_, shared_memory_offset_); |
5257 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s | 5273 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s |
5258 } | 5274 } |
5259 """ | 5275 """ |
5260 self.WriteInvalidUnitTest(func, file, invalid_test, { | 5276 self.WriteInvalidUnitTest(func, file, invalid_test, { |
5261 'comma': comma, | 5277 'comma': comma, |
5262 }) | 5278 }) |
5263 | 5279 |
5264 invalid_test = """ | 5280 invalid_test = """ |
5265 TEST_F(%(test_name)s, %(name)sInvalidArgsBadSharedMemoryId) { | 5281 TEST_F(%(test_name)s, %(name)sInvalidArgsBadSharedMemoryId) { |
5266 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 5282 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
5267 SpecializedSetup<%(name)s, 0>(false); | 5283 SpecializedSetup<cmds::%(name)s, 0>(false); |
5268 %(name)s cmd; | 5284 cmds::%(name)s cmd; |
5269 cmd.Init(%(args)s%(comma)skInvalidSharedMemoryId, shared_memory_offset_); | 5285 cmd.Init(%(args)s%(comma)skInvalidSharedMemoryId, shared_memory_offset_); |
5270 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); | 5286 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); |
5271 cmd.Init(%(args)s%(comma)sshared_memory_id_, kInvalidSharedMemoryOffset); | 5287 cmd.Init(%(args)s%(comma)sshared_memory_id_, kInvalidSharedMemoryOffset); |
5272 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); | 5288 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); |
5273 } | 5289 } |
5274 """ | 5290 """ |
5275 self.WriteValidUnitTest(func, file, invalid_test, { | 5291 self.WriteValidUnitTest(func, file, invalid_test, { |
5276 'comma': comma, | 5292 'comma': comma, |
5277 }) | 5293 }) |
5278 | 5294 |
5279 def WriteServiceImplementation(self, func, file): | 5295 def WriteServiceImplementation(self, func, file): |
5280 """Overrriden from TypeHandler.""" | 5296 """Overrriden from TypeHandler.""" |
5281 file.Write( | 5297 file.Write( |
5282 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 5298 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
5283 file.Write( | 5299 file.Write( |
5284 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | 5300 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 5301 func.name) |
5285 args = func.GetOriginalArgs() | 5302 args = func.GetOriginalArgs() |
5286 for arg in args: | 5303 for arg in args: |
5287 arg.WriteGetCode(file) | 5304 arg.WriteGetCode(file) |
5288 | 5305 |
5289 code = """ typedef %(func_name)s::Result Result; | 5306 code = """ typedef cmds::%(func_name)s::Result Result; |
5290 Result* result_dst = GetSharedMemoryAs<Result*>( | 5307 Result* result_dst = GetSharedMemoryAs<Result*>( |
5291 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 5308 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
5292 if (!result_dst) { | 5309 if (!result_dst) { |
5293 return error::kOutOfBounds; | 5310 return error::kOutOfBounds; |
5294 } | 5311 } |
5295 """ | 5312 """ |
5296 file.Write(code % {'func_name': func.name}) | 5313 file.Write(code % {'func_name': func.name}) |
5297 func.WriteHandlerValidation(file) | 5314 func.WriteHandlerValidation(file) |
5298 file.Write(" *result_dst = %s(%s);\n" % | 5315 file.Write(" *result_dst = %s(%s);\n" % |
5299 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) | 5316 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) |
5300 file.Write(" return error::kNoError;\n") | 5317 file.Write(" return error::kNoError;\n") |
5301 file.Write("}\n") | 5318 file.Write("}\n") |
5302 file.Write("\n") | 5319 file.Write("\n") |
5303 | 5320 |
5304 def WriteGLES2Implementation(self, func, file): | 5321 def WriteGLES2Implementation(self, func, file): |
5305 """Overrriden from TypeHandler.""" | 5322 """Overrriden from TypeHandler.""" |
5306 impl_func = func.GetInfo('impl_func') | 5323 impl_func = func.GetInfo('impl_func') |
5307 if impl_func == None or impl_func == True: | 5324 if impl_func == None or impl_func == True: |
5308 error_value = func.GetInfo("error_value") or "GL_FALSE" | 5325 error_value = func.GetInfo("error_value") or "GL_FALSE" |
5309 file.Write("%s GLES2Implementation::%s(%s) {\n" % | 5326 file.Write("%s GLES2Implementation::%s(%s) {\n" % |
5310 (func.return_type, func.original_name, | 5327 (func.return_type, func.original_name, |
5311 func.MakeTypedOriginalArgString(""))) | 5328 func.MakeTypedOriginalArgString(""))) |
5312 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n") | 5329 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n") |
5313 self.WriteTraceEvent(func, file) | 5330 self.WriteTraceEvent(func, file) |
5314 func.WriteDestinationInitalizationValidation(file) | 5331 func.WriteDestinationInitalizationValidation(file) |
5315 self.WriteClientGLCallLog(func, file) | 5332 self.WriteClientGLCallLog(func, file) |
5316 file.Write(" typedef %s::Result Result;\n" % func.name) | 5333 file.Write(" typedef cmds::%s::Result Result;\n" % func.name) |
5317 file.Write(" Result* result = GetResultAs<Result*>();\n") | 5334 file.Write(" Result* result = GetResultAs<Result*>();\n") |
5318 file.Write(" if (!result) {\n") | 5335 file.Write(" if (!result) {\n") |
5319 file.Write(" return %s;\n" % error_value) | 5336 file.Write(" return %s;\n" % error_value) |
5320 file.Write(" }\n") | 5337 file.Write(" }\n") |
5321 file.Write(" *result = 0;\n") | 5338 file.Write(" *result = 0;\n") |
5322 arg_string = func.MakeOriginalArgString("") | 5339 arg_string = func.MakeOriginalArgString("") |
5323 comma = "" | 5340 comma = "" |
5324 if len(arg_string) > 0: | 5341 if len(arg_string) > 0: |
5325 comma = ", " | 5342 comma = ", " |
5326 file.Write( | 5343 file.Write( |
5327 " helper_->%s(%s%sGetResultShmId(), GetResultShmOffset());\n" % | 5344 " helper_->%s(%s%sGetResultShmId(), GetResultShmOffset());\n" % |
5328 (func.name, arg_string, comma)) | 5345 (func.name, arg_string, comma)) |
5329 file.Write(" WaitForCmd();\n") | 5346 file.Write(" WaitForCmd();\n") |
5330 file.Write(" %s result_value = *result;\n" % func.return_type) | 5347 file.Write(" %s result_value = *result;\n" % func.return_type) |
5331 file.Write(' GPU_CLIENT_LOG("returned " << result_value);\n') | 5348 file.Write(' GPU_CLIENT_LOG("returned " << result_value);\n') |
5332 file.Write(" CheckGLError();\n") | 5349 file.Write(" CheckGLError();\n") |
5333 file.Write(" return result_value;\n") | 5350 file.Write(" return result_value;\n") |
5334 file.Write("}\n") | 5351 file.Write("}\n") |
5335 file.Write("\n") | 5352 file.Write("\n") |
5336 | 5353 |
5337 def WriteGLES2ImplementationUnitTest(self, func, file): | 5354 def WriteGLES2ImplementationUnitTest(self, func, file): |
5338 """Overrriden from TypeHandler.""" | 5355 """Overrriden from TypeHandler.""" |
5339 client_test = func.GetInfo('client_test') | 5356 client_test = func.GetInfo('client_test') |
5340 if client_test == None or client_test == True: | 5357 if client_test == None or client_test == True: |
5341 code = """ | 5358 code = """ |
5342 TEST_F(GLES2ImplementationTest, %(name)s) { | 5359 TEST_F(GLES2ImplementationTest, %(name)s) { |
5343 struct Cmds { | 5360 struct Cmds { |
5344 %(name)s cmd; | 5361 cmds::%(name)s cmd; |
5345 }; | 5362 }; |
5346 | 5363 |
5347 typedef %(name)s::Result Result; | 5364 typedef cmds::%(name)s::Result Result; |
5348 Cmds expected; | 5365 Cmds expected; |
5349 ExpectedMemoryInfo result1 = | 5366 ExpectedMemoryInfo result1 = |
5350 GetExpectedResultMemory(sizeof(%(name)s::Result)); | 5367 GetExpectedResultMemory(sizeof(cmds::%(name)s::Result)); |
5351 expected.cmd.Init(1, result1.id, result1.offset); | 5368 expected.cmd.Init(1, result1.id, result1.offset); |
5352 | 5369 |
5353 EXPECT_CALL(*command_buffer(), OnFlush()) | 5370 EXPECT_CALL(*command_buffer(), OnFlush()) |
5354 .WillOnce(SetMemory(result1.ptr, uint32(1))) | 5371 .WillOnce(SetMemory(result1.ptr, uint32(1))) |
5355 .RetiresOnSaturation(); | 5372 .RetiresOnSaturation(); |
5356 | 5373 |
5357 GLboolean result = gl_->%(name)s(1); | 5374 GLboolean result = gl_->%(name)s(1); |
5358 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); | 5375 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
5359 EXPECT_TRUE(result); | 5376 EXPECT_TRUE(result); |
5360 } | 5377 } |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5427 file.Write(code_1 % str_args) | 5444 file.Write(code_1 % str_args) |
5428 func.WriteDestinationInitalizationValidation(file) | 5445 func.WriteDestinationInitalizationValidation(file) |
5429 file.Write(code_2 % str_args) | 5446 file.Write(code_2 % str_args) |
5430 | 5447 |
5431 def WriteServiceUnitTest(self, func, file): | 5448 def WriteServiceUnitTest(self, func, file): |
5432 """Overrriden from TypeHandler.""" | 5449 """Overrriden from TypeHandler.""" |
5433 valid_test = """ | 5450 valid_test = """ |
5434 TEST_F(%(test_name)s, %(name)sValidArgs) { | 5451 TEST_F(%(test_name)s, %(name)sValidArgs) { |
5435 const char* kInfo = "hello"; | 5452 const char* kInfo = "hello"; |
5436 const uint32 kBucketId = 123; | 5453 const uint32 kBucketId = 123; |
5437 SpecializedSetup<%(name)s, 0>(true); | 5454 SpecializedSetup<cmds::%(name)s, 0>(true); |
5438 %(expect_len_code)s | 5455 %(expect_len_code)s |
5439 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) | 5456 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) |
5440 .WillOnce(DoAll(SetArgumentPointee<2>(strlen(kInfo)), | 5457 .WillOnce(DoAll(SetArgumentPointee<2>(strlen(kInfo)), |
5441 SetArrayArgument<3>(kInfo, kInfo + strlen(kInfo) + 1))); | 5458 SetArrayArgument<3>(kInfo, kInfo + strlen(kInfo) + 1))); |
5442 %(name)s cmd; | 5459 cmds::%(name)s cmd; |
5443 cmd.Init(%(args)s); | 5460 cmd.Init(%(args)s); |
5444 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5461 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
5445 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); | 5462 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); |
5446 ASSERT_TRUE(bucket != NULL); | 5463 ASSERT_TRUE(bucket != NULL); |
5447 EXPECT_EQ(strlen(kInfo) + 1, bucket->size()); | 5464 EXPECT_EQ(strlen(kInfo) + 1, bucket->size()); |
5448 EXPECT_EQ(0, memcmp(bucket->GetData(0, bucket->size()), kInfo, | 5465 EXPECT_EQ(0, memcmp(bucket->GetData(0, bucket->size()), kInfo, |
5449 bucket->size())); | 5466 bucket->size())); |
5450 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 5467 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
5451 } | 5468 } |
5452 """ | 5469 """ |
(...skipping 15 matching lines...) Expand all Loading... |
5468 " EXPECT_CALL(*gl_, %s(%s, %s, _))\n" | 5485 " EXPECT_CALL(*gl_, %s(%s, %s, _))\n" |
5469 " .WillOnce(SetArgumentPointee<2>(strlen(kInfo) + 1));") % ( | 5486 " .WillOnce(SetArgumentPointee<2>(strlen(kInfo) + 1));") % ( |
5470 get_len_func[2:], id_name, get_len_enum) | 5487 get_len_func[2:], id_name, get_len_enum) |
5471 self.WriteValidUnitTest(func, file, valid_test, sub) | 5488 self.WriteValidUnitTest(func, file, valid_test, sub) |
5472 | 5489 |
5473 invalid_test = """ | 5490 invalid_test = """ |
5474 TEST_F(%(test_name)s, %(name)sInvalidArgs) { | 5491 TEST_F(%(test_name)s, %(name)sInvalidArgs) { |
5475 const uint32 kBucketId = 123; | 5492 const uint32 kBucketId = 123; |
5476 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _, _, _)) | 5493 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _, _, _)) |
5477 .Times(0); | 5494 .Times(0); |
5478 %(name)s cmd; | 5495 cmds::%(name)s cmd; |
5479 cmd.Init(kInvalidClientId, kBucketId); | 5496 cmd.Init(kInvalidClientId, kBucketId); |
5480 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5497 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
5481 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); | 5498 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
5482 } | 5499 } |
5483 """ | 5500 """ |
5484 self.WriteValidUnitTest(func, file, invalid_test) | 5501 self.WriteValidUnitTest(func, file, invalid_test) |
5485 | 5502 |
5486 def WriteServiceImplementation(self, func, file): | 5503 def WriteServiceImplementation(self, func, file): |
5487 """Overrriden from TypeHandler.""" | 5504 """Overrriden from TypeHandler.""" |
5488 pass | 5505 pass |
(...skipping 2084 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7573 gen.WriteGLES2Header("../GLES2/gl2chromium_autogen.h") | 7590 gen.WriteGLES2Header("../GLES2/gl2chromium_autogen.h") |
7574 | 7591 |
7575 if gen.errors > 0: | 7592 if gen.errors > 0: |
7576 print "%d errors" % gen.errors | 7593 print "%d errors" % gen.errors |
7577 return 1 | 7594 return 1 |
7578 return 0 | 7595 return 0 |
7579 | 7596 |
7580 | 7597 |
7581 if __name__ == '__main__': | 7598 if __name__ == '__main__': |
7582 sys.exit(main(sys.argv[1:])) | 7599 sys.exit(main(sys.argv[1:])) |
OLD | NEW |