| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """code generator for GLES2 command buffers.""" | 6 """code generator for GLES2 command buffers.""" |
| 7 | 7 |
| 8 import itertools | 8 import itertools |
| 9 import os | 9 import os |
| 10 import os.path | 10 import os.path |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 | 71 |
| 72 # Capabilites selected with glEnable | 72 # Capabilites selected with glEnable |
| 73 _CAPABILITY_FLAGS = [ | 73 _CAPABILITY_FLAGS = [ |
| 74 {'name': 'blend'}, | 74 {'name': 'blend'}, |
| 75 {'name': 'cull_face'}, | 75 {'name': 'cull_face'}, |
| 76 {'name': 'depth_test', 'state_flag': 'framebuffer_state_.clear_state_dirty'}, | 76 {'name': 'depth_test', 'state_flag': 'framebuffer_state_.clear_state_dirty'}, |
| 77 {'name': 'dither', 'default': True}, | 77 {'name': 'dither', 'default': True}, |
| 78 {'name': 'polygon_offset_fill'}, | 78 {'name': 'polygon_offset_fill'}, |
| 79 {'name': 'sample_alpha_to_coverage'}, | 79 {'name': 'sample_alpha_to_coverage'}, |
| 80 {'name': 'sample_coverage'}, | 80 {'name': 'sample_coverage'}, |
| 81 {'name': 'scissor_test'}, | 81 {'name': 'scissor_test', |
| 82 'state_flag': 'framebuffer_state_.clear_state_dirty'}, |
| 82 {'name': 'stencil_test', | 83 {'name': 'stencil_test', |
| 83 'state_flag': 'framebuffer_state_.clear_state_dirty'}, | 84 'state_flag': 'framebuffer_state_.clear_state_dirty'}, |
| 84 ] | 85 ] |
| 85 | 86 |
| 86 _STATES = { | 87 _STATES = { |
| 87 'ClearColor': { | 88 'ClearColor': { |
| 88 'type': 'Normal', | 89 'type': 'Normal', |
| 89 'func': 'ClearColor', | 90 'func': 'ClearColor', |
| 90 'enum': 'GL_COLOR_CLEAR_VALUE', | 91 'enum': 'GL_COLOR_CLEAR_VALUE', |
| 91 'states': [ | 92 'states': [ |
| 92 {'name': 'color_clear_red', 'type': 'GLfloat', 'default': '0.0f'}, | 93 {'name': 'color_clear_red', 'type': 'GLfloat', 'default': '0.0f'}, |
| 93 {'name': 'color_clear_green', 'type': 'GLfloat', 'default': '0.0f'}, | 94 {'name': 'color_clear_green', 'type': 'GLfloat', 'default': '0.0f'}, |
| 94 {'name': 'color_clear_blue', 'type': 'GLfloat', 'default': '0.0f'}, | 95 {'name': 'color_clear_blue', 'type': 'GLfloat', 'default': '0.0f'}, |
| 95 {'name': 'color_clear_alpha', 'type': 'GLfloat', 'default': '0.0f'}, | 96 {'name': 'color_clear_alpha', 'type': 'GLfloat', 'default': '0.0f'}, |
| 96 ], | 97 ], |
| 97 }, | 98 }, |
| 98 'ClearDepthf': { | 99 'ClearDepthf': { |
| 99 'type': 'Normal', | 100 'type': 'Normal', |
| 100 'func': 'ClearDepth', | 101 'func': 'ClearDepth', |
| 101 'enum': 'GL_DEPTH_CLEAR_VALUE', | 102 'enum': 'GL_DEPTH_CLEAR_VALUE', |
| 102 'states': [ | 103 'states': [ |
| 103 {'name': 'depth_clear', 'type': 'GLclampf', 'default': '1.0f'}, | 104 {'name': 'depth_clear', 'type': 'GLclampf', 'default': '1.0f'}, |
| 104 ], | 105 ], |
| 105 }, | 106 }, |
| 106 'ColorMask': { | 107 'ColorMask': { |
| 107 'type': 'Normal', | 108 'type': 'Normal', |
| 108 'func': 'ColorMask', | 109 'func': 'ColorMask', |
| 109 'enum': 'GL_COLOR_WRITEMASK', | 110 'enum': 'GL_COLOR_WRITEMASK', |
| 110 'states': [ | 111 'states': [ |
| 111 { | 112 {'name': 'color_mask_red', 'type': 'GLboolean', 'default': 'true'}, |
| 112 'name': 'color_mask_red', | 113 {'name': 'color_mask_green', 'type': 'GLboolean', 'default': 'true'}, |
| 113 'type': 'GLboolean', | 114 {'name': 'color_mask_blue', 'type': 'GLboolean', 'default': 'true'}, |
| 114 'default': 'true', | 115 {'name': 'color_mask_alpha', 'type': 'GLboolean', 'default': 'true'}, |
| 115 'cached': True | |
| 116 }, | |
| 117 { | |
| 118 'name': 'color_mask_green', | |
| 119 'type': 'GLboolean', | |
| 120 'default': 'true', | |
| 121 'cached': True | |
| 122 }, | |
| 123 { | |
| 124 'name': 'color_mask_blue', | |
| 125 'type': 'GLboolean', | |
| 126 'default': 'true', | |
| 127 'cached': True | |
| 128 }, | |
| 129 { | |
| 130 'name': 'color_mask_alpha', | |
| 131 'type': 'GLboolean', | |
| 132 'default': 'true', | |
| 133 'cached': True | |
| 134 }, | |
| 135 ], | 116 ], |
| 136 'state_flag': 'framebuffer_state_.clear_state_dirty', | 117 'state_flag': 'framebuffer_state_.clear_state_dirty', |
| 137 }, | 118 }, |
| 138 'ClearStencil': { | 119 'ClearStencil': { |
| 139 'type': 'Normal', | 120 'type': 'Normal', |
| 140 'func': 'ClearStencil', | 121 'func': 'ClearStencil', |
| 141 'enum': 'GL_STENCIL_CLEAR_VALUE', | 122 'enum': 'GL_STENCIL_CLEAR_VALUE', |
| 142 'states': [ | 123 'states': [ |
| 143 {'name': 'stencil_clear', 'type': 'GLint', 'default': '0'}, | 124 {'name': 'stencil_clear', 'type': 'GLint', 'default': '0'}, |
| 144 ], | 125 ], |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 274 'StencilMask': { | 255 'StencilMask': { |
| 275 'type': 'FrontBack', | 256 'type': 'FrontBack', |
| 276 'func': 'StencilMaskSeparate', | 257 'func': 'StencilMaskSeparate', |
| 277 'state_flag': 'framebuffer_state_.clear_state_dirty', | 258 'state_flag': 'framebuffer_state_.clear_state_dirty', |
| 278 'states': [ | 259 'states': [ |
| 279 { | 260 { |
| 280 'name': 'stencil_front_writemask', | 261 'name': 'stencil_front_writemask', |
| 281 'type': 'GLuint', | 262 'type': 'GLuint', |
| 282 'enum': 'GL_STENCIL_WRITEMASK', | 263 'enum': 'GL_STENCIL_WRITEMASK', |
| 283 'default': '0xFFFFFFFFU', | 264 'default': '0xFFFFFFFFU', |
| 284 'cached': True, | |
| 285 }, | 265 }, |
| 286 { | 266 { |
| 287 'name': 'stencil_back_writemask', | 267 'name': 'stencil_back_writemask', |
| 288 'type': 'GLuint', | 268 'type': 'GLuint', |
| 289 'enum': 'GL_STENCIL_BACK_WRITEMASK', | 269 'enum': 'GL_STENCIL_BACK_WRITEMASK', |
| 290 'default': '0xFFFFFFFFU', | 270 'default': '0xFFFFFFFFU', |
| 291 'cached': True, | |
| 292 }, | 271 }, |
| 293 ], | 272 ], |
| 294 }, | 273 }, |
| 295 'StencilOp': { | 274 'StencilOp': { |
| 296 'type': 'FrontBack', | 275 'type': 'FrontBack', |
| 297 'func': 'StencilOpSeparate', | 276 'func': 'StencilOpSeparate', |
| 298 'states': [ | 277 'states': [ |
| 299 { | 278 { |
| 300 'name': 'stencil_front_fail_op', | 279 'name': 'stencil_front_fail_op', |
| 301 'type': 'GLenum', | 280 'type': 'GLenum', |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 'type': 'GLfloat', | 404 'type': 'GLfloat', |
| 426 'default': '1.0f', | 405 'default': '1.0f', |
| 427 'range_checks': [{'check': "<= 0.0f", 'test_value': "0.0f"}], | 406 'range_checks': [{'check': "<= 0.0f", 'test_value': "0.0f"}], |
| 428 }], | 407 }], |
| 429 }, | 408 }, |
| 430 'DepthMask': { | 409 'DepthMask': { |
| 431 'type': 'Normal', | 410 'type': 'Normal', |
| 432 'func': 'DepthMask', | 411 'func': 'DepthMask', |
| 433 'enum': 'GL_DEPTH_WRITEMASK', | 412 'enum': 'GL_DEPTH_WRITEMASK', |
| 434 'states': [ | 413 'states': [ |
| 435 { | 414 {'name': 'depth_mask', 'type': 'GLboolean', 'default': 'true'}, |
| 436 'name': 'depth_mask', | |
| 437 'type': 'GLboolean', | |
| 438 'default': 'true', | |
| 439 'cached': True | |
| 440 }, | |
| 441 ], | 415 ], |
| 442 'state_flag': 'framebuffer_state_.clear_state_dirty', | 416 'state_flag': 'framebuffer_state_.clear_state_dirty', |
| 443 }, | 417 }, |
| 444 'Scissor': { | 418 'Scissor': { |
| 445 'type': 'Normal', | 419 'type': 'Normal', |
| 446 'func': 'Scissor', | 420 'func': 'Scissor', |
| 447 'enum': 'GL_SCISSOR_BOX', | 421 'enum': 'GL_SCISSOR_BOX', |
| 448 'states': [ | 422 'states': [ |
| 449 # NOTE: These defaults reset at GLES2DecoderImpl::Initialization. | 423 # NOTE: These defaults reset at GLES2DecoderImpl::Initialization. |
| 450 { | 424 { |
| (...skipping 2164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2615 the lower-case identifier. | 2589 the lower-case identifier. |
| 2616 """ | 2590 """ |
| 2617 return '_'.join(words) | 2591 return '_'.join(words) |
| 2618 | 2592 |
| 2619 | 2593 |
| 2620 def ToUnderscore(input_string): | 2594 def ToUnderscore(input_string): |
| 2621 """converts CamelCase to camel_case.""" | 2595 """converts CamelCase to camel_case.""" |
| 2622 words = SplitWords(input_string) | 2596 words = SplitWords(input_string) |
| 2623 return Lower(words) | 2597 return Lower(words) |
| 2624 | 2598 |
| 2625 def CachedStateName(item): | |
| 2626 if item.get('cached', False): | |
| 2627 return 'cached_' + item['name'] | |
| 2628 return item['name'] | |
| 2629 | |
| 2630 | 2599 |
| 2631 class CWriter(object): | 2600 class CWriter(object): |
| 2632 """Writes to a file formatting it for Google's style guidelines.""" | 2601 """Writes to a file formatting it for Google's style guidelines.""" |
| 2633 | 2602 |
| 2634 def __init__(self, filename): | 2603 def __init__(self, filename): |
| 2635 self.filename = filename | 2604 self.filename = filename |
| 2636 self.file_num = 0 | 2605 self.file_num = 0 |
| 2637 self.content = [] | 2606 self.content = [] |
| 2638 | 2607 |
| 2639 def SetFileNum(self, num): | 2608 def SetFileNum(self, num): |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2977 'all_but_last_args': ", ".join(arg_strings[:-1]), | 2946 'all_but_last_args': ", ".join(arg_strings[:-1]), |
| 2978 'gl_args': ", ".join(gl_arg_strings), | 2947 'gl_args': ", ".join(gl_arg_strings), |
| 2979 'parse_result': parse_result, | 2948 'parse_result': parse_result, |
| 2980 'gl_error_test': gl_error_test, | 2949 'gl_error_test': gl_error_test, |
| 2981 } | 2950 } |
| 2982 vars.update(extra) | 2951 vars.update(extra) |
| 2983 file.Write(test % vars) | 2952 file.Write(test % vars) |
| 2984 | 2953 |
| 2985 def WriteServiceUnitTest(self, func, file): | 2954 def WriteServiceUnitTest(self, func, file): |
| 2986 """Writes the service unit test for a command.""" | 2955 """Writes the service unit test for a command.""" |
| 2987 | 2956 valid_test = """ |
| 2988 if func.name == 'Enable': | 2957 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 2989 valid_test = """ | |
| 2990 TEST_P(%(test_name)s, %(name)sValidArgs) { | |
| 2991 SetupExpectationsForEnableDisable(%(gl_args)s, true); | |
| 2992 SpecializedSetup<cmds::%(name)s, 0>(true); | |
| 2993 cmds::%(name)s cmd; | |
| 2994 cmd.Init(%(args)s); | |
| 2995 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | |
| 2996 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | |
| 2997 } | |
| 2998 """ | |
| 2999 elif func.name == 'Disable': | |
| 3000 valid_test = """ | |
| 3001 TEST_P(%(test_name)s, %(name)sValidArgs) { | |
| 3002 SetupExpectationsForEnableDisable(%(gl_args)s, false); | |
| 3003 SpecializedSetup<cmds::%(name)s, 0>(true); | |
| 3004 cmds::%(name)s cmd; | |
| 3005 cmd.Init(%(args)s); | |
| 3006 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | |
| 3007 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | |
| 3008 } | |
| 3009 """ | |
| 3010 else: | |
| 3011 valid_test = """ | |
| 3012 TEST_P(%(test_name)s, %(name)sValidArgs) { | |
| 3013 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 2958 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
| 3014 SpecializedSetup<cmds::%(name)s, 0>(true); | 2959 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 3015 cmds::%(name)s cmd; | 2960 cmds::%(name)s cmd; |
| 3016 cmd.Init(%(args)s); | 2961 cmd.Init(%(args)s); |
| 3017 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 2962 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 3018 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 2963 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3019 } | 2964 } |
| 3020 """ | 2965 """ |
| 3021 self.WriteValidUnitTest(func, file, valid_test) | 2966 self.WriteValidUnitTest(func, file, valid_test) |
| 3022 | 2967 |
| 3023 invalid_test = """ | 2968 invalid_test = """ |
| 3024 TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 2969 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
| 3025 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 2970 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
| 3026 SpecializedSetup<cmds::%(name)s, 0>(false); | 2971 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 3027 cmds::%(name)s cmd; | 2972 cmds::%(name)s cmd; |
| 3028 cmd.Init(%(args)s); | 2973 cmd.Init(%(args)s); |
| 3029 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s | 2974 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s |
| 3030 } | 2975 } |
| 3031 """ | 2976 """ |
| 3032 self.WriteInvalidUnitTest(func, file, invalid_test) | 2977 self.WriteInvalidUnitTest(func, file, invalid_test) |
| 3033 | 2978 |
| 3034 def WriteImmediateServiceUnitTest(self, func, file): | 2979 def WriteImmediateServiceUnitTest(self, func, file): |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3286 file.Write(" }\n") | 3231 file.Write(" }\n") |
| 3287 code = [] | 3232 code = [] |
| 3288 for ndx,item in enumerate(states): | 3233 for ndx,item in enumerate(states): |
| 3289 code.append("state_.%s != %s" % (item['name'], args[ndx].name)) | 3234 code.append("state_.%s != %s" % (item['name'], args[ndx].name)) |
| 3290 file.Write(" if (%s) {\n" % " ||\n ".join(code)) | 3235 file.Write(" if (%s) {\n" % " ||\n ".join(code)) |
| 3291 for ndx,item in enumerate(states): | 3236 for ndx,item in enumerate(states): |
| 3292 file.Write(" state_.%s = %s;\n" % (item['name'], args[ndx].name)) | 3237 file.Write(" state_.%s = %s;\n" % (item['name'], args[ndx].name)) |
| 3293 if 'state_flag' in state: | 3238 if 'state_flag' in state: |
| 3294 file.Write(" %s = true;\n" % state['state_flag']) | 3239 file.Write(" %s = true;\n" % state['state_flag']) |
| 3295 if not func.GetInfo("no_gl"): | 3240 if not func.GetInfo("no_gl"): |
| 3296 for ndx,item in enumerate(states): | |
| 3297 if item.get('cached', False): | |
| 3298 file.Write(" state_.%s = %s;\n" % | |
| 3299 (CachedStateName(item), args[ndx].name)) | |
| 3300 file.Write(" %s(%s);\n" % | 3241 file.Write(" %s(%s);\n" % |
| 3301 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) | 3242 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) |
| 3302 file.Write(" }\n") | 3243 file.Write(" }\n") |
| 3303 | 3244 |
| 3304 def WriteServiceUnitTest(self, func, file): | 3245 def WriteServiceUnitTest(self, func, file): |
| 3305 """Overrriden from TypeHandler.""" | 3246 """Overrriden from TypeHandler.""" |
| 3306 TypeHandler.WriteServiceUnitTest(self, func, file) | 3247 TypeHandler.WriteServiceUnitTest(self, func, file) |
| 3307 state_name = func.GetInfo('state') | 3248 state_name = func.GetInfo('state') |
| 3308 state = _STATES[state_name] | 3249 state = _STATES[state_name] |
| 3309 states = state['states'] | 3250 states = state['states'] |
| 3310 for ndx,item in enumerate(states): | 3251 for ndx,item in enumerate(states): |
| 3311 if 'range_checks' in item: | 3252 if 'range_checks' in item: |
| 3312 for check_ndx, range_check in enumerate(item['range_checks']): | 3253 for check_ndx, range_check in enumerate(item['range_checks']): |
| 3313 valid_test = """ | 3254 valid_test = """ |
| 3314 TEST_P(%(test_name)s, %(name)sInvalidValue%(ndx)d_%(check_ndx)d) { | 3255 TEST_F(%(test_name)s, %(name)sInvalidValue%(ndx)d_%(check_ndx)d) { |
| 3315 SpecializedSetup<cmds::%(name)s, 0>(false); | 3256 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 3316 cmds::%(name)s cmd; | 3257 cmds::%(name)s cmd; |
| 3317 cmd.Init(%(args)s); | 3258 cmd.Init(%(args)s); |
| 3318 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3259 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 3319 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); | 3260 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 3320 } | 3261 } |
| 3321 """ | 3262 """ |
| 3322 name = func.name | 3263 name = func.name |
| 3323 arg_strings = [] | 3264 arg_strings = [] |
| 3324 for count, arg in enumerate(func.GetOriginalArgs()): | 3265 for count, arg in enumerate(func.GetOriginalArgs()): |
| (...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3776 """Handler for glBind___ type functions.""" | 3717 """Handler for glBind___ type functions.""" |
| 3777 | 3718 |
| 3778 def __init__(self): | 3719 def __init__(self): |
| 3779 TypeHandler.__init__(self) | 3720 TypeHandler.__init__(self) |
| 3780 | 3721 |
| 3781 def WriteServiceUnitTest(self, func, file): | 3722 def WriteServiceUnitTest(self, func, file): |
| 3782 """Overrriden from TypeHandler.""" | 3723 """Overrriden from TypeHandler.""" |
| 3783 | 3724 |
| 3784 if len(func.GetOriginalArgs()) == 1: | 3725 if len(func.GetOriginalArgs()) == 1: |
| 3785 valid_test = """ | 3726 valid_test = """ |
| 3786 TEST_P(%(test_name)s, %(name)sValidArgs) { | 3727 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 3787 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 3728 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
| 3788 SpecializedSetup<cmds::%(name)s, 0>(true); | 3729 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 3789 cmds::%(name)s cmd; | 3730 cmds::%(name)s cmd; |
| 3790 cmd.Init(%(args)s); | 3731 cmd.Init(%(args)s); |
| 3791 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3732 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 3792 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3733 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3793 } | 3734 } |
| 3794 """ | 3735 """ |
| 3795 if func.GetInfo("gen_func"): | 3736 if func.GetInfo("gen_func"): |
| 3796 valid_test += """ | 3737 valid_test += """ |
| 3797 TEST_P(%(test_name)s, %(name)sValidArgsNewId) { | 3738 TEST_F(%(test_name)s, %(name)sValidArgsNewId) { |
| 3798 EXPECT_CALL(*gl_, %(gl_func_name)s(kNewServiceId)); | 3739 EXPECT_CALL(*gl_, %(gl_func_name)s(kNewServiceId)); |
| 3799 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) | 3740 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) |
| 3800 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 3741 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); |
| 3801 SpecializedSetup<cmds::%(name)s, 0>(true); | 3742 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 3802 cmds::%(name)s cmd; | 3743 cmds::%(name)s cmd; |
| 3803 cmd.Init(kNewClientId); | 3744 cmd.Init(kNewClientId); |
| 3804 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3745 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 3805 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3746 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3806 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); | 3747 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); |
| 3807 } | 3748 } |
| 3808 """ | 3749 """ |
| 3809 self.WriteValidUnitTest(func, file, valid_test, { | 3750 self.WriteValidUnitTest(func, file, valid_test, { |
| 3810 'resource_type': func.GetOriginalArgs()[0].resource_type, | 3751 'resource_type': func.GetOriginalArgs()[0].resource_type, |
| 3811 'gl_gen_func_name': func.GetInfo("gen_func"), | 3752 'gl_gen_func_name': func.GetInfo("gen_func"), |
| 3812 }) | 3753 }) |
| 3813 else: | 3754 else: |
| 3814 valid_test = """ | 3755 valid_test = """ |
| 3815 TEST_P(%(test_name)s, %(name)sValidArgs) { | 3756 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 3816 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 3757 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
| 3817 SpecializedSetup<cmds::%(name)s, 0>(true); | 3758 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 3818 cmds::%(name)s cmd; | 3759 cmds::%(name)s cmd; |
| 3819 cmd.Init(%(args)s); | 3760 cmd.Init(%(args)s); |
| 3820 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3761 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 3821 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3762 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3822 } | 3763 } |
| 3823 """ | 3764 """ |
| 3824 if func.GetInfo("gen_func"): | 3765 if func.GetInfo("gen_func"): |
| 3825 valid_test += """ | 3766 valid_test += """ |
| 3826 TEST_P(%(test_name)s, %(name)sValidArgsNewId) { | 3767 TEST_F(%(test_name)s, %(name)sValidArgsNewId) { |
| 3827 EXPECT_CALL(*gl_, %(gl_func_name)s(%(first_gl_arg)s, kNewServiceId)); | 3768 EXPECT_CALL(*gl_, %(gl_func_name)s(%(first_gl_arg)s, kNewServiceId)); |
| 3828 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) | 3769 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) |
| 3829 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 3770 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); |
| 3830 SpecializedSetup<cmds::%(name)s, 0>(true); | 3771 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 3831 cmds::%(name)s cmd; | 3772 cmds::%(name)s cmd; |
| 3832 cmd.Init(%(first_arg)s, kNewClientId); | 3773 cmd.Init(%(first_arg)s, kNewClientId); |
| 3833 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3774 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 3834 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3775 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 3835 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); | 3776 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); |
| 3836 } | 3777 } |
| 3837 """ | 3778 """ |
| 3838 self.WriteValidUnitTest(func, file, valid_test, { | 3779 self.WriteValidUnitTest(func, file, valid_test, { |
| 3839 'first_arg': func.GetOriginalArgs()[0].GetValidArg(func, 0, 0), | 3780 'first_arg': func.GetOriginalArgs()[0].GetValidArg(func, 0, 0), |
| 3840 'first_gl_arg': func.GetOriginalArgs()[0].GetValidGLArg(func, 0, 0), | 3781 'first_gl_arg': func.GetOriginalArgs()[0].GetValidGLArg(func, 0, 0), |
| 3841 'resource_type': func.GetOriginalArgs()[1].resource_type, | 3782 'resource_type': func.GetOriginalArgs()[1].resource_type, |
| 3842 'gl_gen_func_name': func.GetInfo("gen_func"), | 3783 'gl_gen_func_name': func.GetInfo("gen_func"), |
| 3843 }) | 3784 }) |
| 3844 | 3785 |
| 3845 invalid_test = """ | 3786 invalid_test = """ |
| 3846 TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 3787 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
| 3847 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 3788 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
| 3848 SpecializedSetup<cmds::%(name)s, 0>(false); | 3789 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 3849 cmds::%(name)s cmd; | 3790 cmds::%(name)s cmd; |
| 3850 cmd.Init(%(args)s); | 3791 cmd.Init(%(args)s); |
| 3851 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s | 3792 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s |
| 3852 } | 3793 } |
| 3853 """ | 3794 """ |
| 3854 self.WriteInvalidUnitTest(func, file, invalid_test) | 3795 self.WriteInvalidUnitTest(func, file, invalid_test) |
| 3855 | 3796 |
| 3856 def WriteGLES2Implementation(self, func, file): | 3797 def WriteGLES2Implementation(self, func, file): |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4023 } | 3964 } |
| 4024 """ | 3965 """ |
| 4025 file.Write(code % { | 3966 file.Write(code % { |
| 4026 'name': func.name, | 3967 'name': func.name, |
| 4027 'types': func.GetInfo('resource_types'), | 3968 'types': func.GetInfo('resource_types'), |
| 4028 }) | 3969 }) |
| 4029 | 3970 |
| 4030 def WriteServiceUnitTest(self, func, file): | 3971 def WriteServiceUnitTest(self, func, file): |
| 4031 """Overrriden from TypeHandler.""" | 3972 """Overrriden from TypeHandler.""" |
| 4032 valid_test = """ | 3973 valid_test = """ |
| 4033 TEST_P(%(test_name)s, %(name)sValidArgs) { | 3974 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 4034 EXPECT_CALL(*gl_, %(gl_func_name)s(1, _)) | 3975 EXPECT_CALL(*gl_, %(gl_func_name)s(1, _)) |
| 4035 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 3976 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); |
| 4036 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; | 3977 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; |
| 4037 SpecializedSetup<cmds::%(name)s, 0>(true); | 3978 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 4038 cmds::%(name)s cmd; | 3979 cmds::%(name)s cmd; |
| 4039 cmd.Init(%(args)s); | 3980 cmd.Init(%(args)s); |
| 4040 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 3981 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 4041 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3982 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 4042 EXPECT_TRUE(Get%(resource_name)s(kNewClientId) != NULL); | 3983 EXPECT_TRUE(Get%(resource_name)s(kNewClientId) != NULL); |
| 4043 } | 3984 } |
| 4044 """ | 3985 """ |
| 4045 self.WriteValidUnitTest(func, file, valid_test, { | 3986 self.WriteValidUnitTest(func, file, valid_test, { |
| 4046 'resource_name': func.GetInfo('resource_type'), | 3987 'resource_name': func.GetInfo('resource_type'), |
| 4047 }) | 3988 }) |
| 4048 invalid_test = """ | 3989 invalid_test = """ |
| 4049 TEST_P(%(test_name)s, %(name)sInvalidArgs) { | 3990 TEST_F(%(test_name)s, %(name)sInvalidArgs) { |
| 4050 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _)).Times(0); | 3991 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _)).Times(0); |
| 4051 GetSharedMemoryAs<GLuint*>()[0] = client_%(resource_name)s_id_; | 3992 GetSharedMemoryAs<GLuint*>()[0] = client_%(resource_name)s_id_; |
| 4052 SpecializedSetup<cmds::%(name)s, 0>(false); | 3993 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 4053 cmds::%(name)s cmd; | 3994 cmds::%(name)s cmd; |
| 4054 cmd.Init(%(args)s); | 3995 cmd.Init(%(args)s); |
| 4055 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); | 3996 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); |
| 4056 } | 3997 } |
| 4057 """ | 3998 """ |
| 4058 self.WriteValidUnitTest(func, file, invalid_test, { | 3999 self.WriteValidUnitTest(func, file, invalid_test, { |
| 4059 'resource_name': func.GetInfo('resource_type').lower(), | 4000 'resource_name': func.GetInfo('resource_type').lower(), |
| 4060 }) | 4001 }) |
| 4061 | 4002 |
| 4062 def WriteImmediateServiceUnitTest(self, func, file): | 4003 def WriteImmediateServiceUnitTest(self, func, file): |
| 4063 """Overrriden from TypeHandler.""" | 4004 """Overrriden from TypeHandler.""" |
| 4064 valid_test = """ | 4005 valid_test = """ |
| 4065 TEST_P(%(test_name)s, %(name)sValidArgs) { | 4006 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 4066 EXPECT_CALL(*gl_, %(gl_func_name)s(1, _)) | 4007 EXPECT_CALL(*gl_, %(gl_func_name)s(1, _)) |
| 4067 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 4008 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); |
| 4068 cmds::%(name)s* cmd = GetImmediateAs<cmds::%(name)s>(); | 4009 cmds::%(name)s* cmd = GetImmediateAs<cmds::%(name)s>(); |
| 4069 GLuint temp = kNewClientId; | 4010 GLuint temp = kNewClientId; |
| 4070 SpecializedSetup<cmds::%(name)s, 0>(true); | 4011 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 4071 cmd->Init(1, &temp); | 4012 cmd->Init(1, &temp); |
| 4072 EXPECT_EQ(error::kNoError, | 4013 EXPECT_EQ(error::kNoError, |
| 4073 ExecuteImmediateCmd(*cmd, sizeof(temp))); | 4014 ExecuteImmediateCmd(*cmd, sizeof(temp))); |
| 4074 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4015 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 4075 EXPECT_TRUE(Get%(resource_name)s(kNewClientId) != NULL); | 4016 EXPECT_TRUE(Get%(resource_name)s(kNewClientId) != NULL); |
| 4076 } | 4017 } |
| 4077 """ | 4018 """ |
| 4078 self.WriteValidUnitTest(func, file, valid_test, { | 4019 self.WriteValidUnitTest(func, file, valid_test, { |
| 4079 'resource_name': func.GetInfo('resource_type'), | 4020 'resource_name': func.GetInfo('resource_type'), |
| 4080 }) | 4021 }) |
| 4081 invalid_test = """ | 4022 invalid_test = """ |
| 4082 TEST_P(%(test_name)s, %(name)sInvalidArgs) { | 4023 TEST_F(%(test_name)s, %(name)sInvalidArgs) { |
| 4083 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _)).Times(0); | 4024 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _)).Times(0); |
| 4084 cmds::%(name)s* cmd = GetImmediateAs<cmds::%(name)s>(); | 4025 cmds::%(name)s* cmd = GetImmediateAs<cmds::%(name)s>(); |
| 4085 SpecializedSetup<cmds::%(name)s, 0>(false); | 4026 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 4086 cmd->Init(1, &client_%(resource_name)s_id_); | 4027 cmd->Init(1, &client_%(resource_name)s_id_); |
| 4087 EXPECT_EQ(error::kInvalidArguments, | 4028 EXPECT_EQ(error::kInvalidArguments, |
| 4088 ExecuteImmediateCmd(*cmd, sizeof(&client_%(resource_name)s_id_))); | 4029 ExecuteImmediateCmd(*cmd, sizeof(&client_%(resource_name)s_id_))); |
| 4089 } | 4030 } |
| 4090 """ | 4031 """ |
| 4091 self.WriteValidUnitTest(func, file, invalid_test, { | 4032 self.WriteValidUnitTest(func, file, invalid_test, { |
| 4092 'resource_name': func.GetInfo('resource_type').lower(), | 4033 'resource_name': func.GetInfo('resource_type').lower(), |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4189 def __init__(self): | 4130 def __init__(self): |
| 4190 TypeHandler.__init__(self) | 4131 TypeHandler.__init__(self) |
| 4191 | 4132 |
| 4192 def InitFunction(self, func): | 4133 def InitFunction(self, func): |
| 4193 """Overrriden from TypeHandler.""" | 4134 """Overrriden from TypeHandler.""" |
| 4194 func.AddCmdArg(Argument("client_id", 'uint32')) | 4135 func.AddCmdArg(Argument("client_id", 'uint32')) |
| 4195 | 4136 |
| 4196 def WriteServiceUnitTest(self, func, file): | 4137 def WriteServiceUnitTest(self, func, file): |
| 4197 """Overrriden from TypeHandler.""" | 4138 """Overrriden from TypeHandler.""" |
| 4198 valid_test = """ | 4139 valid_test = """ |
| 4199 TEST_P(%(test_name)s, %(name)sValidArgs) { | 4140 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 4200 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) | 4141 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) |
| 4201 .WillOnce(Return(kNewServiceId)); | 4142 .WillOnce(Return(kNewServiceId)); |
| 4202 SpecializedSetup<cmds::%(name)s, 0>(true); | 4143 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 4203 cmds::%(name)s cmd; | 4144 cmds::%(name)s cmd; |
| 4204 cmd.Init(%(args)s%(comma)skNewClientId); | 4145 cmd.Init(%(args)s%(comma)skNewClientId); |
| 4205 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4146 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 4206 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4147 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 4207 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); | 4148 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); |
| 4208 } | 4149 } |
| 4209 """ | 4150 """ |
| 4210 comma = "" | 4151 comma = "" |
| 4211 if len(func.GetOriginalArgs()): | 4152 if len(func.GetOriginalArgs()): |
| 4212 comma =", " | 4153 comma =", " |
| 4213 self.WriteValidUnitTest(func, file, valid_test, { | 4154 self.WriteValidUnitTest(func, file, valid_test, { |
| 4214 'comma': comma, | 4155 'comma': comma, |
| 4215 'resource_type': func.name[6:], | 4156 'resource_type': func.name[6:], |
| 4216 }) | 4157 }) |
| 4217 invalid_test = """ | 4158 invalid_test = """ |
| 4218 TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 4159 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
| 4219 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 4160 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
| 4220 SpecializedSetup<cmds::%(name)s, 0>(false); | 4161 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 4221 cmds::%(name)s cmd; | 4162 cmds::%(name)s cmd; |
| 4222 cmd.Init(%(args)s%(comma)skNewClientId); | 4163 cmd.Init(%(args)s%(comma)skNewClientId); |
| 4223 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));%(gl_error_test)s | 4164 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));%(gl_error_test)s |
| 4224 } | 4165 } |
| 4225 """ | 4166 """ |
| 4226 self.WriteInvalidUnitTest(func, file, invalid_test, { | 4167 self.WriteInvalidUnitTest(func, file, invalid_test, { |
| 4227 'comma': comma, | 4168 'comma': comma, |
| 4228 }) | 4169 }) |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4320 } | 4261 } |
| 4321 """ | 4262 """ |
| 4322 file.Write(code % { | 4263 file.Write(code % { |
| 4323 'name': func.name, | 4264 'name': func.name, |
| 4324 'types': func.GetInfo('resource_types'), | 4265 'types': func.GetInfo('resource_types'), |
| 4325 }) | 4266 }) |
| 4326 | 4267 |
| 4327 def WriteServiceUnitTest(self, func, file): | 4268 def WriteServiceUnitTest(self, func, file): |
| 4328 """Overrriden from TypeHandler.""" | 4269 """Overrriden from TypeHandler.""" |
| 4329 valid_test = """ | 4270 valid_test = """ |
| 4330 TEST_P(%(test_name)s, %(name)sValidArgs) { | 4271 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 4331 EXPECT_CALL( | 4272 EXPECT_CALL( |
| 4332 *gl_, | 4273 *gl_, |
| 4333 %(gl_func_name)s(1, Pointee(kService%(upper_resource_name)sId))) | 4274 %(gl_func_name)s(1, Pointee(kService%(upper_resource_name)sId))) |
| 4334 .Times(1); | 4275 .Times(1); |
| 4335 GetSharedMemoryAs<GLuint*>()[0] = client_%(resource_name)s_id_; | 4276 GetSharedMemoryAs<GLuint*>()[0] = client_%(resource_name)s_id_; |
| 4336 SpecializedSetup<cmds::%(name)s, 0>(true); | 4277 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 4337 cmds::%(name)s cmd; | 4278 cmds::%(name)s cmd; |
| 4338 cmd.Init(%(args)s); | 4279 cmd.Init(%(args)s); |
| 4339 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4280 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 4340 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4281 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 4341 EXPECT_TRUE( | 4282 EXPECT_TRUE( |
| 4342 Get%(upper_resource_name)s(client_%(resource_name)s_id_) == NULL); | 4283 Get%(upper_resource_name)s(client_%(resource_name)s_id_) == NULL); |
| 4343 } | 4284 } |
| 4344 """ | 4285 """ |
| 4345 self.WriteValidUnitTest(func, file, valid_test, { | 4286 self.WriteValidUnitTest(func, file, valid_test, { |
| 4346 'resource_name': func.GetInfo('resource_type').lower(), | 4287 'resource_name': func.GetInfo('resource_type').lower(), |
| 4347 'upper_resource_name': func.GetInfo('resource_type'), | 4288 'upper_resource_name': func.GetInfo('resource_type'), |
| 4348 }) | 4289 }) |
| 4349 invalid_test = """ | 4290 invalid_test = """ |
| 4350 TEST_P(%(test_name)s, %(name)sInvalidArgs) { | 4291 TEST_F(%(test_name)s, %(name)sInvalidArgs) { |
| 4351 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; | 4292 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; |
| 4352 SpecializedSetup<cmds::%(name)s, 0>(false); | 4293 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 4353 cmds::%(name)s cmd; | 4294 cmds::%(name)s cmd; |
| 4354 cmd.Init(%(args)s); | 4295 cmd.Init(%(args)s); |
| 4355 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4296 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 4356 } | 4297 } |
| 4357 """ | 4298 """ |
| 4358 self.WriteValidUnitTest(func, file, invalid_test) | 4299 self.WriteValidUnitTest(func, file, invalid_test) |
| 4359 | 4300 |
| 4360 def WriteImmediateServiceUnitTest(self, func, file): | 4301 def WriteImmediateServiceUnitTest(self, func, file): |
| 4361 """Overrriden from TypeHandler.""" | 4302 """Overrriden from TypeHandler.""" |
| 4362 valid_test = """ | 4303 valid_test = """ |
| 4363 TEST_P(%(test_name)s, %(name)sValidArgs) { | 4304 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 4364 EXPECT_CALL( | 4305 EXPECT_CALL( |
| 4365 *gl_, | 4306 *gl_, |
| 4366 %(gl_func_name)s(1, Pointee(kService%(upper_resource_name)sId))) | 4307 %(gl_func_name)s(1, Pointee(kService%(upper_resource_name)sId))) |
| 4367 .Times(1); | 4308 .Times(1); |
| 4368 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); | 4309 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
| 4369 SpecializedSetup<cmds::%(name)s, 0>(true); | 4310 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 4370 cmd.Init(1, &client_%(resource_name)s_id_); | 4311 cmd.Init(1, &client_%(resource_name)s_id_); |
| 4371 EXPECT_EQ(error::kNoError, | 4312 EXPECT_EQ(error::kNoError, |
| 4372 ExecuteImmediateCmd(cmd, sizeof(client_%(resource_name)s_id_))); | 4313 ExecuteImmediateCmd(cmd, sizeof(client_%(resource_name)s_id_))); |
| 4373 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4314 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 4374 EXPECT_TRUE( | 4315 EXPECT_TRUE( |
| 4375 Get%(upper_resource_name)s(client_%(resource_name)s_id_) == NULL); | 4316 Get%(upper_resource_name)s(client_%(resource_name)s_id_) == NULL); |
| 4376 } | 4317 } |
| 4377 """ | 4318 """ |
| 4378 self.WriteValidUnitTest(func, file, valid_test, { | 4319 self.WriteValidUnitTest(func, file, valid_test, { |
| 4379 'resource_name': func.GetInfo('resource_type').lower(), | 4320 'resource_name': func.GetInfo('resource_type').lower(), |
| 4380 'upper_resource_name': func.GetInfo('resource_type'), | 4321 'upper_resource_name': func.GetInfo('resource_type'), |
| 4381 }) | 4322 }) |
| 4382 invalid_test = """ | 4323 invalid_test = """ |
| 4383 TEST_P(%(test_name)s, %(name)sInvalidArgs) { | 4324 TEST_F(%(test_name)s, %(name)sInvalidArgs) { |
| 4384 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); | 4325 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
| 4385 SpecializedSetup<cmds::%(name)s, 0>(false); | 4326 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 4386 GLuint temp = kInvalidClientId; | 4327 GLuint temp = kInvalidClientId; |
| 4387 cmd.Init(1, &temp); | 4328 cmd.Init(1, &temp); |
| 4388 EXPECT_EQ(error::kNoError, | 4329 EXPECT_EQ(error::kNoError, |
| 4389 ExecuteImmediateCmd(cmd, sizeof(temp))); | 4330 ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 4390 } | 4331 } |
| 4391 """ | 4332 """ |
| 4392 self.WriteValidUnitTest(func, file, invalid_test) | 4333 self.WriteValidUnitTest(func, file, invalid_test) |
| 4393 | 4334 |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4669 gl_arg_strings[0] = '123' | 4610 gl_arg_strings[0] = '123' |
| 4670 file.Write(code % { | 4611 file.Write(code % { |
| 4671 'name': func.name, | 4612 'name': func.name, |
| 4672 'args': ", ".join(gl_arg_strings), | 4613 'args': ", ".join(gl_arg_strings), |
| 4673 'cmd_args': ", ".join(cmd_arg_strings), | 4614 'cmd_args': ", ".join(cmd_arg_strings), |
| 4674 }) | 4615 }) |
| 4675 | 4616 |
| 4676 def WriteServiceUnitTest(self, func, file): | 4617 def WriteServiceUnitTest(self, func, file): |
| 4677 """Overrriden from TypeHandler.""" | 4618 """Overrriden from TypeHandler.""" |
| 4678 valid_test = """ | 4619 valid_test = """ |
| 4679 TEST_P(%(test_name)s, %(name)sValidArgs) { | 4620 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 4680 EXPECT_CALL(*gl_, GetError()) | 4621 EXPECT_CALL(*gl_, GetError()) |
| 4681 .WillOnce(Return(GL_NO_ERROR)) | 4622 .WillOnce(Return(GL_NO_ERROR)) |
| 4682 .WillOnce(Return(GL_NO_ERROR)) | 4623 .WillOnce(Return(GL_NO_ERROR)) |
| 4683 .RetiresOnSaturation(); | 4624 .RetiresOnSaturation(); |
| 4684 SpecializedSetup<cmds::%(name)s, 0>(true); | 4625 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 4685 typedef cmds::%(name)s::Result Result; | 4626 typedef cmds::%(name)s::Result Result; |
| 4686 Result* result = static_cast<Result*>(shared_memory_address_); | 4627 Result* result = static_cast<Result*>(shared_memory_address_); |
| 4687 EXPECT_CALL(*gl_, %(gl_func_name)s(%(local_gl_args)s)); | 4628 EXPECT_CALL(*gl_, %(gl_func_name)s(%(local_gl_args)s)); |
| 4688 result->size = 0; | 4629 result->size = 0; |
| 4689 cmds::%(name)s cmd; | 4630 cmds::%(name)s cmd; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 4706 gl_arg_strings.append("_") | 4647 gl_arg_strings.append("_") |
| 4707 else: | 4648 else: |
| 4708 gl_arg_strings.append("result->GetData()") | 4649 gl_arg_strings.append("result->GetData()") |
| 4709 | 4650 |
| 4710 self.WriteValidUnitTest(func, file, valid_test, { | 4651 self.WriteValidUnitTest(func, file, valid_test, { |
| 4711 'local_gl_args': ", ".join(gl_arg_strings), | 4652 'local_gl_args': ", ".join(gl_arg_strings), |
| 4712 'valid_pname': valid_pname, | 4653 'valid_pname': valid_pname, |
| 4713 }) | 4654 }) |
| 4714 | 4655 |
| 4715 invalid_test = """ | 4656 invalid_test = """ |
| 4716 TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 4657 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
| 4717 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 4658 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
| 4718 SpecializedSetup<cmds::%(name)s, 0>(false); | 4659 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 4719 cmds::%(name)s::Result* result = | 4660 cmds::%(name)s::Result* result = |
| 4720 static_cast<cmds::%(name)s::Result*>(shared_memory_address_); | 4661 static_cast<cmds::%(name)s::Result*>(shared_memory_address_); |
| 4721 result->size = 0; | 4662 result->size = 0; |
| 4722 cmds::%(name)s cmd; | 4663 cmds::%(name)s cmd; |
| 4723 cmd.Init(%(args)s); | 4664 cmd.Init(%(args)s); |
| 4724 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd)); | 4665 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd)); |
| 4725 EXPECT_EQ(0u, result->size);%(gl_error_test)s | 4666 EXPECT_EQ(0u, result->size);%(gl_error_test)s |
| 4726 } | 4667 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 4738 """Writes the service unit test for a command.""" | 4679 """Writes the service unit test for a command.""" |
| 4739 expected_call = "EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s));" | 4680 expected_call = "EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s));" |
| 4740 if func.GetInfo("first_element_only"): | 4681 if func.GetInfo("first_element_only"): |
| 4741 gl_arg_strings = [] | 4682 gl_arg_strings = [] |
| 4742 for count, arg in enumerate(func.GetOriginalArgs()): | 4683 for count, arg in enumerate(func.GetOriginalArgs()): |
| 4743 gl_arg_strings.append(arg.GetValidGLArg(func, count, 0)) | 4684 gl_arg_strings.append(arg.GetValidGLArg(func, count, 0)) |
| 4744 gl_arg_strings[-1] = "*" + gl_arg_strings[-1] | 4685 gl_arg_strings[-1] = "*" + gl_arg_strings[-1] |
| 4745 expected_call = ("EXPECT_CALL(*gl_, %%(gl_func_name)s(%s));" % | 4686 expected_call = ("EXPECT_CALL(*gl_, %%(gl_func_name)s(%s));" % |
| 4746 ", ".join(gl_arg_strings)) | 4687 ", ".join(gl_arg_strings)) |
| 4747 valid_test = """ | 4688 valid_test = """ |
| 4748 TEST_P(%(test_name)s, %(name)sValidArgs) { | 4689 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 4749 SpecializedSetup<cmds::%(name)s, 0>(true); | 4690 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 4750 cmds::%(name)s cmd; | 4691 cmds::%(name)s cmd; |
| 4751 cmd.Init(%(args)s); | 4692 cmd.Init(%(args)s); |
| 4752 GetSharedMemoryAs<%(data_type)s*>()[0] = %(data_value)s; | 4693 GetSharedMemoryAs<%(data_type)s*>()[0] = %(data_value)s; |
| 4753 %(expected_call)s | 4694 %(expected_call)s |
| 4754 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4695 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 4755 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4696 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 4756 } | 4697 } |
| 4757 """ | 4698 """ |
| 4758 extra = { | 4699 extra = { |
| 4759 'data_type': func.GetInfo('data_type'), | 4700 'data_type': func.GetInfo('data_type'), |
| 4760 'data_value': func.GetInfo('data_value') or '0', | 4701 'data_value': func.GetInfo('data_value') or '0', |
| 4761 'expected_call': expected_call, | 4702 'expected_call': expected_call, |
| 4762 } | 4703 } |
| 4763 self.WriteValidUnitTest(func, file, valid_test, extra) | 4704 self.WriteValidUnitTest(func, file, valid_test, extra) |
| 4764 | 4705 |
| 4765 invalid_test = """ | 4706 invalid_test = """ |
| 4766 TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 4707 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
| 4767 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 4708 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
| 4768 SpecializedSetup<cmds::%(name)s, 0>(false); | 4709 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 4769 cmds::%(name)s cmd; | 4710 cmds::%(name)s cmd; |
| 4770 cmd.Init(%(args)s); | 4711 cmd.Init(%(args)s); |
| 4771 GetSharedMemoryAs<%(data_type)s*>()[0] = %(data_value)s; | 4712 GetSharedMemoryAs<%(data_type)s*>()[0] = %(data_value)s; |
| 4772 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s | 4713 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s |
| 4773 } | 4714 } |
| 4774 """ | 4715 """ |
| 4775 self.WriteInvalidUnitTest(func, file, invalid_test, extra) | 4716 self.WriteInvalidUnitTest(func, file, invalid_test, extra) |
| 4776 | 4717 |
| 4777 def WriteImmediateServiceUnitTest(self, func, file): | 4718 def WriteImmediateServiceUnitTest(self, func, file): |
| 4778 """Writes the service unit test for a command.""" | 4719 """Writes the service unit test for a command.""" |
| 4779 valid_test = """ | 4720 valid_test = """ |
| 4780 TEST_P(%(test_name)s, %(name)sValidArgs) { | 4721 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 4781 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); | 4722 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
| 4782 SpecializedSetup<cmds::%(name)s, 0>(true); | 4723 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 4783 %(data_type)s temp[%(data_count)s] = { %(data_value)s, }; | 4724 %(data_type)s temp[%(data_count)s] = { %(data_value)s, }; |
| 4784 cmd.Init(%(gl_args)s, &temp[0]); | 4725 cmd.Init(%(gl_args)s, &temp[0]); |
| 4785 EXPECT_CALL( | 4726 EXPECT_CALL( |
| 4786 *gl_, | 4727 *gl_, |
| 4787 %(gl_func_name)s(%(gl_args)s, %(data_ref)sreinterpret_cast< | 4728 %(gl_func_name)s(%(gl_args)s, %(data_ref)sreinterpret_cast< |
| 4788 %(data_type)s*>(ImmediateDataAddress(&cmd)))); | 4729 %(data_type)s*>(ImmediateDataAddress(&cmd)))); |
| 4789 EXPECT_EQ(error::kNoError, | 4730 EXPECT_EQ(error::kNoError, |
| 4790 ExecuteImmediateCmd(cmd, sizeof(temp))); | 4731 ExecuteImmediateCmd(cmd, sizeof(temp))); |
| 4791 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4732 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 4792 } | 4733 } |
| 4793 """ | 4734 """ |
| 4794 gl_arg_strings = [] | 4735 gl_arg_strings = [] |
| 4795 gl_any_strings = [] | 4736 gl_any_strings = [] |
| 4796 for count, arg in enumerate(func.GetOriginalArgs()[0:-1]): | 4737 for count, arg in enumerate(func.GetOriginalArgs()[0:-1]): |
| 4797 gl_arg_strings.append(arg.GetValidGLArg(func, count, 0)) | 4738 gl_arg_strings.append(arg.GetValidGLArg(func, count, 0)) |
| 4798 gl_any_strings.append("_") | 4739 gl_any_strings.append("_") |
| 4799 extra = { | 4740 extra = { |
| 4800 'data_ref': ("*" if func.GetInfo('first_element_only') else ""), | 4741 'data_ref': ("*" if func.GetInfo('first_element_only') else ""), |
| 4801 'data_type': func.GetInfo('data_type'), | 4742 'data_type': func.GetInfo('data_type'), |
| 4802 'data_count': func.GetInfo('count'), | 4743 'data_count': func.GetInfo('count'), |
| 4803 'data_value': func.GetInfo('data_value') or '0', | 4744 'data_value': func.GetInfo('data_value') or '0', |
| 4804 'gl_args': ", ".join(gl_arg_strings), | 4745 'gl_args': ", ".join(gl_arg_strings), |
| 4805 'gl_any_args': ", ".join(gl_any_strings), | 4746 'gl_any_args': ", ".join(gl_any_strings), |
| 4806 } | 4747 } |
| 4807 self.WriteValidUnitTest(func, file, valid_test, extra) | 4748 self.WriteValidUnitTest(func, file, valid_test, extra) |
| 4808 | 4749 |
| 4809 invalid_test = """ | 4750 invalid_test = """ |
| 4810 TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 4751 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
| 4811 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); | 4752 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
| 4812 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_any_args)s, _)).Times(0); | 4753 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_any_args)s, _)).Times(0); |
| 4813 SpecializedSetup<cmds::%(name)s, 0>(false); | 4754 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 4814 %(data_type)s temp[%(data_count)s] = { %(data_value)s, }; | 4755 %(data_type)s temp[%(data_count)s] = { %(data_value)s, }; |
| 4815 cmd.Init(%(all_but_last_args)s, &temp[0]); | 4756 cmd.Init(%(all_but_last_args)s, &temp[0]); |
| 4816 EXPECT_EQ(error::%(parse_result)s, | 4757 EXPECT_EQ(error::%(parse_result)s, |
| 4817 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s | 4758 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s |
| 4818 } | 4759 } |
| 4819 """ | 4760 """ |
| 4820 self.WriteInvalidUnitTest(func, file, invalid_test, extra) | 4761 self.WriteInvalidUnitTest(func, file, invalid_test, extra) |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5001 """Handler for PUTn 'glUniform__v' type functions.""" | 4942 """Handler for PUTn 'glUniform__v' type functions.""" |
| 5002 | 4943 |
| 5003 def __init__(self): | 4944 def __init__(self): |
| 5004 TypeHandler.__init__(self) | 4945 TypeHandler.__init__(self) |
| 5005 | 4946 |
| 5006 def WriteServiceUnitTest(self, func, file): | 4947 def WriteServiceUnitTest(self, func, file): |
| 5007 """Overridden from TypeHandler.""" | 4948 """Overridden from TypeHandler.""" |
| 5008 TypeHandler.WriteServiceUnitTest(self, func, file) | 4949 TypeHandler.WriteServiceUnitTest(self, func, file) |
| 5009 | 4950 |
| 5010 valid_test = """ | 4951 valid_test = """ |
| 5011 TEST_P(%(test_name)s, %(name)sValidArgsCountTooLarge) { | 4952 TEST_F(%(test_name)s, %(name)sValidArgsCountTooLarge) { |
| 5012 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 4953 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
| 5013 SpecializedSetup<cmds::%(name)s, 0>(true); | 4954 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 5014 cmds::%(name)s cmd; | 4955 cmds::%(name)s cmd; |
| 5015 cmd.Init(%(args)s); | 4956 cmd.Init(%(args)s); |
| 5016 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4957 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 5017 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 4958 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 5018 } | 4959 } |
| 5019 """ | 4960 """ |
| 5020 gl_arg_strings = [] | 4961 gl_arg_strings = [] |
| 5021 arg_strings = [] | 4962 arg_strings = [] |
| (...skipping 14 matching lines...) Expand all Loading... |
| 5036 arg_strings.append(arg.GetValidArg(func, count, 0)) | 4977 arg_strings.append(arg.GetValidArg(func, count, 0)) |
| 5037 extra = { | 4978 extra = { |
| 5038 'gl_args': ", ".join(gl_arg_strings), | 4979 'gl_args': ", ".join(gl_arg_strings), |
| 5039 'args': ", ".join(arg_strings), | 4980 'args': ", ".join(arg_strings), |
| 5040 } | 4981 } |
| 5041 self.WriteValidUnitTest(func, file, valid_test, extra) | 4982 self.WriteValidUnitTest(func, file, valid_test, extra) |
| 5042 | 4983 |
| 5043 def WriteImmediateServiceUnitTest(self, func, file): | 4984 def WriteImmediateServiceUnitTest(self, func, file): |
| 5044 """Overridden from TypeHandler.""" | 4985 """Overridden from TypeHandler.""" |
| 5045 valid_test = """ | 4986 valid_test = """ |
| 5046 TEST_P(%(test_name)s, %(name)sValidArgs) { | 4987 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 5047 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); | 4988 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
| 5048 EXPECT_CALL( | 4989 EXPECT_CALL( |
| 5049 *gl_, | 4990 *gl_, |
| 5050 %(gl_func_name)s(%(gl_args)s, | 4991 %(gl_func_name)s(%(gl_args)s, |
| 5051 reinterpret_cast<%(data_type)s*>(ImmediateDataAddress(&cmd)))); | 4992 reinterpret_cast<%(data_type)s*>(ImmediateDataAddress(&cmd)))); |
| 5052 SpecializedSetup<cmds::%(name)s, 0>(true); | 4993 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 5053 %(data_type)s temp[%(data_count)s * 2] = { 0, }; | 4994 %(data_type)s temp[%(data_count)s * 2] = { 0, }; |
| 5054 cmd.Init(%(args)s, &temp[0]); | 4995 cmd.Init(%(args)s, &temp[0]); |
| 5055 EXPECT_EQ(error::kNoError, | 4996 EXPECT_EQ(error::kNoError, |
| 5056 ExecuteImmediateCmd(cmd, sizeof(temp))); | 4997 ExecuteImmediateCmd(cmd, sizeof(temp))); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 5067 extra = { | 5008 extra = { |
| 5068 'data_type': func.GetInfo('data_type'), | 5009 'data_type': func.GetInfo('data_type'), |
| 5069 'data_count': func.GetInfo('count'), | 5010 'data_count': func.GetInfo('count'), |
| 5070 'args': ", ".join(arg_strings), | 5011 'args': ", ".join(arg_strings), |
| 5071 'gl_args': ", ".join(gl_arg_strings), | 5012 'gl_args': ", ".join(gl_arg_strings), |
| 5072 'gl_any_args': ", ".join(gl_any_strings), | 5013 'gl_any_args': ", ".join(gl_any_strings), |
| 5073 } | 5014 } |
| 5074 self.WriteValidUnitTest(func, file, valid_test, extra) | 5015 self.WriteValidUnitTest(func, file, valid_test, extra) |
| 5075 | 5016 |
| 5076 invalid_test = """ | 5017 invalid_test = """ |
| 5077 TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 5018 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
| 5078 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); | 5019 cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>(); |
| 5079 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_any_args)s, _)).Times(0); | 5020 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_any_args)s, _)).Times(0); |
| 5080 SpecializedSetup<cmds::%(name)s, 0>(false); | 5021 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 5081 %(data_type)s temp[%(data_count)s * 2] = { 0, }; | 5022 %(data_type)s temp[%(data_count)s * 2] = { 0, }; |
| 5082 cmd.Init(%(all_but_last_args)s, &temp[0]); | 5023 cmd.Init(%(all_but_last_args)s, &temp[0]); |
| 5083 EXPECT_EQ(error::%(parse_result)s, | 5024 EXPECT_EQ(error::%(parse_result)s, |
| 5084 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s | 5025 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s |
| 5085 } | 5026 } |
| 5086 """ | 5027 """ |
| 5087 self.WriteInvalidUnitTest(func, file, invalid_test, extra) | 5028 self.WriteInvalidUnitTest(func, file, invalid_test, extra) |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5297 'count': func.GetInfo('count'), | 5238 'count': func.GetInfo('count'), |
| 5298 'type': func.GetInfo('data_type'), | 5239 'type': func.GetInfo('data_type'), |
| 5299 'location': args[0].name, | 5240 'location': args[0].name, |
| 5300 'args': func.MakeOriginalArgString(""), | 5241 'args': func.MakeOriginalArgString(""), |
| 5301 'values': values, | 5242 'values': values, |
| 5302 }) | 5243 }) |
| 5303 | 5244 |
| 5304 def WriteServiceUnitTest(self, func, file): | 5245 def WriteServiceUnitTest(self, func, file): |
| 5305 """Overrriden from TypeHandler.""" | 5246 """Overrriden from TypeHandler.""" |
| 5306 valid_test = """ | 5247 valid_test = """ |
| 5307 TEST_P(%(test_name)s, %(name)sValidArgs) { | 5248 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 5308 EXPECT_CALL(*gl_, %(name)sv(%(local_args)s)); | 5249 EXPECT_CALL(*gl_, %(name)sv(%(local_args)s)); |
| 5309 SpecializedSetup<cmds::%(name)s, 0>(true); | 5250 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 5310 cmds::%(name)s cmd; | 5251 cmds::%(name)s cmd; |
| 5311 cmd.Init(%(args)s); | 5252 cmd.Init(%(args)s); |
| 5312 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5253 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 5313 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 5254 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 5314 } | 5255 } |
| 5315 """ | 5256 """ |
| 5316 args = func.GetOriginalArgs() | 5257 args = func.GetOriginalArgs() |
| 5317 local_args = "%s, 1, _" % args[0].GetValidGLArg(func, 0, 0) | 5258 local_args = "%s, 1, _" % args[0].GetValidGLArg(func, 0, 0) |
| 5318 self.WriteValidUnitTest(func, file, valid_test, { | 5259 self.WriteValidUnitTest(func, file, valid_test, { |
| 5319 'name': func.name, | 5260 'name': func.name, |
| 5320 'count': func.GetInfo('count'), | 5261 'count': func.GetInfo('count'), |
| 5321 'local_args': local_args, | 5262 'local_args': local_args, |
| 5322 }) | 5263 }) |
| 5323 | 5264 |
| 5324 invalid_test = """ | 5265 invalid_test = """ |
| 5325 TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 5266 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
| 5326 EXPECT_CALL(*gl_, %(name)sv(_, _, _).Times(0); | 5267 EXPECT_CALL(*gl_, %(name)sv(_, _, _).Times(0); |
| 5327 SpecializedSetup<cmds::%(name)s, 0>(false); | 5268 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 5328 cmds::%(name)s cmd; | 5269 cmds::%(name)s cmd; |
| 5329 cmd.Init(%(args)s); | 5270 cmd.Init(%(args)s); |
| 5330 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s | 5271 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s |
| 5331 } | 5272 } |
| 5332 """ | 5273 """ |
| 5333 self.WriteInvalidUnitTest(func, file, invalid_test, { | 5274 self.WriteInvalidUnitTest(func, file, invalid_test, { |
| 5334 'name': func.GetInfo('name'), | 5275 'name': func.GetInfo('name'), |
| 5335 'count': func.GetInfo('count'), | 5276 'count': func.GetInfo('count'), |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5506 def InitFunction(self, func): | 5447 def InitFunction(self, func): |
| 5507 """Overrriden from TypeHandler.""" | 5448 """Overrriden from TypeHandler.""" |
| 5508 func.AddCmdArg(Argument("result_shm_id", 'uint32')) | 5449 func.AddCmdArg(Argument("result_shm_id", 'uint32')) |
| 5509 func.AddCmdArg(Argument("result_shm_offset", 'uint32')) | 5450 func.AddCmdArg(Argument("result_shm_offset", 'uint32')) |
| 5510 if func.GetInfo('result') == None: | 5451 if func.GetInfo('result') == None: |
| 5511 func.AddInfo('result', ['uint32']) | 5452 func.AddInfo('result', ['uint32']) |
| 5512 | 5453 |
| 5513 def WriteServiceUnitTest(self, func, file): | 5454 def WriteServiceUnitTest(self, func, file): |
| 5514 """Overrriden from TypeHandler.""" | 5455 """Overrriden from TypeHandler.""" |
| 5515 valid_test = """ | 5456 valid_test = """ |
| 5516 TEST_P(%(test_name)s, %(name)sValidArgs) { | 5457 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 5517 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 5458 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
| 5518 SpecializedSetup<cmds::%(name)s, 0>(true); | 5459 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 5519 cmds::%(name)s cmd; | 5460 cmds::%(name)s cmd; |
| 5520 cmd.Init(%(args)s%(comma)sshared_memory_id_, shared_memory_offset_); | 5461 cmd.Init(%(args)s%(comma)sshared_memory_id_, shared_memory_offset_); |
| 5521 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5462 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 5522 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 5463 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 5523 } | 5464 } |
| 5524 """ | 5465 """ |
| 5525 comma = "" | 5466 comma = "" |
| 5526 if len(func.GetOriginalArgs()): | 5467 if len(func.GetOriginalArgs()): |
| 5527 comma =", " | 5468 comma =", " |
| 5528 self.WriteValidUnitTest(func, file, valid_test, { | 5469 self.WriteValidUnitTest(func, file, valid_test, { |
| 5529 'comma': comma, | 5470 'comma': comma, |
| 5530 }) | 5471 }) |
| 5531 | 5472 |
| 5532 invalid_test = """ | 5473 invalid_test = """ |
| 5533 TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { | 5474 TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { |
| 5534 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 5475 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
| 5535 SpecializedSetup<cmds::%(name)s, 0>(false); | 5476 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 5536 cmds::%(name)s cmd; | 5477 cmds::%(name)s cmd; |
| 5537 cmd.Init(%(args)s%(comma)sshared_memory_id_, shared_memory_offset_); | 5478 cmd.Init(%(args)s%(comma)sshared_memory_id_, shared_memory_offset_); |
| 5538 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s | 5479 EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s |
| 5539 } | 5480 } |
| 5540 """ | 5481 """ |
| 5541 self.WriteInvalidUnitTest(func, file, invalid_test, { | 5482 self.WriteInvalidUnitTest(func, file, invalid_test, { |
| 5542 'comma': comma, | 5483 'comma': comma, |
| 5543 }) | 5484 }) |
| 5544 | 5485 |
| 5545 invalid_test = """ | 5486 invalid_test = """ |
| 5546 TEST_P(%(test_name)s, %(name)sInvalidArgsBadSharedMemoryId) { | 5487 TEST_F(%(test_name)s, %(name)sInvalidArgsBadSharedMemoryId) { |
| 5547 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); | 5488 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0); |
| 5548 SpecializedSetup<cmds::%(name)s, 0>(false); | 5489 SpecializedSetup<cmds::%(name)s, 0>(false); |
| 5549 cmds::%(name)s cmd; | 5490 cmds::%(name)s cmd; |
| 5550 cmd.Init(%(args)s%(comma)skInvalidSharedMemoryId, shared_memory_offset_); | 5491 cmd.Init(%(args)s%(comma)skInvalidSharedMemoryId, shared_memory_offset_); |
| 5551 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); | 5492 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); |
| 5552 cmd.Init(%(args)s%(comma)sshared_memory_id_, kInvalidSharedMemoryOffset); | 5493 cmd.Init(%(args)s%(comma)sshared_memory_id_, kInvalidSharedMemoryOffset); |
| 5553 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); | 5494 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); |
| 5554 } | 5495 } |
| 5555 """ | 5496 """ |
| 5556 self.WriteValidUnitTest(func, file, invalid_test, { | 5497 self.WriteValidUnitTest(func, file, invalid_test, { |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5705 'arg2': args[2].name, | 5646 'arg2': args[2].name, |
| 5706 'arg3': args[3].name, | 5647 'arg3': args[3].name, |
| 5707 } | 5648 } |
| 5708 file.Write(code_1 % str_args) | 5649 file.Write(code_1 % str_args) |
| 5709 func.WriteDestinationInitalizationValidation(file) | 5650 func.WriteDestinationInitalizationValidation(file) |
| 5710 file.Write(code_2 % str_args) | 5651 file.Write(code_2 % str_args) |
| 5711 | 5652 |
| 5712 def WriteServiceUnitTest(self, func, file): | 5653 def WriteServiceUnitTest(self, func, file): |
| 5713 """Overrriden from TypeHandler.""" | 5654 """Overrriden from TypeHandler.""" |
| 5714 valid_test = """ | 5655 valid_test = """ |
| 5715 TEST_P(%(test_name)s, %(name)sValidArgs) { | 5656 TEST_F(%(test_name)s, %(name)sValidArgs) { |
| 5716 const char* kInfo = "hello"; | 5657 const char* kInfo = "hello"; |
| 5717 const uint32 kBucketId = 123; | 5658 const uint32 kBucketId = 123; |
| 5718 SpecializedSetup<cmds::%(name)s, 0>(true); | 5659 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 5719 %(expect_len_code)s | 5660 %(expect_len_code)s |
| 5720 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) | 5661 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) |
| 5721 .WillOnce(DoAll(SetArgumentPointee<2>(strlen(kInfo)), | 5662 .WillOnce(DoAll(SetArgumentPointee<2>(strlen(kInfo)), |
| 5722 SetArrayArgument<3>(kInfo, kInfo + strlen(kInfo) + 1))); | 5663 SetArrayArgument<3>(kInfo, kInfo + strlen(kInfo) + 1))); |
| 5723 cmds::%(name)s cmd; | 5664 cmds::%(name)s cmd; |
| 5724 cmd.Init(%(args)s); | 5665 cmd.Init(%(args)s); |
| 5725 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5666 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 5745 'expect_len_code': '', | 5686 'expect_len_code': '', |
| 5746 } | 5687 } |
| 5747 if get_len_func and get_len_func[0:2] == 'gl': | 5688 if get_len_func and get_len_func[0:2] == 'gl': |
| 5748 sub['expect_len_code'] = ( | 5689 sub['expect_len_code'] = ( |
| 5749 " EXPECT_CALL(*gl_, %s(%s, %s, _))\n" | 5690 " EXPECT_CALL(*gl_, %s(%s, %s, _))\n" |
| 5750 " .WillOnce(SetArgumentPointee<2>(strlen(kInfo) + 1));") % ( | 5691 " .WillOnce(SetArgumentPointee<2>(strlen(kInfo) + 1));") % ( |
| 5751 get_len_func[2:], id_name, get_len_enum) | 5692 get_len_func[2:], id_name, get_len_enum) |
| 5752 self.WriteValidUnitTest(func, file, valid_test, sub) | 5693 self.WriteValidUnitTest(func, file, valid_test, sub) |
| 5753 | 5694 |
| 5754 invalid_test = """ | 5695 invalid_test = """ |
| 5755 TEST_P(%(test_name)s, %(name)sInvalidArgs) { | 5696 TEST_F(%(test_name)s, %(name)sInvalidArgs) { |
| 5756 const uint32 kBucketId = 123; | 5697 const uint32 kBucketId = 123; |
| 5757 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _, _, _)) | 5698 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _, _, _)) |
| 5758 .Times(0); | 5699 .Times(0); |
| 5759 cmds::%(name)s cmd; | 5700 cmds::%(name)s cmd; |
| 5760 cmd.Init(kInvalidClientId, kBucketId); | 5701 cmd.Init(kInvalidClientId, kBucketId); |
| 5761 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5702 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 5762 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); | 5703 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 5763 } | 5704 } |
| 5764 """ | 5705 """ |
| 5765 self.WriteValidUnitTest(func, file, invalid_test) | 5706 self.WriteValidUnitTest(func, file, invalid_test) |
| (...skipping 1365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7131 | 7072 |
| 7132 def WriteServiceContextStateHeader(self, filename): | 7073 def WriteServiceContextStateHeader(self, filename): |
| 7133 """Writes the service context state header.""" | 7074 """Writes the service context state header.""" |
| 7134 file = CHeaderWriter( | 7075 file = CHeaderWriter( |
| 7135 filename, | 7076 filename, |
| 7136 "// It is included by context_state.h\n") | 7077 "// It is included by context_state.h\n") |
| 7137 file.Write("struct EnableFlags {\n") | 7078 file.Write("struct EnableFlags {\n") |
| 7138 file.Write(" EnableFlags();\n") | 7079 file.Write(" EnableFlags();\n") |
| 7139 for capability in _CAPABILITY_FLAGS: | 7080 for capability in _CAPABILITY_FLAGS: |
| 7140 file.Write(" bool %s;\n" % capability['name']) | 7081 file.Write(" bool %s;\n" % capability['name']) |
| 7141 file.Write(" bool cached_%s;\n" % capability['name']) | |
| 7142 file.Write("};\n\n") | 7082 file.Write("};\n\n") |
| 7143 | 7083 |
| 7144 for state_name in sorted(_STATES.keys()): | 7084 for state_name in sorted(_STATES.keys()): |
| 7145 state = _STATES[state_name] | 7085 state = _STATES[state_name] |
| 7146 for item in state['states']: | 7086 for item in state['states']: |
| 7147 file.Write("%s %s;\n" % (item['type'], item['name'])) | 7087 file.Write("%s %s;\n" % (item['type'], item['name'])) |
| 7148 if item.get('cached', False): | |
| 7149 file.Write("%s cached_%s;\n" % (item['type'], item['name'])) | |
| 7150 file.Write("\n") | 7088 file.Write("\n") |
| 7151 | 7089 |
| 7152 file.Write(""" | |
| 7153 inline void SetDeviceCapabilityState(GLenum cap, bool enable) { | |
| 7154 switch (cap) { | |
| 7155 """) | |
| 7156 for capability in _CAPABILITY_FLAGS: | |
| 7157 file.Write("""\ | |
| 7158 case GL_%s: | |
| 7159 """ % capability['name'].upper()) | |
| 7160 file.Write("""\ | |
| 7161 if (enable_flags.cached_%(name)s == enable && | |
| 7162 !ignore_cached_state) | |
| 7163 return; | |
| 7164 enable_flags.cached_%(name)s = enable; | |
| 7165 break; | |
| 7166 """ % capability) | |
| 7167 | |
| 7168 file.Write("""\ | |
| 7169 default: | |
| 7170 NOTREACHED(); | |
| 7171 return; | |
| 7172 } | |
| 7173 if (enable) | |
| 7174 glEnable(cap); | |
| 7175 else | |
| 7176 glDisable(cap); | |
| 7177 } | |
| 7178 """) | |
| 7179 | |
| 7180 file.Close() | 7090 file.Close() |
| 7181 | 7091 |
| 7182 def WriteClientContextStateHeader(self, filename): | 7092 def WriteClientContextStateHeader(self, filename): |
| 7183 """Writes the client context state header.""" | 7093 """Writes the client context state header.""" |
| 7184 file = CHeaderWriter( | 7094 file = CHeaderWriter( |
| 7185 filename, | 7095 filename, |
| 7186 "// It is included by client_context_state.h\n") | 7096 "// It is included by client_context_state.h\n") |
| 7187 file.Write("struct EnableFlags {\n") | 7097 file.Write("struct EnableFlags {\n") |
| 7188 file.Write(" EnableFlags();\n") | 7098 file.Write(" EnableFlags();\n") |
| 7189 for capability in _CAPABILITY_FLAGS: | 7099 for capability in _CAPABILITY_FLAGS: |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7238 def WriteServiceContextStateImpl(self, filename): | 7148 def WriteServiceContextStateImpl(self, filename): |
| 7239 """Writes the context state service implementation.""" | 7149 """Writes the context state service implementation.""" |
| 7240 file = CHeaderWriter( | 7150 file = CHeaderWriter( |
| 7241 filename, | 7151 filename, |
| 7242 "// It is included by context_state.cc\n") | 7152 "// It is included by context_state.cc\n") |
| 7243 code = [] | 7153 code = [] |
| 7244 for capability in _CAPABILITY_FLAGS: | 7154 for capability in _CAPABILITY_FLAGS: |
| 7245 code.append("%s(%s)" % | 7155 code.append("%s(%s)" % |
| 7246 (capability['name'], | 7156 (capability['name'], |
| 7247 ('false', 'true')['default' in capability])) | 7157 ('false', 'true')['default' in capability])) |
| 7248 code.append("cached_%s(%s)" % | |
| 7249 (capability['name'], | |
| 7250 ('false', 'true')['default' in capability])) | |
| 7251 file.Write("ContextState::EnableFlags::EnableFlags()\n : %s {\n}\n" % | 7158 file.Write("ContextState::EnableFlags::EnableFlags()\n : %s {\n}\n" % |
| 7252 ",\n ".join(code)) | 7159 ",\n ".join(code)) |
| 7253 file.Write("\n") | 7160 file.Write("\n") |
| 7254 | 7161 |
| 7255 file.Write("void ContextState::Initialize() {\n") | 7162 file.Write("void ContextState::Initialize() {\n") |
| 7256 for state_name in sorted(_STATES.keys()): | 7163 for state_name in sorted(_STATES.keys()): |
| 7257 state = _STATES[state_name] | 7164 state = _STATES[state_name] |
| 7258 for item in state['states']: | 7165 for item in state['states']: |
| 7259 file.Write(" %s = %s;\n" % (item['name'], item['default'])) | 7166 file.Write(" %s = %s;\n" % (item['name'], item['default'])) |
| 7260 if item.get('cached', False): | |
| 7261 file.Write(" cached_%s = %s;\n" % (item['name'], item['default'])) | |
| 7262 file.Write("}\n") | 7167 file.Write("}\n") |
| 7263 | 7168 |
| 7264 file.Write(""" | 7169 file.Write(""" |
| 7265 void ContextState::InitCapabilities(const ContextState* prev_state) const { | 7170 void ContextState::InitCapabilities(const ContextState* prev_state) const { |
| 7266 """) | 7171 """) |
| 7267 def WriteCapabilities(test_prev): | 7172 def WriteCapabilities(test_prev): |
| 7268 for capability in _CAPABILITY_FLAGS: | 7173 for capability in _CAPABILITY_FLAGS: |
| 7269 capability_name = capability['name'] | 7174 capability_name = capability['name'] |
| 7270 if test_prev: | 7175 if test_prev: |
| 7271 file.Write(""" if (prev_state->enable_flags.cached_%s != | 7176 file.Write(" if (prev_state->enable_flags.%s != enable_flags.%s)\n" % |
| 7272 enable_flags.cached_%s)\n""" % | |
| 7273 (capability_name, capability_name)) | 7177 (capability_name, capability_name)) |
| 7274 file.Write(" EnableDisable(GL_%s, enable_flags.cached_%s);\n" % | 7178 file.Write(" EnableDisable(GL_%s, enable_flags.%s);\n" % |
| 7275 (capability_name.upper(), capability_name)) | 7179 (capability_name.upper(), capability_name)) |
| 7276 | 7180 |
| 7277 file.Write(" if (prev_state) {") | 7181 file.Write(" if (prev_state) {") |
| 7278 WriteCapabilities(True) | 7182 WriteCapabilities(True) |
| 7279 file.Write(" } else {") | 7183 file.Write(" } else {") |
| 7280 WriteCapabilities(False) | 7184 WriteCapabilities(False) |
| 7281 file.Write(" }") | 7185 file.Write(" }") |
| 7282 | 7186 |
| 7283 file.Write("""} | 7187 file.Write("""} |
| 7284 | 7188 |
| 7285 void ContextState::InitState(const ContextState *prev_state) const { | 7189 void ContextState::InitState(const ContextState *prev_state) const { |
| 7286 """) | 7190 """) |
| 7287 | 7191 |
| 7288 def WriteStates(test_prev): | 7192 def WriteStates(test_prev): |
| 7289 # We need to sort the keys so the expectations match | 7193 # We need to sort the keys so the expectations match |
| 7290 for state_name in sorted(_STATES.keys()): | 7194 for state_name in sorted(_STATES.keys()): |
| 7291 state = _STATES[state_name] | 7195 state = _STATES[state_name] |
| 7292 if state['type'] == 'FrontBack': | 7196 if state['type'] == 'FrontBack': |
| 7293 num_states = len(state['states']) | 7197 num_states = len(state['states']) |
| 7294 for ndx, group in enumerate(Grouper(num_states / 2, state['states'])): | 7198 for ndx, group in enumerate(Grouper(num_states / 2, state['states'])): |
| 7295 if test_prev: | 7199 if test_prev: |
| 7296 file.Write(" if (") | 7200 file.Write(" if (") |
| 7297 args = [] | 7201 args = [] |
| 7298 for place, item in enumerate(group): | 7202 for place, item in enumerate(group): |
| 7299 item_name = CachedStateName(item) | 7203 item_name = item['name'] |
| 7300 args.append('%s' % item_name) | 7204 args.append('%s' % item_name) |
| 7301 if test_prev: | 7205 if test_prev: |
| 7302 if place > 0: | 7206 if place > 0: |
| 7303 file.Write(' ||\n') | 7207 file.Write(' ||\n') |
| 7304 file.Write("(%s != prev_state->%s)" % (item_name, item_name)) | 7208 file.Write("(%s != prev_state->%s)" % (item_name, item_name)) |
| 7305 if test_prev: | 7209 if test_prev: |
| 7306 file.Write(")\n") | 7210 file.Write(")\n") |
| 7307 file.Write( | 7211 file.Write( |
| 7308 " gl%s(%s, %s);\n" % | 7212 " gl%s(%s, %s);\n" % |
| 7309 (state['func'], ('GL_FRONT', 'GL_BACK')[ndx], ", ".join(args))) | 7213 (state['func'], ('GL_FRONT', 'GL_BACK')[ndx], ", ".join(args))) |
| 7310 elif state['type'] == 'NamedParameter': | 7214 elif state['type'] == 'NamedParameter': |
| 7311 for item in state['states']: | 7215 for item in state['states']: |
| 7312 item_name = CachedStateName(item) | |
| 7313 | |
| 7314 if 'extension_flag' in item: | 7216 if 'extension_flag' in item: |
| 7315 file.Write(" if (feature_info_->feature_flags().%s)\n " % | 7217 file.Write(" if (feature_info_->feature_flags().%s)\n " % |
| 7316 item['extension_flag']) | 7218 item['extension_flag']) |
| 7317 if test_prev: | 7219 if test_prev: |
| 7318 file.Write(" if (prev_state->%s != %s)\n" % | 7220 file.Write(" if (prev_state->%s != %s)\n" % |
| 7319 (item_name, item_name)) | 7221 (item['name'], item['name'])) |
| 7320 file.Write(" gl%s(%s, %s);\n" % | 7222 file.Write(" gl%s(%s, %s);\n" % |
| 7321 (state['func'], item['enum'], item_name)) | 7223 (state['func'], item['enum'], item['name'])) |
| 7322 else: | 7224 else: |
| 7323 if test_prev: | 7225 if test_prev: |
| 7324 file.Write(" if (") | 7226 file.Write(" if (") |
| 7325 args = [] | 7227 args = [] |
| 7326 for place, item in enumerate(state['states']): | 7228 for place, item in enumerate(state['states']): |
| 7327 item_name = CachedStateName(item) | 7229 item_name = item['name'] |
| 7328 args.append('%s' % item_name) | 7230 args.append('%s' % item_name) |
| 7329 if test_prev: | 7231 if test_prev: |
| 7330 if place > 0: | 7232 if place > 0: |
| 7331 file.Write(' ||\n') | 7233 file.Write(' ||\n') |
| 7332 file.Write("(%s != prev_state->%s)" % | 7234 file.Write("(%s != prev_state->%s)" % |
| 7333 (item_name, item_name)) | 7235 (item_name, item_name)) |
| 7334 if test_prev: | 7236 if test_prev: |
| 7335 file.Write(" )\n") | 7237 file.Write(" )\n") |
| 7336 file.Write(" gl%s(%s);\n" % (state['func'], ", ".join(args))) | 7238 file.Write(" gl%s(%s);\n" % (state['func'], ", ".join(args))) |
| 7337 | 7239 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7420 #if gen_cmd == True or gen_cmd == None: | 7322 #if gen_cmd == True or gen_cmd == None: |
| 7421 func.WriteServiceImplementation(file) | 7323 func.WriteServiceImplementation(file) |
| 7422 | 7324 |
| 7423 file.Write(""" | 7325 file.Write(""" |
| 7424 bool GLES2DecoderImpl::SetCapabilityState(GLenum cap, bool enabled) { | 7326 bool GLES2DecoderImpl::SetCapabilityState(GLenum cap, bool enabled) { |
| 7425 switch (cap) { | 7327 switch (cap) { |
| 7426 """) | 7328 """) |
| 7427 for capability in _CAPABILITY_FLAGS: | 7329 for capability in _CAPABILITY_FLAGS: |
| 7428 file.Write(" case GL_%s:\n" % capability['name'].upper()) | 7330 file.Write(" case GL_%s:\n" % capability['name'].upper()) |
| 7429 if 'state_flag' in capability: | 7331 if 'state_flag' in capability: |
| 7430 | 7332 file.Write(""" if (state_.enable_flags.%(name)s != enabled) { |
| 7431 file.Write("""\ | 7333 state_.enable_flags.%(name)s = enabled; |
| 7432 state_.enable_flags.%(name)s = enabled; | 7334 %(state_flag)s = true; |
| 7433 if (state_.enable_flags.cached_%(name)s != enabled | 7335 } |
| 7434 || state_.ignore_cached_state) { | 7336 return false; |
| 7435 %(state_flag)s = true; | 7337 """ % capability) |
| 7436 } | |
| 7437 return false; | |
| 7438 """ % capability) | |
| 7439 else: | 7338 else: |
| 7440 file.Write("""\ | 7339 file.Write(""" state_.enable_flags.%(name)s = enabled; |
| 7441 state_.enable_flags.%(name)s = enabled; | 7340 return true; |
| 7442 if (state_.enable_flags.cached_%(name)s != enabled | 7341 """ % capability) |
| 7443 || state_.ignore_cached_state) { | |
| 7444 state_.enable_flags.cached_%(name)s = enabled; | |
| 7445 return true; | |
| 7446 } | |
| 7447 return false; | |
| 7448 """ % capability) | |
| 7449 file.Write(""" default: | 7342 file.Write(""" default: |
| 7450 NOTREACHED(); | 7343 NOTREACHED(); |
| 7451 return false; | 7344 return false; |
| 7452 } | 7345 } |
| 7453 } | 7346 } |
| 7454 """) | 7347 """) |
| 7455 file.Close() | 7348 file.Close() |
| 7456 | 7349 |
| 7457 def WriteServiceUnitTests(self, filename): | 7350 def WriteServiceUnitTests(self, filename): |
| 7458 """Writes the service decorder unit tests.""" | 7351 """Writes the service decorder unit tests.""" |
| (...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8063 "ppapi/shared_impl/ppb_opengles2_shared.cc"]) | 7956 "ppapi/shared_impl/ppb_opengles2_shared.cc"]) |
| 8064 | 7957 |
| 8065 if gen.errors > 0: | 7958 if gen.errors > 0: |
| 8066 print "%d errors" % gen.errors | 7959 print "%d errors" % gen.errors |
| 8067 return 1 | 7960 return 1 |
| 8068 return 0 | 7961 return 0 |
| 8069 | 7962 |
| 8070 | 7963 |
| 8071 if __name__ == '__main__': | 7964 if __name__ == '__main__': |
| 8072 sys.exit(main(sys.argv[1:])) | 7965 sys.exit(main(sys.argv[1:])) |
| OLD | NEW |