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 wl_egl_window *native_window;
|
||||||
struct surface *surface = test_data->client->surface;
|
struct surface *surface = test_data->client->surface;
|
||||||
|
const char *str, *mesa;
|
||||||
|
|
||||||
static const EGLint context_attribs[] = {
|
static const EGLint context_attribs[] = {
|
||||||
EGL_CONTEXT_CLIENT_VERSION, 2,
|
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,
|
ret = eglMakeCurrent(test_data->egl_dpy, test_data->egl_surface,
|
||||||
test_data->egl_surface, test_data->egl_ctx);
|
test_data->egl_surface, test_data->egl_ctx);
|
||||||
assert(ret == EGL_TRUE);
|
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)
|
TEST(test_buffer_count)
|
||||||
|
@ -496,6 +496,20 @@ static const struct wl_registry_listener registry_listener = {
|
|||||||
handle_global
|
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
|
static void
|
||||||
log_handler(const char *fmt, va_list args)
|
log_handler(const char *fmt, va_list args)
|
||||||
{
|
{
|
||||||
|
@ -124,4 +124,7 @@ frame_callback_wait(struct client *client, int *done);
|
|||||||
int
|
int
|
||||||
get_n_egl_buffers(struct client *client);
|
get_n_egl_buffers(struct client *client);
|
||||||
|
|
||||||
|
void
|
||||||
|
skip(const char *fmt, ...);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user