Implement basic functionality in BufferGL.
BUG=angle:881
Change-Id: I8d761741d204d26cea1c87eec725bc8ebaaaa584
Reviewed-on: https://chromium-review.googlesource.com/252800
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/tests/angle_tests/SimpleOperationTest.cpp b/tests/angle_tests/SimpleOperationTest.cpp
index 7eb97cf..4a10885 100644
--- a/tests/angle_tests/SimpleOperationTest.cpp
+++ b/tests/angle_tests/SimpleOperationTest.cpp
@@ -142,3 +142,49 @@
EXPECT_GL_NO_ERROR();
}
+
+TYPED_TEST(SimpleOperationTest, BufferDataWithData)
+{
+ GLuint buffer;
+ glGenBuffers(1, &buffer);
+ glBindBuffer(GL_ARRAY_BUFFER, buffer);
+
+ std::vector<uint8_t> data(1024);
+ glBufferData(GL_ARRAY_BUFFER, data.size(), &data[0], GL_STATIC_DRAW);
+
+ glDeleteBuffers(1, &buffer);
+
+ EXPECT_GL_NO_ERROR();
+}
+
+TYPED_TEST(SimpleOperationTest, BufferDataWithNoData)
+{
+ GLuint buffer;
+ glGenBuffers(1, &buffer);
+ glBindBuffer(GL_ARRAY_BUFFER, buffer);
+ glBufferData(GL_ARRAY_BUFFER, 1024, nullptr, GL_STATIC_DRAW);
+ glDeleteBuffers(1, &buffer);
+
+ EXPECT_GL_NO_ERROR();
+}
+
+TYPED_TEST(SimpleOperationTest, BufferSubData)
+{
+ GLuint buffer;
+ glGenBuffers(1, &buffer);
+ glBindBuffer(GL_ARRAY_BUFFER, buffer);
+
+ const size_t bufferSize = 1024;
+ glBufferData(GL_ARRAY_BUFFER, bufferSize, nullptr, GL_STATIC_DRAW);
+
+ const size_t subDataCount = 16;
+ std::vector<uint8_t> data(bufferSize / subDataCount);
+ for (size_t i = 0; i < subDataCount; i++)
+ {
+ glBufferSubData(GL_ARRAY_BUFFER, data.size() * i, data.size(), &data[0]);
+ }
+
+ glDeleteBuffers(1, &buffer);
+
+ EXPECT_GL_NO_ERROR();
+}