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 |