diff options
Diffstat (limited to 'gfx/angle/src/tests/gl_tests/ObjectAllocationTest.cpp')
-rwxr-xr-x | gfx/angle/src/tests/gl_tests/ObjectAllocationTest.cpp | 54 |
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 |