From: Eric Anholt Date: Wed, 3 Jul 2019 18:34:37 +0000 (-0700) Subject: gallium/osmesa: Introduce a test. X-Git-Tag: upstream/19.3.0~2224 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=281466332ba81a4277a1ebd379d7463586125086;p=platform%2Fupstream%2Fmesa.git gallium/osmesa: Introduce a test. Given that we occasionally touch this code and probably nobody really wants to think about it, introduce a minimal test so that we know we haven't completely broken OSMesa. Reviewed-by: Timothy Arceri --- diff --git a/src/gallium/targets/osmesa/meson.build b/src/gallium/targets/osmesa/meson.build index e873e31..1612908 100644 --- a/src/gallium/targets/osmesa/meson.build +++ b/src/gallium/targets/osmesa/meson.build @@ -62,3 +62,12 @@ pkg.generate( libraries : libosmesa, libraries_private : gl_priv_libs, ) + +if with_tests + test('osmesa-render', + executable('osmesa-render', + 'test-render.c', + include_directories : inc_common, + link_with: libosmesa), + suite: 'gallium') +endif diff --git a/src/gallium/targets/osmesa/test-render.c b/src/gallium/targets/osmesa/test-render.c new file mode 100644 index 0000000..6211860 --- /dev/null +++ b/src/gallium/targets/osmesa/test-render.c @@ -0,0 +1,43 @@ +#include +#include +#include "GL/osmesa.h" + +static void +render(void) +{ + glClearColor(0, 1, 0, 0); + glClear(GL_COLOR_BUFFER_BIT); +} + +int +main(int argc, char **argv) +{ + OSMesaContext ctx; + uint32_t pixel; + uint32_t green = 0xff << 8; + int w = 1, h = 1; + + ctx = OSMesaCreateContext(GL_RGBA, NULL); + if (!ctx) { + fprintf(stderr, "Context create failed\n"); + return 1; + } + + if (!OSMesaMakeCurrent(ctx, &pixel, GL_UNSIGNED_BYTE, w, h )) { + fprintf(stderr, "MakeCurrent failed\n"); + return 1; + } + + render(); + glFinish(); + + if (pixel != green) { + fprintf(stderr, "Expected: 0x%08x\n", green); + fprintf(stderr, "Probed: 0x%08x\n", pixel); + return 1; + } + + OSMesaDestroyContext(ctx); + + return 0; +}