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:
parent
4598f965fa
commit
42284f5f9e
@ -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)
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user