[cairo] [PATCH] test: Add test oversized egl surfaces
RAVI NANJUNDAPPA
nravi.n at samsung.com
Tue Sep 16 00:03:00 PDT 2014
Hi,
Am facing some problem with UTF while sending the patch inline. I guess
that's one of the reason why that patch was not be displayed in the mailing
list as well.
So attaching the patch here for better clarity.
> -----Original Message-----
> From: cairo [mailto:cairo-bounces at cairographics.org] On Behalf Of RAVI
> NANJUNDAPPA
> Sent: Tuesday, September 16, 2014 12:00 PM
> To: cairo at cairographics.org
> Subject: Re: [cairo] [PATCH] test: Add test oversized egl surfaces
>
> Hi,
>
> I've referred test/gl-oversized-surface.c file and wrote this new
test/egl-
> oversized-surface.c to handle the egl surfaces.
> Please let me know if the banner needs to modified.
>
> Thanks and Best Regards,
> N Ravi
>
> > -----Original Message-----
> > From: Ravi Nanjundappa [mailto:nravi.n at samsung.com]
> > Sent: Tuesday, September 16, 2014 11:52 AM
> > To: cairo at cairographics.org
> > Cc: Ravi Nanjundappa
> > Subject: [PATCH] test: Add test oversized egl surfaces
> >
> > This test exercises error scenario when creating over sized egl
> > surface
> that is
> > larger than maximum framebuffer or texture dimensions of the context
> >
> > Signed-off-by: Ravi Nanjundappa <nravi.n at samsung.com>
> > ---
> > test/Makefile.am | 4 ++
> > test/Makefile.sources | 3 ++
> > test/egl-oversized-surface.c | 112
> > ++++++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 119 insertions(+)
> > create mode 100644 test/egl-oversized-surface.c
> >
> > diff --git a/test/Makefile.am b/test/Makefile.am index
> > 81c50e6..950629b
> > 100644
> > --- a/test/Makefile.am
> > +++ b/test/Makefile.am
> > @@ -20,6 +20,10 @@ if CAIRO_HAS_GL_SURFACE test_sources +=
> > $(gl_surface_test_sources) endif
> >
> > +if CAIRO_HAS_EGL_FUNCTIONS
> > +test_sources += $(egl_surface_test_sources) endif
> > +
> > # Need to add quartz-surface-source
> > if CAIRO_HAS_QUARTZ_SURFACE
> > test_sources += $(quartz_surface_test_sources) diff --git
> > a/test/Makefile.sources b/test/Makefile.sources index 916d91a..689645c
> > 100644
> > --- a/test/Makefile.sources
> > +++ b/test/Makefile.sources
> > @@ -401,6 +401,9 @@ gl_surface_test_sources = \
> > gl-oversized-surface.c \
> > gl-surface-source.c
> >
> > +egl_surface_test_sources = \
> > + egl-oversized-surface.c
> > +
> > quartz_surface_test_sources = quartz-surface-source.c
> >
> > pdf_surface_test_sources = \
> > diff --git a/test/egl-oversized-surface.c
> > b/test/egl-oversized-surface.c
> new
> > file mode 100644 index 0000000..f946da6
> > --- /dev/null
> > +++ b/test/egl-oversized-surface.c
> > @@ -0,0 +1,112 @@
> > +/*
> > + * Copyright © 2014 Samsung Electronics
> > + *
> > + * Permission is hereby granted, free of charge, to any person
> > + * obtaining a copy of this software and associated documentation
> > + * files (the "Software"), to deal in the Software without
> > + * restriction, including without limitation the rights to use, copy,
> > + * modify, merge, publish, distribute, sublicense, and/or sell copies
> > + * of the Software, and to permit persons to whom the Software is
> > + * furnished to do so, subject to the following conditions:
> > + *
> > + * The above copyright notice and this permission notice shall be
> > + * included in all copies or substantial portions of the Software.
> > + *
> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
> KIND,
> > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
> WARRANTIES
> > OF
> > + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
> COPYRIGHT
> > HOLDERS
> > + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
> > AN
> > + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
> OR
> > IN
> > + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> IN
> > THE
> > + * SOFTWARE.
> > + *
> > + * Author: Ravi Nanjundappa <nravi.n at samsung.com> */
> > +
> > +/*
> > + * This test exercises error scenario for over sized egl surface
> > + *
> > + */
> > +
> > +#include "cairo-test.h"
> > +#include <cairo-gl.h>
> > +#include <assert.h>
> > +#include <limits.h>
> > +
> > +static cairo_test_status_t
> > +preamble (cairo_test_context_t *test_ctx) {
> > + EGLint rgba_attribs[] = {
> > + EGL_RED_SIZE, 8,
> > + EGL_GREEN_SIZE, 8,
> > + EGL_BLUE_SIZE, 8,
> > + EGL_ALPHA_SIZE, 8,
> > + EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
> > +#if CAIRO_HAS_GL_SURFACE
> > + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, #elif
> CAIRO_HAS_GLESV2_SURFACE
> > + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, #endif
> > + EGL_NONE
> > + };
> > + const EGLint ctx_attribs[] = {
> > +#if CAIRO_HAS_GLESV2_SURFACE
> > + EGL_CONTEXT_CLIENT_VERSION, 2,
> > +#endif
> > + EGL_NONE
> > + };
> > +
> > + EGLDisplay dpy;
> > + EGLContext ctx;
> > + EGLConfig config;
> > + EGLint numConfigs;
> > + int major, minor;
> > + cairo_device_t *device;
> > + cairo_surface_t *oversized_surface;
> > + cairo_test_status_t test_status = CAIRO_TEST_SUCCESS;
> > +
> > + dpy = eglGetDisplay (EGL_DEFAULT_DISPLAY);
> > + if (! eglInitialize (dpy, &major, &minor)) {
> > + return CAIRO_TEST_UNTESTED;
> > + }
> > +
> > + eglChooseConfig (dpy, rgba_attribs, &config, 1, &numConfigs);
> > + if (numConfigs == 0) {
> > + return CAIRO_TEST_UNTESTED;
> > + }
> > +
> > +#if CAIRO_HAS_GL_SURFACE
> > + eglBindAPI (EGL_OPENGL_API);
> > +#elif CAIRO_HAS_GLESV2_SURFACE
> > + eglBindAPI (EGL_OPENGL_ES_API);
> > +#endif
> > +
> > + ctx = eglCreateContext (dpy, config, EGL_NO_CONTEXT,
> > + ctx_attribs);
> > + if (ctx == EGL_NO_CONTEXT) {
> > + eglTerminate (dpy);
> > + return CAIRO_TEST_UNTESTED;
> > + }
> > +
> > + device = cairo_egl_device_create (dpy, ctx);
> > +
> > + oversized_surface = cairo_gl_surface_create (device,
> > CAIRO_CONTENT_COLOR_ALPHA, INT_MAX, INT_MAX);
> > + if (cairo_surface_status (oversized_surface) !=
> > CAIRO_STATUS_INVALID_SIZE)
> > + test_status = CAIRO_TEST_FAILURE;
> > +
> > + cairo_device_destroy (device);
> > +
> > + eglDestroyContext (dpy, ctx);
> > + eglMakeCurrent (dpy, EGL_NO_SURFACE, EGL_NO_SURFACE,
> > EGL_NO_CONTEXT);
> > + eglTerminate (dpy);
> > +
> > + return test_status;
> > +}
> > +
> > +CAIRO_TEST (egl_oversized_surface,
> > + "Test that creating a surface beyond texture limits results in
> an
> > error surface",
> > + "egl", /* keywords */
> > + NULL, /* requirements */
> > + 0, 0,
> > + preamble, NULL)
> > --
> > 1.7.9.5
>
> --
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-test-Add-test-oversized-egl-surfaces.patch
Type: application/octet-stream
Size: 5103 bytes
Desc: not available
URL: <http://lists.cairographics.org/archives/cairo/attachments/20140916/a83f57d8/attachment.obj>
More information about the cairo
mailing list