diff options
author | Leandro Ribeiro <leandro.ribeiro@collabora.com> | 2020-05-06 11:21:54 -0300 |
---|---|---|
committer | Pekka Paalanen <pq@iki.fi> | 2020-06-02 13:47:15 +0000 |
commit | b1c529e9d719b4a1afa713eb739b9f2b31dc0743 (patch) | |
tree | cea73abf9a19b717fcbdc22e082575d0b9c10ae7 | |
parent | e8a8c13e0d638b59bbdf81805e6555416a6a7e3e (diff) |
tests: add drm-backend smoke test
This adds the first DRM-backend test. It is very simple
and was made in order to make easier to add more complex
DRM-backend tests in the future.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
-rw-r--r-- | tests/drm-smoke-test.c | 72 | ||||
-rw-r--r-- | tests/meson.build | 1 |
2 files changed, 73 insertions, 0 deletions
diff --git a/tests/drm-smoke-test.c b/tests/drm-smoke-test.c new file mode 100644 index 00000000..4c5b6a59 --- /dev/null +++ b/tests/drm-smoke-test.c @@ -0,0 +1,72 @@ +/* + * Copyright © 2020 Collabora, Ltd. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "config.h" + +#include "weston-test-client-helper.h" +#include "weston-test-fixture-compositor.h" + +static enum test_result_code +fixture_setup(struct weston_test_harness *harness) +{ + struct compositor_setup setup; + + compositor_setup_defaults(&setup); + setup.shell = SHELL_TEST_DESKTOP; + setup.backend = WESTON_BACKEND_DRM; + setup.renderer = RENDERER_PIXMAN; + + return weston_test_harness_execute_as_client(harness, &setup); +} +DECLARE_FIXTURE_SETUP(fixture_setup); + +TEST(drm_smoke) { + + struct client *client; + struct buffer *buffer; + struct wl_surface *surface; + pixman_color_t red; + int i, frame; + + color_rgb888(&red, 255, 0, 0); + + client = create_client_and_test_surface(0, 0, 200, 200); + assert(client); + + surface = client->surface->wl_surface; + buffer = create_shm_buffer_a8r8g8b8(client, 200, 200); + + fill_image_with_color(buffer->image, &red); + + for (i = 0; i < 5; i++) { + wl_surface_attach(surface, buffer->proxy, 0, 0); + wl_surface_damage(surface, 0, 0, 200, 200); + frame_callback_set(surface, &frame); + wl_surface_commit(surface); + frame_callback_wait(client, &frame); + } + + client_destroy(client); +} diff --git a/tests/meson.build b/tests/meson.build index d26bc582..1b9ecdc8 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -118,6 +118,7 @@ dep_zucmain = declare_dependency( tests = [ { 'name': 'bad-buffer', }, + { 'name': 'drm-smoke', }, { 'name': 'buffer-transforms', }, { 'name': 'devices', }, { 'name': 'event', }, |