OSDN Git Service

egl: test: Check that eglGetConfigs checks for NULL parameter
[android-x86/frameworks-native.git] / opengl / tests / EGLTest / EGL_test.cpp
index 337ad33..c79fb5b 100644 (file)
@@ -19,6 +19,8 @@
 #include <utils/String8.h>
 
 #include <EGL/egl.h>
+#include <gui/Surface.h>
+
 
 namespace android {
 
@@ -51,6 +53,13 @@ protected:
     }
 };
 
+TEST_F(EGLTest, EGLGetConfigsWithNullNumConfigs) {
+    EGLBoolean success;
+    success = eglGetConfigs(mEglDisplay, NULL, 0, NULL);
+    ASSERT_EQ(EGL_FALSE, success);
+    ASSERT_EQ(EGL_BAD_PARAMETER, eglGetError());
+}
+
 TEST_F(EGLTest, DISABLED_EGLConfigEightBitFirst) {
 
     EGLint numConfigs;
@@ -84,6 +93,40 @@ TEST_F(EGLTest, DISABLED_EGLConfigEightBitFirst) {
     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));
+
+    struct DummyConsumer : public BnConsumerListener {
+        virtual void onFrameAvailable() {}
+        virtual void onBuffersReleased() {}
+    };
+
+    // Create a EGLSurface
+    sp<BufferQueue> bq = new BufferQueue();
+    bq->consumerConnect(new DummyConsumer, false);
+    sp<Surface> mSTC = new Surface(static_cast<sp<IGraphicBufferProducer> >( 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) {
 
     EGLint numConfigs;