From b1c529e9d719b4a1afa713eb739b9f2b31dc0743 Mon Sep 17 00:00:00 2001 From: Leandro Ribeiro Date: Wed, 6 May 2020 11:21:54 -0300 Subject: [PATCH] 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 --- tests/drm-smoke-test.c | 72 ++++++++++++++++++++++++++++++++++++++++++ tests/meson.build | 1 + 2 files changed, 73 insertions(+) create mode 100644 tests/drm-smoke-test.c 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', },