From 0ce5a19b7e5cc64c3cb2d37fac9b485498a544b0 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Wed, 22 Jan 2020 11:53:12 +0200 Subject: [PATCH] tests: add scale and transform compositor options With these, a test can initialize the headless-backend with non-default scale and transform which allows testing output scales and transforms. Signed-off-by: Pekka Paalanen --- tests/weston-test-fixture-compositor.c | 31 ++++++++++++++++++++++++++ tests/weston-test-fixture-compositor.h | 7 ++++++ 2 files changed, 38 insertions(+) diff --git a/tests/weston-test-fixture-compositor.c b/tests/weston-test-fixture-compositor.c index 0c8004b4..da0fa26a 100644 --- a/tests/weston-test-fixture-compositor.c +++ b/tests/weston-test-fixture-compositor.c @@ -107,6 +107,8 @@ compositor_setup_defaults_(struct compositor_setup *setup, .xwayland = false, .width = 320, .height = 240, + .scale = 1, + .transform = WL_OUTPUT_TRANSFORM_NORMAL, .config_file = NULL, .extra_module = NULL, .logging_scopes = NULL, @@ -163,6 +165,24 @@ shell_to_str(enum shell_type t) return names[t]; } +static const char * +transform_to_str(enum wl_output_transform t) +{ + static const char * const names[] = { + [WL_OUTPUT_TRANSFORM_NORMAL] = "normal", + [WL_OUTPUT_TRANSFORM_90] = "rotate-90", + [WL_OUTPUT_TRANSFORM_180] = "rotate-180", + [WL_OUTPUT_TRANSFORM_270] = "rotate-270", + [WL_OUTPUT_TRANSFORM_FLIPPED] = "flipped", + [WL_OUTPUT_TRANSFORM_FLIPPED_90] = "flipped-rotate-90", + [WL_OUTPUT_TRANSFORM_FLIPPED_180] = "flipped-rotate-180", + [WL_OUTPUT_TRANSFORM_FLIPPED_270] = "flipped-rotate-270", + }; + + assert(t < ARRAY_LENGTH(names) && names[t]); + return names[t]; +} + /** Execute compositor * * Manufactures the compositor command line and calls wet_main(). @@ -259,6 +279,17 @@ execute_compositor(const struct compositor_setup *setup, asprintf(&tmp, "--height=%d", setup->height); prog_args_take(&args, tmp); + if (setup->scale != 1) { + asprintf(&tmp, "--scale=%d", setup->scale); + prog_args_take(&args, tmp); + } + + if (setup->transform != WL_OUTPUT_TRANSFORM_NORMAL) { + asprintf(&tmp, "--transform=%s", + transform_to_str(setup->transform)); + prog_args_take(&args, tmp); + } + if (setup->config_file) { asprintf(&tmp, "--config=%s", setup->config_file); prog_args_take(&args, tmp); diff --git a/tests/weston-test-fixture-compositor.h b/tests/weston-test-fixture-compositor.h index 6e8d680e..fd8d0e5c 100644 --- a/tests/weston-test-fixture-compositor.h +++ b/tests/weston-test-fixture-compositor.h @@ -26,6 +26,7 @@ #ifndef WESTON_TEST_FIXTURE_COMPOSITOR_H #define WESTON_TEST_FIXTURE_COMPOSITOR_H +#include #include #include "weston-testsuite-data.h" @@ -82,6 +83,10 @@ struct compositor_setup { unsigned width; /** Default output height. */ unsigned height; + /** Default output scale. */ + int scale; + /** Default output transform, one of WL_OUTPUT_TRANSFORM_*. */ + enum wl_output_transform transform; /** The absolute path to \c weston.ini to use, * or NULL for \c --no-config . */ const char *config_file; @@ -109,6 +114,8 @@ compositor_setup_defaults_(struct compositor_setup *setup, * - xwayland: no * - width: 320 * - height: 240 + * - scale: 1 + * - transform: WL_OUTPUT_TRANSFORM_NORMAL * - config_file: none * - extra_module: none * - logging_scopes: compositor defaults