| Index: gpu/command_buffer/build_gles2_cmd_buffer.py
|
| diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py
|
| index 56f59fcfde1df1d68d99ac1a6cb696033892f0fd..66dc012fd24068bcd6de3005cecbdbcc5d596256 100755
|
| --- a/gpu/command_buffer/build_gles2_cmd_buffer.py
|
| +++ b/gpu/command_buffer/build_gles2_cmd_buffer.py
|
| @@ -2638,19 +2638,28 @@ def CachedStateName(item):
|
| return 'cached_' + item['name']
|
| return item['name']
|
|
|
| +def ToGLExtensionString(extension_flag):
|
| + """Returns GL-type extension string of a extension flag."""
|
| + if extension_flag == "oes_compressed_etc1_rgb8_texture":
|
| + return "OES_compressed_ETC1_RGB8_texture" # Fixup inconsitency with rgb8,
|
| + # unfortunate.
|
| + uppercase_words = [ 'img', 'ext', 'arb', 'chromium', 'oes', 'amd', 'bgra8888',
|
| + 'egl', 'atc', 'etc1', 'angle']
|
| + parts = extension_flag.split('_')
|
| + return "_".join(
|
| + [part.upper() if part in uppercase_words else part for part in parts])
|
| +
|
| +def ToCamelCase(input_string):
|
| + """converts ABC_underscore_case to ABCUnderscoreCase."""
|
| + return ''.join(w[0].upper() + w[1:] for w in input_string.split('_'))
|
|
|
| class CWriter(object):
|
| """Writes to a file formatting it for Google's style guidelines."""
|
|
|
| def __init__(self, filename):
|
| self.filename = filename
|
| - self.file_num = 0
|
| self.content = []
|
|
|
| - def SetFileNum(self, num):
|
| - """Used to help write number files and tests."""
|
| - self.file_num = num
|
| -
|
| def Write(self, string):
|
| """Writes a string to a file spliting if it's > 80 characters."""
|
| lines = string.splitlines()
|
| @@ -2935,7 +2944,7 @@ COMPILE_ASSERT(offsetof(%(cmd_name)s::Result, %(field_name)s) == %(offset)d,
|
| file.Write(" if (error != error::kNoError)\n")
|
| file.Write(" return error;\n")
|
|
|
| - def WriteValidUnitTest(self, func, file, test, extra = {}):
|
| + def WriteValidUnitTest(self, func, file, test, *extras):
|
| """Writes a valid unit test for the service implementation."""
|
| if func.GetInfo('expectation') == False:
|
| test = self._remove_expected_call_re.sub('', test)
|
| @@ -2950,20 +2959,20 @@ COMPILE_ASSERT(offsetof(%(cmd_name)s::Result, %(field_name)s) == %(offset)d,
|
| ]
|
| gl_func_name = func.GetGLTestFunctionName()
|
| vars = {
|
| - 'test_name': 'GLES2DecoderTest%d' % file.file_num,
|
| 'name':name,
|
| 'gl_func_name': gl_func_name,
|
| 'args': ", ".join(arg_strings),
|
| 'gl_args': ", ".join(gl_arg_strings),
|
| }
|
| - vars.update(extra)
|
| + for extra in extras:
|
| + vars.update(extra)
|
| old_test = ""
|
| while (old_test != test):
|
| old_test = test
|
| test = test % vars
|
| file.Write(test % vars)
|
|
|
| - def WriteInvalidUnitTest(self, func, file, test, extra = {}):
|
| + def WriteInvalidUnitTest(self, func, file, test, *extras):
|
| """Writes an invalid unit test for the service implementation."""
|
| for invalid_arg_index, invalid_arg in enumerate(func.GetOriginalArgs()):
|
| # Service implementation does not test constants, as they are not part of
|
| @@ -2994,7 +3003,6 @@ COMPILE_ASSERT(offsetof(%(cmd_name)s::Result, %(field_name)s) == %(offset)d,
|
| gl_error_test = '\n EXPECT_EQ(%s, GetGLError());' % gl_error
|
|
|
| vars = {
|
| - 'test_name': 'GLES2DecoderTest%d' % file.file_num ,
|
| 'name': func.name,
|
| 'arg_index': invalid_arg_index,
|
| 'value_index': value_index,
|
| @@ -3005,10 +3013,11 @@ COMPILE_ASSERT(offsetof(%(cmd_name)s::Result, %(field_name)s) == %(offset)d,
|
| 'parse_result': parse_result,
|
| 'gl_error_test': gl_error_test,
|
| }
|
| - vars.update(extra)
|
| + for extra in extras:
|
| + vars.update(extra)
|
| file.Write(test % vars)
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Writes the service unit test for a command."""
|
|
|
| if func.name == 'Enable':
|
| @@ -3044,7 +3053,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
| }
|
| """
|
| - self.WriteValidUnitTest(func, file, valid_test)
|
| + self.WriteValidUnitTest(func, file, valid_test, *extras)
|
|
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| @@ -3055,9 +3064,9 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s
|
| }
|
| """
|
| - self.WriteInvalidUnitTest(func, file, invalid_test)
|
| + self.WriteInvalidUnitTest(func, file, invalid_test, *extras)
|
|
|
| - def WriteImmediateServiceUnitTest(self, func, file):
|
| + def WriteImmediateServiceUnitTest(self, func, file, *extras):
|
| """Writes the service unit test for an immediate command."""
|
| file.Write("// TODO(gman): %s\n" % func.name)
|
|
|
| @@ -3065,7 +3074,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| """Writes the validation code for an immediate version of a command."""
|
| pass
|
|
|
| - def WriteBucketServiceUnitTest(self, func, file):
|
| + def WriteBucketServiceUnitTest(self, func, file, *extras):
|
| """Writes the service unit test for a bucket command."""
|
| file.Write("// TODO(gman): %s\n" % func.name)
|
|
|
| @@ -3363,9 +3372,9 @@ class StateSetHandler(TypeHandler):
|
| (func.GetGLFunctionName(), func.MakeOriginalArgString("")))
|
| file.Write(" }\n")
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| - TypeHandler.WriteServiceUnitTest(self, func, file)
|
| + TypeHandler.WriteServiceUnitTest(self, func, file, *extras)
|
| state_name = func.GetInfo('state')
|
| state = _STATES[state_name]
|
| states = state['states']
|
| @@ -3389,12 +3398,13 @@ TEST_P(%(test_name)s, %(name)sInvalidValue%(ndx)d_%(check_ndx)d) {
|
|
|
| arg_strings[ndx] = range_check['test_value']
|
| vars = {
|
| - 'test_name': 'GLES2DecoderTest%d' % file.file_num,
|
| 'name': name,
|
| 'ndx': ndx,
|
| 'check_ndx': check_ndx,
|
| 'args': ", ".join(arg_strings),
|
| }
|
| + for extra in extras:
|
| + vars.update(extra)
|
| file.Write(valid_test % vars)
|
| if 'nan_check' in item:
|
| valid_test = """
|
| @@ -3414,11 +3424,12 @@ TEST_P(%(test_name)s, %(name)sNaNValue%(ndx)d) {
|
|
|
| arg_strings[ndx] = 'nanf("")'
|
| vars = {
|
| - 'test_name': 'GLES2DecoderTest%d' % file.file_num,
|
| 'name': name,
|
| 'ndx': ndx,
|
| 'args': ", ".join(arg_strings),
|
| }
|
| + for extra in extras:
|
| + vars.update(extra)
|
| file.Write(valid_test % vars)
|
|
|
|
|
| @@ -3566,11 +3577,11 @@ class CustomHandler(TypeHandler):
|
| """Overrriden from TypeHandler."""
|
| pass
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| file.Write("// TODO(gman): %s\n\n" % func.name)
|
|
|
| - def WriteImmediateServiceUnitTest(self, func, file):
|
| + def WriteImmediateServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| file.Write("// TODO(gman): %s\n\n" % func.name)
|
|
|
| @@ -3673,15 +3684,15 @@ class HandWrittenHandler(CustomHandler):
|
| """Overrriden from TypeHandler."""
|
| pass
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| file.Write("// TODO(gman): %s\n\n" % func.name)
|
|
|
| - def WriteImmediateServiceUnitTest(self, func, file):
|
| + def WriteImmediateServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| file.Write("// TODO(gman): %s\n\n" % func.name)
|
|
|
| - def WriteBucketServiceUnitTest(self, func, file):
|
| + def WriteBucketServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| file.Write("// TODO(gman): %s\n\n" % func.name)
|
|
|
| @@ -3745,11 +3756,11 @@ class ManualHandler(CustomHandler):
|
| """Overrriden from TypeHandler."""
|
| pass
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| file.Write("// TODO(gman): %s\n\n" % func.name)
|
|
|
| - def WriteImmediateServiceUnitTest(self, func, file):
|
| + def WriteImmediateServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| file.Write("// TODO(gman): %s\n\n" % func.name)
|
|
|
| @@ -3855,11 +3866,11 @@ class DataHandler(TypeHandler):
|
| file.Write("// TODO(gman): Implement test for %s\n" % func.name)
|
| return
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| file.Write("// TODO(gman): %s\n\n" % func.name)
|
|
|
| - def WriteImmediateServiceUnitTest(self, func, file):
|
| + def WriteImmediateServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| file.Write("// TODO(gman): %s\n\n" % func.name)
|
|
|
| @@ -3875,7 +3886,7 @@ class BindHandler(TypeHandler):
|
| def __init__(self):
|
| TypeHandler.__init__(self)
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
|
|
| if len(func.GetOriginalArgs()) == 1:
|
| @@ -3906,7 +3917,7 @@ TEST_P(%(test_name)s, %(name)sValidArgsNewId) {
|
| self.WriteValidUnitTest(func, file, valid_test, {
|
| 'resource_type': func.GetOriginalArgs()[0].resource_type,
|
| 'gl_gen_func_name': func.GetInfo("gen_func"),
|
| - })
|
| + }, *extras)
|
| else:
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -3937,7 +3948,7 @@ TEST_P(%(test_name)s, %(name)sValidArgsNewId) {
|
| 'first_gl_arg': func.GetOriginalArgs()[0].GetValidGLArg(func),
|
| 'resource_type': func.GetOriginalArgs()[1].resource_type,
|
| 'gl_gen_func_name': func.GetInfo("gen_func"),
|
| - })
|
| + }, *extras)
|
|
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| @@ -3948,7 +3959,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s
|
| }
|
| """
|
| - self.WriteInvalidUnitTest(func, file, invalid_test)
|
| + self.WriteInvalidUnitTest(func, file, invalid_test, *extras)
|
|
|
| def WriteGLES2Implementation(self, func, file):
|
| """Writes the GLES2 Implemention."""
|
| @@ -4135,7 +4146,7 @@ TEST_F(GLES2ImplementationTest, %(name)s) {
|
| 'types': func.GetInfo('resource_types'),
|
| })
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -4152,7 +4163,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| """
|
| self.WriteValidUnitTest(func, file, valid_test, {
|
| 'resource_name': func.GetInfo('resource_type'),
|
| - })
|
| + }, *extras)
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs) {
|
| EXPECT_CALL(*gl_, %(gl_func_name)s(_, _)).Times(0);
|
| @@ -4165,9 +4176,9 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs) {
|
| """
|
| self.WriteValidUnitTest(func, file, invalid_test, {
|
| 'resource_name': func.GetInfo('resource_type').lower(),
|
| - })
|
| + }, *extras)
|
|
|
| - def WriteImmediateServiceUnitTest(self, func, file):
|
| + def WriteImmediateServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -4185,7 +4196,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| """
|
| self.WriteValidUnitTest(func, file, valid_test, {
|
| 'resource_name': func.GetInfo('resource_type'),
|
| - })
|
| + }, *extras)
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs) {
|
| EXPECT_CALL(*gl_, %(gl_func_name)s(_, _)).Times(0);
|
| @@ -4198,7 +4209,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs) {
|
| """
|
| self.WriteValidUnitTest(func, file, invalid_test, {
|
| 'resource_name': func.GetInfo('resource_type').lower(),
|
| - })
|
| + }, *extras)
|
|
|
| def WriteImmediateCmdComputeSize(self, func, file):
|
| """Overrriden from TypeHandler."""
|
| @@ -4301,7 +4312,7 @@ class CreateHandler(TypeHandler):
|
| """Overrriden from TypeHandler."""
|
| func.AddCmdArg(Argument("client_id", 'uint32_t'))
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -4321,7 +4332,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| self.WriteValidUnitTest(func, file, valid_test, {
|
| 'comma': comma,
|
| 'resource_type': func.name[6:],
|
| - })
|
| + }, *extras)
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)).Times(0);
|
| @@ -4333,7 +4344,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| """
|
| self.WriteInvalidUnitTest(func, file, invalid_test, {
|
| 'comma': comma,
|
| - })
|
| + }, *extras)
|
|
|
| def WriteHandlerImplementation (self, func, file):
|
| """Overrriden from TypeHandler."""
|
| @@ -4432,7 +4443,7 @@ TEST_F(GLES2ImplementationTest, %(name)s) {
|
| 'types': func.GetInfo('resource_types'),
|
| })
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -4453,7 +4464,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| self.WriteValidUnitTest(func, file, valid_test, {
|
| 'resource_name': func.GetInfo('resource_type').lower(),
|
| 'upper_resource_name': func.GetInfo('resource_type'),
|
| - })
|
| + }, *extras)
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs) {
|
| GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId;
|
| @@ -4463,9 +4474,9 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs) {
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| }
|
| """
|
| - self.WriteValidUnitTest(func, file, invalid_test)
|
| + self.WriteValidUnitTest(func, file, invalid_test, *extras)
|
|
|
| - def WriteImmediateServiceUnitTest(self, func, file):
|
| + def WriteImmediateServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -4486,7 +4497,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| self.WriteValidUnitTest(func, file, valid_test, {
|
| 'resource_name': func.GetInfo('resource_type').lower(),
|
| 'upper_resource_name': func.GetInfo('resource_type'),
|
| - })
|
| + }, *extras)
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs) {
|
| cmds::%(name)s& cmd = *GetImmediateAs<cmds::%(name)s>();
|
| @@ -4497,7 +4508,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs) {
|
| ExecuteImmediateCmd(cmd, sizeof(temp)));
|
| }
|
| """
|
| - self.WriteValidUnitTest(func, file, invalid_test)
|
| + self.WriteValidUnitTest(func, file, invalid_test, *extras)
|
|
|
| def WriteHandlerImplementation (self, func, file):
|
| """Overrriden from TypeHandler."""
|
| @@ -4787,7 +4798,7 @@ TEST_F(GLES2ImplementationTest, %(name)s) {
|
| 'cmd_args': ", ".join(cmd_arg_strings),
|
| })
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -4824,7 +4835,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| self.WriteValidUnitTest(func, file, valid_test, {
|
| 'local_gl_args': ", ".join(gl_arg_strings),
|
| 'valid_pname': valid_pname,
|
| - })
|
| + }, *extras)
|
|
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| @@ -4839,7 +4850,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| EXPECT_EQ(0u, result->size);%(gl_error_test)s
|
| }
|
| """
|
| - self.WriteInvalidUnitTest(func, file, invalid_test)
|
| + self.WriteInvalidUnitTest(func, file, invalid_test, *extras)
|
|
|
| class ArrayArgTypeHandler(TypeHandler):
|
| """Base class for type handlers that handle args that are arrays"""
|
| @@ -4871,7 +4882,7 @@ class PUTHandler(ArrayArgTypeHandler):
|
| def __init__(self):
|
| ArrayArgTypeHandler.__init__(self)
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Writes the service unit test for a command."""
|
| expected_call = "EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s));"
|
| if func.GetInfo("first_element_only"):
|
| @@ -4897,7 +4908,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| 'data_value': func.GetInfo('data_value') or '0',
|
| 'expected_call': expected_call,
|
| }
|
| - self.WriteValidUnitTest(func, file, valid_test, extra)
|
| + self.WriteValidUnitTest(func, file, valid_test, extra, *extras)
|
|
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| @@ -4909,9 +4920,9 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| EXPECT_EQ(error::%(parse_result)s, ExecuteCmd(cmd));%(gl_error_test)s
|
| }
|
| """
|
| - self.WriteInvalidUnitTest(func, file, invalid_test, extra)
|
| + self.WriteInvalidUnitTest(func, file, invalid_test, extra, *extras)
|
|
|
| - def WriteImmediateServiceUnitTest(self, func, file):
|
| + def WriteImmediateServiceUnitTest(self, func, file, *extras):
|
| """Writes the service unit test for a command."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -4941,7 +4952,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| 'gl_args': ", ".join(gl_arg_strings),
|
| 'gl_any_args': ", ".join(gl_any_strings),
|
| }
|
| - self.WriteValidUnitTest(func, file, valid_test, extra)
|
| + self.WriteValidUnitTest(func, file, valid_test, extra, *extras)
|
|
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| @@ -4954,7 +4965,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s
|
| }
|
| """
|
| - self.WriteInvalidUnitTest(func, file, invalid_test, extra)
|
| + self.WriteInvalidUnitTest(func, file, invalid_test, extra, *extras)
|
|
|
| def WriteGetDataSizeCode(self, func, file):
|
| """Overrriden from TypeHandler."""
|
| @@ -5142,9 +5153,9 @@ class PUTnHandler(ArrayArgTypeHandler):
|
| def __init__(self):
|
| ArrayArgTypeHandler.__init__(self)
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overridden from TypeHandler."""
|
| - ArrayArgTypeHandler.WriteServiceUnitTest(self, func, file)
|
| + ArrayArgTypeHandler.WriteServiceUnitTest(self, func, file, *extras)
|
|
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgsCountTooLarge) {
|
| @@ -5178,9 +5189,9 @@ TEST_P(%(test_name)s, %(name)sValidArgsCountTooLarge) {
|
| 'gl_args': ", ".join(gl_arg_strings),
|
| 'args': ", ".join(arg_strings),
|
| }
|
| - self.WriteValidUnitTest(func, file, valid_test, extra)
|
| + self.WriteValidUnitTest(func, file, valid_test, extra, *extras)
|
|
|
| - def WriteImmediateServiceUnitTest(self, func, file):
|
| + def WriteImmediateServiceUnitTest(self, func, file, *extras):
|
| """Overridden from TypeHandler."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -5212,7 +5223,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| 'gl_args': ", ".join(gl_arg_strings),
|
| 'gl_any_args': ", ".join(gl_any_strings),
|
| }
|
| - self.WriteValidUnitTest(func, file, valid_test, extra)
|
| + self.WriteValidUnitTest(func, file, valid_test, extra, *extras)
|
|
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| @@ -5225,7 +5236,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s
|
| }
|
| """
|
| - self.WriteInvalidUnitTest(func, file, invalid_test, extra)
|
| + self.WriteInvalidUnitTest(func, file, invalid_test, extra, *extras)
|
|
|
| def WriteGetDataSizeCode(self, func, file):
|
| """Overrriden from TypeHandler."""
|
| @@ -5487,7 +5498,7 @@ class PUTXnHandler(ArrayArgTypeHandler):
|
| 'values': values,
|
| })
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -5505,7 +5516,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| 'name': func.name,
|
| 'count': self.GetArrayCount(func),
|
| 'local_args': local_args,
|
| - })
|
| + }, *extras)
|
|
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| @@ -5696,7 +5707,7 @@ class IsHandler(TypeHandler):
|
| if func.GetInfo('result') == None:
|
| func.AddInfo('result', ['uint32_t'])
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -5713,7 +5724,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| comma =", "
|
| self.WriteValidUnitTest(func, file, valid_test, {
|
| 'comma': comma,
|
| - })
|
| + }, *extras)
|
|
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| @@ -5726,7 +5737,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
|
| """
|
| self.WriteInvalidUnitTest(func, file, invalid_test, {
|
| 'comma': comma,
|
| - })
|
| + }, *extras)
|
|
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgsBadSharedMemoryId) {
|
| @@ -5741,7 +5752,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgsBadSharedMemoryId) {
|
| """
|
| self.WriteValidUnitTest(func, file, invalid_test, {
|
| 'comma': comma,
|
| - })
|
| + }, *extras)
|
|
|
| def WriteServiceImplementation(self, func, file):
|
| """Overrriden from TypeHandler."""
|
| @@ -5895,7 +5906,7 @@ class STRnHandler(TypeHandler):
|
| func.WriteDestinationInitalizationValidation(file)
|
| file.Write(code_2 % str_args)
|
|
|
| - def WriteServiceUnitTest(self, func, file):
|
| + def WriteServiceUnitTest(self, func, file, *extras):
|
| """Overrriden from TypeHandler."""
|
| valid_test = """
|
| TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| @@ -5935,7 +5946,7 @@ TEST_P(%(test_name)s, %(name)sValidArgs) {
|
| " EXPECT_CALL(*gl_, %s(%s, %s, _))\n"
|
| " .WillOnce(SetArgumentPointee<2>(strlen(kInfo) + 1));") % (
|
| get_len_func[2:], id_name, get_len_enum)
|
| - self.WriteValidUnitTest(func, file, valid_test, sub)
|
| + self.WriteValidUnitTest(func, file, valid_test, sub, *extras)
|
|
|
| invalid_test = """
|
| TEST_P(%(test_name)s, %(name)sInvalidArgs) {
|
| @@ -5948,7 +5959,7 @@ TEST_P(%(test_name)s, %(name)sInvalidArgs) {
|
| EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
|
| }
|
| """
|
| - self.WriteValidUnitTest(func, file, invalid_test)
|
| + self.WriteValidUnitTest(func, file, invalid_test, *extras)
|
|
|
| def WriteServiceImplementation(self, func, file):
|
| """Overrriden from TypeHandler."""
|
| @@ -7000,9 +7011,9 @@ class Function(object):
|
| """Writes the service implementation for a command."""
|
| self.type_handler.WriteServiceImplementation(self, file)
|
|
|
| - def WriteServiceUnitTest(self, file):
|
| + def WriteServiceUnitTest(self, file, *extras):
|
| """Writes the service implementation for a command."""
|
| - self.type_handler.WriteServiceUnitTest(self, file)
|
| + self.type_handler.WriteServiceUnitTest(self, file, *extras)
|
|
|
| def WriteGLES2CLibImplementation(self, file):
|
| """Writes the GLES2 C Lib Implemention."""
|
| @@ -7131,9 +7142,9 @@ class ImmediateFunction(Function):
|
| """Overridden from Function"""
|
| self.type_handler.WriteImmediateHandlerImplementation(self, file)
|
|
|
| - def WriteServiceUnitTest(self, file):
|
| + def WriteServiceUnitTest(self, file, *extras):
|
| """Writes the service implementation for a command."""
|
| - self.type_handler.WriteImmediateServiceUnitTest(self, file)
|
| + self.type_handler.WriteImmediateServiceUnitTest(self, file, *extras)
|
|
|
| def WriteValidationCode(self, file):
|
| """Overridden from Function"""
|
| @@ -7211,9 +7222,9 @@ class BucketFunction(Function):
|
| """Overridden from Function"""
|
| self.type_handler.WriteBucketHandlerImplementation(self, file)
|
|
|
| - def WriteServiceUnitTest(self, file):
|
| + def WriteServiceUnitTest(self, file, *extras):
|
| """Writes the service implementation for a command."""
|
| - self.type_handler.WriteBucketServiceUnitTest(self, file)
|
| + self.type_handler.WriteBucketServiceUnitTest(self, file, *extras)
|
|
|
|
|
| def CreateArg(arg_string):
|
| @@ -7633,6 +7644,9 @@ void ContextState::InitState(const ContextState *prev_state) const {
|
| file.Write(" gl%s(%s, %s);\n" %
|
| (state['func'], item['enum'], item_name))
|
| else:
|
| + if 'extension_flag' in state:
|
| + file.Write(" if (feature_info_->feature_flags().%s)\n " %
|
| + state['extension_flag'])
|
| if test_prev:
|
| file.Write(" if (")
|
| args = []
|
| @@ -7778,19 +7792,28 @@ bool GLES2DecoderImpl::SetCapabilityState(GLenum cap, bool enabled) {
|
| file = CHeaderWriter(
|
| name,
|
| "// It is included by gles2_cmd_decoder_unittest_%d.cc\n" % count)
|
| - file.SetFileNum(count)
|
| + test_name = 'GLES2DecoderTest%d' % count
|
| end = test_num + FUNCTIONS_PER_FILE
|
| if end > num_tests:
|
| end = num_tests
|
| for idx in range(test_num, end):
|
| func = self.functions[idx]
|
| +
|
| + # Do any filtering of the functions here, so that the functions
|
| + # will not move between the numbered files if filtering properties
|
| + # are changed.
|
| + if func.GetInfo('extension_flag'):
|
| + continue
|
| +
|
| if True:
|
| #gen_cmd = func.GetInfo('gen_cmd')
|
| #if gen_cmd == True or gen_cmd == None:
|
| if func.GetInfo('unit_test') == False:
|
| file.Write("// TODO(gman): %s\n" % func.name)
|
| else:
|
| - func.WriteServiceUnitTest(file)
|
| + func.WriteServiceUnitTest(file, {
|
| + 'test_name': test_name
|
| + })
|
|
|
| file.Close()
|
| file = CHeaderWriter(
|
| @@ -7828,13 +7851,22 @@ void GLES2DecoderTestBase::SetupInitStateExpectations() {
|
| elif state['type'] == 'NamedParameter':
|
| for item in state['states']:
|
| if 'extension_flag' in item:
|
| - continue
|
| + file.Write(" if (group_->feature_info()->feature_flags().%s) {\n" %
|
| + item['extension_flag'])
|
| + file.Write(" ")
|
| +
|
| file.Write(
|
| " EXPECT_CALL(*gl_, %s(%s, %s))\n" %
|
| (state['func'], item['enum'], item['default']))
|
| file.Write(" .Times(1)\n")
|
| file.Write(" .RetiresOnSaturation();\n")
|
| + if 'extension_flag' in item:
|
| + file.Write(" }\n")
|
| else:
|
| + if 'extension_flag' in state:
|
| + file.Write(" if (group_->feature_info()->feature_flags().%s) {\n" %
|
| + state['extension_flag'])
|
| + file.Write(" ")
|
| args = []
|
| for item in state['states']:
|
| if 'expected' in item:
|
| @@ -7845,10 +7877,35 @@ void GLES2DecoderTestBase::SetupInitStateExpectations() {
|
| (state['func'], ", ".join(args)))
|
| file.Write(" .Times(1)\n")
|
| file.Write(" .RetiresOnSaturation();\n")
|
| + if 'extension_flag' in state:
|
| + file.Write(" }\n")
|
| file.Write("""}
|
| """)
|
| file.Close()
|
|
|
| + def WriteServiceUnitTestsForExtensions(self, filename):
|
| + """Writes the service decorder unit tests for functions with extension_flag.
|
| +
|
| + The functions are special in that they need a specific unit test
|
| + baseclass to turn on the extension.
|
| + """
|
| + functions = [f for f in self.functions if f.GetInfo('extension_flag')]
|
| + file = CHeaderWriter(
|
| + filename,
|
| + "// It is included by gles2_cmd_decoder_unittest_extensions.cc\n")
|
| + for func in functions:
|
| + if True:
|
| + if func.GetInfo('unit_test') == False:
|
| + file.Write("// TODO(gman): %s\n" % func.name)
|
| + else:
|
| + extension = ToCamelCase(
|
| + ToGLExtensionString(func.GetInfo('extension_flag')))
|
| + func.WriteServiceUnitTest(file, {
|
| + 'test_name': 'GLES2DecoderTestWith%s' % extension
|
| + })
|
| +
|
| + file.Close()
|
| +
|
| def WriteGLES2Header(self, filename):
|
| """Writes the GLES2 header."""
|
| file = CHeaderWriter(
|
| @@ -8349,6 +8406,8 @@ def main(argv):
|
| gen.WriteClientContextStateImpl(
|
| "client/client_context_state_impl_autogen.h")
|
| gen.WriteServiceUnitTests("service/gles2_cmd_decoder_unittest_%d_autogen.h")
|
| + gen.WriteServiceUnitTestsForExtensions(
|
| + "service/gles2_cmd_decoder_unittest_extensions_autogen.h")
|
| gen.WriteServiceUtilsHeader("service/gles2_cmd_validation_autogen.h")
|
| gen.WriteServiceUtilsImplementation(
|
| "service/gles2_cmd_validation_implementation_autogen.h")
|
|
|