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

Unified Diff: gpu/command_buffer/build_gles2_cmd_buffer.py

Issue 473853002: Make it possible to test command buffer decoder functions with extension flags (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add a hunk to avoid functions jumping between numbered unittests Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..71a787ae43a808c9cd4e34a1dce089ccc7f5a609 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.
piman 2014/08/15 20:37:24 Could we do the opposite, instead of trying to rev
Kimmo Kinnunen 2014/08/20 05:59:05 Ok, I'll see what I can do. (If I understand corre
+ 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,20 @@ 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")
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:
@@ -7849,6 +7879,29 @@ void GLES2DecoderTestBase::SetupInitStateExpectations() {
""")
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 +8402,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")

Powered by Google App Engine
This is Rietveld 408576698