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 <tarceri@itsqueeze.com>
This commit is contained in:
@@ -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
|
||||
|
||||
43
src/gallium/targets/osmesa/test-render.c
Normal file
43
src/gallium/targets/osmesa/test-render.c
Normal file
@@ -0,0 +1,43 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user