Added an EGLTest for eglTerminate
This tests if eglTerminate can succeed while objects are leaked. Currently the test fails because of a deadlock. Change-Id: Ibe26edfda28691284d0674e803e8d3114f3ce4c6
This commit is contained in:
parent
172a62a224
commit
1cbcb98a25
|
@ -15,6 +15,7 @@ LOCAL_SHARED_LIBRARIES := \
|
||||||
libcutils \
|
libcutils \
|
||||||
libstlport \
|
libstlport \
|
||||||
libutils \
|
libutils \
|
||||||
|
libgui \
|
||||||
|
|
||||||
LOCAL_STATIC_LIBRARIES := \
|
LOCAL_STATIC_LIBRARIES := \
|
||||||
libgtest \
|
libgtest \
|
||||||
|
|
|
@ -19,6 +19,9 @@
|
||||||
#include <utils/String8.h>
|
#include <utils/String8.h>
|
||||||
|
|
||||||
#include <EGL/egl.h>
|
#include <EGL/egl.h>
|
||||||
|
#include <gui/SurfaceTextureClient.h>
|
||||||
|
#include <gui/DummyConsumer.h>
|
||||||
|
|
||||||
|
|
||||||
namespace android {
|
namespace android {
|
||||||
|
|
||||||
|
@ -84,6 +87,35 @@ TEST_F(EGLTest, DISABLED_EGLConfigEightBitFirst) {
|
||||||
EXPECT_GE(components[2], 8);
|
EXPECT_GE(components[2], 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(EGLTest, EGLTerminateSucceedsWithRemainingObjects) {
|
||||||
|
EGLint numConfigs;
|
||||||
|
EGLConfig config;
|
||||||
|
EGLint attrs[] = {
|
||||||
|
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
|
||||||
|
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
|
||||||
|
EGL_RED_SIZE, 8,
|
||||||
|
EGL_GREEN_SIZE, 8,
|
||||||
|
EGL_BLUE_SIZE, 8,
|
||||||
|
EGL_ALPHA_SIZE, 8,
|
||||||
|
EGL_NONE
|
||||||
|
};
|
||||||
|
EXPECT_TRUE(eglChooseConfig(mEglDisplay, attrs, &config, 1, &numConfigs));
|
||||||
|
|
||||||
|
// Create a EGLSurface
|
||||||
|
sp<BufferQueue> bq = new BufferQueue();
|
||||||
|
bq->consumerConnect(new DummyConsumer());
|
||||||
|
sp<SurfaceTextureClient> mSTC = new SurfaceTextureClient(static_cast<sp<ISurfaceTexture> >( bq));
|
||||||
|
sp<ANativeWindow> mANW = mSTC;
|
||||||
|
|
||||||
|
EGLSurface eglSurface = eglCreateWindowSurface(mEglDisplay, config,
|
||||||
|
mANW.get(), NULL);
|
||||||
|
ASSERT_EQ(EGL_SUCCESS, eglGetError());
|
||||||
|
ASSERT_NE(EGL_NO_SURFACE, eglSurface) ;
|
||||||
|
|
||||||
|
// do not destroy eglSurface
|
||||||
|
// eglTerminate is called in the tear down and should destroy it for us
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(EGLTest, EGLConfigRGBA8888First) {
|
TEST_F(EGLTest, EGLConfigRGBA8888First) {
|
||||||
|
|
||||||
EGLint numConfigs;
|
EGLint numConfigs;
|
||||||
|
|
Loading…
Reference in New Issue