tests: Only run buffer-count test if we have at least mesa 10

https://bugs.freedesktop.org/show_bug.cgi?id=72835
This commit is contained in:
Kristian Høgsberg 2014-01-01 17:38:04 -08:00
parent 4598f965fa
commit 42284f5f9e
3 changed files with 30 additions and 0 deletions

View File

@ -45,6 +45,7 @@ init_egl(struct test_data *test_data)
{
struct wl_egl_window *native_window;
struct surface *surface = test_data->client->surface;
const char *str, *mesa;
static const EGLint context_attribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2,
@ -95,6 +96,18 @@ init_egl(struct test_data *test_data)
ret = eglMakeCurrent(test_data->egl_dpy, test_data->egl_surface,
test_data->egl_surface, test_data->egl_ctx);
assert(ret == EGL_TRUE);
/* This test is specific to mesa 10.0 and later, which is the
* first release that doesn't accidentally triple-buffer. */
str = (const char *) glGetString(GL_VERSION);
mesa = strstr(str, "Mesa ");
if (mesa == NULL)
skip("unknown EGL implementation (%s)\n", str);
if (sscanf(mesa + 5, "%d.%d", &major, &minor) != 2)
skip("unrecognized mesa version (%s)\n", str);
if (major < 10)
skip("mesa version too old (%s)\n", str);
}
TEST(test_buffer_count)

View File

@ -496,6 +496,20 @@ static const struct wl_registry_listener registry_listener = {
handle_global
};
void
skip(const char *fmt, ...)
{
va_list argp;
va_start(argp, fmt);
vfprintf(stderr, fmt, argp);
va_end(argp);
/* automake tests uses exit code 77, but we don't have a good
* way to make weston exit with that from here. */
exit(0);
}
static void
log_handler(const char *fmt, va_list args)
{

View File

@ -124,4 +124,7 @@ frame_callback_wait(struct client *client, int *done);
int
get_n_egl_buffers(struct client *client);
void
skip(const char *fmt, ...);
#endif