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