summaryrefslogtreecommitdiffstats
path: root/gfx/angle/src/tests/gl_tests/ObjectAllocationTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/angle/src/tests/gl_tests/ObjectAllocationTest.cpp')
-rwxr-xr-xgfx/angle/src/tests/gl_tests/ObjectAllocationTest.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/gfx/angle/src/tests/gl_tests/ObjectAllocationTest.cpp b/gfx/angle/src/tests/gl_tests/ObjectAllocationTest.cpp
new file mode 100755
index 000000000..b0e59f7fc
--- /dev/null
+++ b/gfx/angle/src/tests/gl_tests/ObjectAllocationTest.cpp
@@ -0,0 +1,54 @@
+//
+// Copyright 2015 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// ObjectAllocationTest
+// Tests for object allocations and lifetimes.
+//
+
+#include "test_utils/ANGLETest.h"
+
+using namespace angle;
+
+namespace
+{
+
+class ObjectAllocationTest : public ANGLETest
+{
+ protected:
+ ObjectAllocationTest() {}
+};
+
+// Test that we don't re-allocate a bound framebuffer ID.
+TEST_P(ObjectAllocationTest, BindFramebufferBeforeGen)
+{
+ glBindFramebuffer(GL_FRAMEBUFFER, 1);
+ GLuint fbo = 0;
+ glGenFramebuffers(1, &fbo);
+ EXPECT_NE(1u, fbo);
+ glDeleteFramebuffers(1, &fbo);
+ EXPECT_GL_NO_ERROR();
+}
+
+// Test that we don't re-allocate a bound framebuffer ID, other pattern.
+TEST_P(ObjectAllocationTest, BindFramebufferAfterGen)
+{
+ GLuint firstFBO = 0;
+ glGenFramebuffers(1, &firstFBO);
+ glBindFramebuffer(GL_FRAMEBUFFER, 1);
+ glDeleteFramebuffers(1, &firstFBO);
+
+ glBindFramebuffer(GL_FRAMEBUFFER, 2);
+ GLuint secondFBOs[2] = {0};
+ glGenFramebuffers(2, secondFBOs);
+ EXPECT_NE(2u, secondFBOs[0]);
+ EXPECT_NE(2u, secondFBOs[1]);
+ glDeleteFramebuffers(2, secondFBOs);
+
+ EXPECT_GL_NO_ERROR();
+}
+
+} // anonymous namespace
+
+ANGLE_INSTANTIATE_TEST(ObjectAllocationTest, ES3_OPENGL(), ES3_D3D11()); \ No newline at end of file