mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 15:10:12 +01:00
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:
parent
d89d075589
commit
281466332b
2 changed files with 52 additions and 0 deletions
|
|
@ -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;
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue