// // 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());