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

Unified Diff: gpu/command_buffer/build_gles2_cmd_buffer.py

Issue 7789021: Fix GPU cmd tests so they pass ASAN (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 3 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
« no previous file with comments | « no previous file | gpu/command_buffer/common/gles2_cmd_format_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 90ff54ac8c2651f711ee0d706f43b69da5d9a08f..3423a8d97c3520d2083dd1cb3cc5baed93234bdf 100755
--- a/gpu/command_buffer/build_gles2_cmd_buffer.py
+++ b/gpu/command_buffer/build_gles2_cmd_buffer.py
@@ -2037,8 +2037,8 @@ COMPILE_ASSERT(offsetof(%(cmd_name)s::Result, %(field_name)s) == %(offset)d,
def WriteFormatTest(self, func, file):
"""Writes a format test for a command."""
- file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name)
- file.Write(" %s cmd = { { 0 } };\n" % func.name)
+ file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
+ file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name))
file.Write(" void* next_cmd = cmd.Set(\n")
file.Write(" &cmd")
args = func.GetCmdArgs()
@@ -2051,41 +2051,18 @@ COMPILE_ASSERT(offsetof(%(cmd_name)s::Result, %(field_name)s) == %(offset)d,
file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
file.Write(" cmd.header.command);\n")
func.type_handler.WriteCmdSizeTest(func, file)
- file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n")
- file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd));\n");
for arg in args:
file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
(arg.type, value, arg.name))
value += 1
+ file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
+ file.Write(" next_cmd, sizeof(cmd));\n")
file.Write("}\n")
file.Write("\n")
def WriteImmediateFormatTest(self, func, file):
"""Writes a format test for an immediate version of a command."""
- file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name)
- file.Write(" int8 buf[256] = { 0, };\n")
- file.Write(" %s& cmd = *static_cast<%s*>(static_cast<void*>(&buf));\n" %
- (func.name, func.name))
- file.Write(" void* next_cmd = cmd.Set(\n")
- file.Write(" &cmd")
- args = func.GetCmdArgs()
- value = 11
- for arg in args:
- file.Write(",\n static_cast<%s>(%d)" % (arg.type, value))
- value += 1
- file.Write(");\n")
- value = 11
- file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
- file.Write(" cmd.header.command);\n")
- func.type_handler.WriteImmediateCmdSizeTest(func, file)
- file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n")
- file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd));\n");
- for arg in args:
- file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
- (arg.type, value, arg.name))
- value += 1
- file.Write("}\n")
- file.Write("\n")
+ pass
def WriteBucketFormatTest(self, func, file):
"""Writes a format test for a bucket version of a command."""
@@ -2963,33 +2940,20 @@ TEST_F(%(test_name)s, %(name)sInvalidArgs) {
def WriteImmediateFormatTest(self, func, file):
"""Overrriden from TypeHandler."""
- file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name)
+ file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
file.Write(" static GLuint ids[] = { 12, 23, 34, };\n")
- file.Write(" int8 buf[256] = { 0, };\n")
- file.Write(" %s& cmd = *static_cast<%s*>(static_cast<void*>(&buf));\n" %
- (func.name, func.name))
+ file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name))
file.Write(" void* next_cmd = cmd.Set(\n")
- file.Write(" &cmd")
- args = func.GetCmdArgs()
- value = 11
- for arg in args:
- file.Write(",\n static_cast<%s>(%d)" % (arg.type, value))
- value += 1
- file.Write(",\n ids);\n")
- args = func.GetCmdArgs()
- value = 11
+ file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n")
file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
file.Write(" cmd.header.command);\n")
file.Write(" EXPECT_EQ(sizeof(cmd) +\n")
file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n")
file.Write(" cmd.header.size * 4u);\n")
- file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n")
- file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd) +\n");
- file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u));\n");
- for arg in args:
- file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
- (arg.type, value, arg.name))
- value += 1
+ file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n");
+ file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
+ file.Write(" next_cmd, sizeof(cmd) +\n")
+ file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n")
file.Write(" // TODO(gman): Check that ids were inserted;\n")
file.Write("}\n")
file.Write("\n")
@@ -3287,33 +3251,20 @@ TEST_F(%(test_name)s, %(name)sInvalidArgs) {
def WriteImmediateFormatTest(self, func, file):
"""Overrriden from TypeHandler."""
- file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name)
+ file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
file.Write(" static GLuint ids[] = { 12, 23, 34, };\n")
- file.Write(" int8 buf[256] = { 0, };\n")
- file.Write(" %s& cmd = *static_cast<%s*>(static_cast<void*>(&buf));\n" %
- (func.name, func.name))
+ file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name))
file.Write(" void* next_cmd = cmd.Set(\n")
- file.Write(" &cmd")
- args = func.GetCmdArgs()
- value = 11
- for arg in args:
- file.Write(",\n static_cast<%s>(%d)" % (arg.type, value))
- value += 1
- file.Write(",\n ids);\n")
- args = func.GetCmdArgs()
- value = 11
+ file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n")
file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
file.Write(" cmd.header.command);\n")
file.Write(" EXPECT_EQ(sizeof(cmd) +\n")
file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n")
file.Write(" cmd.header.size * 4u);\n")
- file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n")
- file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd) +\n");
- file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u));\n");
- for arg in args:
- file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
- (arg.type, value, arg.name))
- value += 1
+ file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n");
+ file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
+ file.Write(" next_cmd, sizeof(cmd) +\n")
+ file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n")
file.Write(" // TODO(gman): Check that ids were inserted;\n")
file.Write("}\n")
file.Write("\n")
@@ -3651,16 +3602,14 @@ TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
def WriteImmediateFormatTest(self, func, file):
"""Overrriden from TypeHandler."""
- file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name)
+ file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
file.Write(" const int kSomeBaseValueToTestWith = 51;\n")
file.Write(" static %s data[] = {\n" % func.info.data_type)
for v in range(0, func.info.count):
file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" %
(func.info.data_type, v))
file.Write(" };\n")
- file.Write(" int8 buf[256] = { 0, };\n")
- file.Write(" %s& cmd = *static_cast<%s*>(static_cast<void*>(&buf));\n" %
- (func.name, func.name))
+ file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name))
file.Write(" void* next_cmd = cmd.Set(\n")
file.Write(" &cmd")
args = func.GetCmdArgs()
@@ -3676,13 +3625,13 @@ TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
file.Write(" EXPECT_EQ(sizeof(cmd) +\n")
file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)),\n")
file.Write(" cmd.header.size * 4u);\n")
- file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n")
- file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd) +\n")
- file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n")
for arg in args:
file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
(arg.type, value, arg.name))
value += 1
+ file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
+ file.Write(" next_cmd, sizeof(cmd) +\n")
+ file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n")
file.Write(" // TODO(gman): Check that data was inserted;\n")
file.Write("}\n")
file.Write("\n")
@@ -3882,16 +3831,18 @@ TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
def WriteImmediateFormatTest(self, func, file):
"""Overrriden from TypeHandler."""
- file.Write("TEST(GLES2FormatTest, %s) {\n" % func.name)
+ file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
file.Write(" const int kSomeBaseValueToTestWith = 51;\n")
file.Write(" static %s data[] = {\n" % func.info.data_type)
for v in range(0, func.info.count * 2):
file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" %
(func.info.data_type, v))
file.Write(" };\n")
- file.Write(" int8 buf[256] = { 0, };\n")
- file.Write(" %s& cmd = *static_cast<%s*>(static_cast<void*>(&buf));\n" %
- (func.name, func.name))
+ file.Write(" %s& cmd = *GetBufferAs<%s>();\n" % (func.name, func.name))
+ file.Write(" const GLsizei kNumElements = 2;\n")
+ file.Write(" const size_t kExpectedCmdSize =\n")
+ file.Write(" sizeof(cmd) + kNumElements * sizeof(%s) * %d;\n" %
+ (func.info.data_type, func.info.count))
file.Write(" void* next_cmd = cmd.Set(\n")
file.Write(" &cmd")
args = func.GetCmdArgs()
@@ -3904,16 +3855,14 @@ TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) {
value = 1
file.Write(" EXPECT_EQ(static_cast<uint32>(%s::kCmdId),\n" % func.name)
file.Write(" cmd.header.command);\n")
- file.Write(" EXPECT_EQ(sizeof(cmd) +\n")
- file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)),\n")
- file.Write(" cmd.header.size * 4u);\n")
- file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n")
- file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd) +\n")
- file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n")
+ file.Write(" EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);\n")
for arg in args:
file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
(arg.type, value, arg.name))
value += 1
+ file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
+ file.Write(" next_cmd, sizeof(cmd) +\n")
+ file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n")
file.Write(" // TODO(gman): Check that data was inserted;\n")
file.Write("}\n")
file.Write("\n")
@@ -4059,9 +4008,8 @@ class GLcharHandler(CustomHandler):
(arg.type, value, arg.name))
value += 1
code = """
-TEST(GLES2FormatTest, %(func_name)s) {
- int8 buf[256] = { 0, };
- %(func_name)s& cmd = *static_cast<%(func_name)s*>(static_cast<void*>(&buf));
+TEST_F(GLES2FormatTest, %(func_name)s) {
+ %(func_name)s& cmd = *GetBufferAs<%(func_name)s>();
static const char* const test_str = \"test string\";
void* next_cmd = cmd.Set(
&cmd,
@@ -4079,6 +4027,10 @@ TEST(GLES2FormatTest, %(func_name)s) {
%(check_code)s
EXPECT_EQ(static_cast<uint32>(strlen(test_str)), cmd.data_size);
EXPECT_EQ(0, memcmp(test_str, ImmediateDataAddress(&cmd), strlen(test_str)));
+ CheckBytesWritten(
+ next_cmd,
+ sizeof(cmd) + RoundSizeToMultipleOfEntries(strlen(test_str)),
+ sizeof(cmd) + strlen(test_str));
}
"""
« no previous file with comments | « no previous file | gpu/command_buffer/common/gles2_cmd_format_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698