Module: Mesa
Branch: master
Commit: 281466332ba81a4277a1ebd379d7463586125086
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=281466332ba81a4277a1ebd379d7463586125086

Author: Eric Anholt <[email protected]>
Date:   Wed Jul  3 11:34:37 2019 -0700

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 <[email protected]>

---

 src/gallium/targets/osmesa/meson.build   |  9 +++++++
 src/gallium/targets/osmesa/test-render.c | 43 ++++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+)

diff --git a/src/gallium/targets/osmesa/meson.build 
b/src/gallium/targets/osmesa/meson.build
index e873e311aa0..1612908d016 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 00000000000..62118607713
--- /dev/null
+++ b/src/gallium/targets/osmesa/test-render.c
@@ -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;
+}

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to