aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJamie Madill <jmadill@chromium.org>2014-09-19 13:17:51 -0400
committerJamie Madill <jmadill@chromium.org>2014-09-19 18:50:53 +0000
commitee009b8ee5f35dc6cca44a30d4d6c9c65cfdb0a7 (patch)
tree0ebeb9afb7ef8cab7effee83a553f615ba7a944e /tests
parent2f06dbfb3f4bd815a3fe5b52638b091c1e356a04 (diff)
downloadangle-ee009b8ee5f35dc6cca44a30d4d6c9c65cfdb0a7.tar.gz
Fix a NULL dereference on buffer initialization.
In some cases, where the user would create a buffer with NULL (empty) data, we would attempt to dereference NULL when drawing with the buffer as a vertex attribute. BUG=angle:749 Change-Id: Ied5ecbab4608c85890cdf7cc32a8dae46989e33b Reviewed-on: https://chromium-review.googlesource.com/219090 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/angle_tests/BufferDataTest.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/angle_tests/BufferDataTest.cpp b/tests/angle_tests/BufferDataTest.cpp
index 41c00950..c566a85b 100644
--- a/tests/angle_tests/BufferDataTest.cpp
+++ b/tests/angle_tests/BufferDataTest.cpp
@@ -114,6 +114,19 @@ TEST_F(BufferDataTest, ZeroNonNULLData)
delete [] zeroData;
}
+TEST_F(BufferDataTest, NULLResolvedData)
+{
+ glBindBuffer(GL_ARRAY_BUFFER, mBuffer);
+ glBufferData(GL_ARRAY_BUFFER, 128, NULL, GL_DYNAMIC_DRAW);
+
+ glUseProgram(mProgram);
+ glVertexAttribPointer(mAttribLocation, 1, GL_FLOAT, GL_FALSE, 4, NULL);
+ glEnableVertexAttribArray(mAttribLocation);
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
+
+ drawQuad(mProgram, "position", 0.5f);
+}
+
TEST_F(BufferDataTest, HugeSetDataShouldNotCrash)
{
glBindBuffer(GL_ARRAY_BUFFER, mBuffer);