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

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

Issue 12326146: Refactor/Rename a bunch of GPU stuff (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:]))
OLDNEW
« no previous file with comments | « content/common/gpu/media/gpu_video_decode_accelerator.cc ('k') | gpu/command_buffer/client/gles2_cmd_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698