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 <pekka.paalanen@collabora.com>
This commit is contained in:
Pekka Paalanen 2020-01-22 11:53:12 +02:00
parent dd84ecf44d
commit 0ce5a19b7e
2 changed files with 38 additions and 0 deletions

View file

@ -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);

View file

@ -26,6 +26,7 @@
#ifndef WESTON_TEST_FIXTURE_COMPOSITOR_H
#define WESTON_TEST_FIXTURE_COMPOSITOR_H
#include <wayland-client-protocol.h>
#include <libweston/libweston.h>
#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