mirror of
https://github.com/brl/mutter.git
synced 2025-02-20 15:04:09 +00:00
tests/wayland: Create native backends for KVM/tty tests
Run the wayland tests also in the KVM and tty tests suits. Change some of the tests to also use a native backend via VKMS. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3350>
This commit is contained in:
parent
13bbc4bc43
commit
c8191920e8
@ -524,7 +524,7 @@ if have_native_tests
|
|||||||
privileged_test_cases += kms_test_cases
|
privileged_test_cases += kms_test_cases
|
||||||
|
|
||||||
# Wayland tests
|
# Wayland tests
|
||||||
test_cases += [
|
wayland_test_cases = [
|
||||||
{
|
{
|
||||||
'name': 'wayland-client-tests',
|
'name': 'wayland-client-tests',
|
||||||
'suite': 'wayland',
|
'suite': 'wayland',
|
||||||
@ -587,6 +587,10 @@ if have_native_tests
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
test_cases += wayland_test_cases
|
||||||
|
privileged_test_cases += wayland_test_cases
|
||||||
|
|
||||||
if have_xwayland
|
if have_xwayland
|
||||||
x11_compositor_checker = executable('x11-compositor-checker',
|
x11_compositor_checker = executable('x11-compositor-checker',
|
||||||
sources: ['x11-compositor-checker.c'],
|
sources: ['x11-compositor-checker.c'],
|
||||||
@ -755,12 +759,13 @@ if have_kvm_tests or have_tty_tests
|
|||||||
variants = [['', test_env_variables, []]]
|
variants = [['', test_env_variables, []]]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
test_executable = executable('mutter-' + test_case['name'],
|
test_executable = executable('mutter-privileged-' + test_case['name'],
|
||||||
sources: test_case['sources'],
|
sources: test_case['sources'],
|
||||||
include_directories: tests_includes,
|
include_directories: tests_includes,
|
||||||
c_args: [
|
c_args: [
|
||||||
tests_c_args,
|
tests_c_args,
|
||||||
'-DG_LOG_DOMAIN="mutter-@0@-test"'.format(test_case['name']),
|
'-DG_LOG_DOMAIN="mutter-@0@-test"'.format(test_case['name']),
|
||||||
|
'-DMUTTER_PRIVILEGED_TEST=1',
|
||||||
],
|
],
|
||||||
dependencies: [
|
dependencies: [
|
||||||
libmutter_test_dep,
|
libmutter_test_dep,
|
||||||
|
23
src/tests/monitor-configs/vkms-640x480.xml
Normal file
23
src/tests/monitor-configs/vkms-640x480.xml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<monitors version="2">
|
||||||
|
<configuration>
|
||||||
|
<logicalmonitor>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<scale>1</scale>
|
||||||
|
<primary>yes</primary>
|
||||||
|
<monitor>
|
||||||
|
<monitorspec>
|
||||||
|
<connector>Virtual-1</connector>
|
||||||
|
<vendor>unknown</vendor>
|
||||||
|
<product>unknown</product>
|
||||||
|
<serial>unknown</serial>
|
||||||
|
</monitorspec>
|
||||||
|
<mode>
|
||||||
|
<width>640</width>
|
||||||
|
<height>480</height>
|
||||||
|
<rate>59.94</rate>
|
||||||
|
</mode>
|
||||||
|
</monitor>
|
||||||
|
</logicalmonitor>
|
||||||
|
</configuration>
|
||||||
|
</monitors>
|
@ -18,6 +18,9 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include "backends/meta-virtual-monitor.h"
|
#include "backends/meta-virtual-monitor.h"
|
||||||
|
#include "backends/native/meta-backend-native.h"
|
||||||
|
#include "backends/native/meta-kms.h"
|
||||||
|
#include "backends/native/meta-kms-device.h"
|
||||||
#include "compositor/meta-window-actor-private.h"
|
#include "compositor/meta-window-actor-private.h"
|
||||||
#include "core/window-private.h"
|
#include "core/window-private.h"
|
||||||
#include "meta-test/meta-context-test.h"
|
#include "meta-test/meta-context-test.h"
|
||||||
@ -170,11 +173,29 @@ on_before_tests (void)
|
|||||||
{
|
{
|
||||||
MetaWaylandCompositor *compositor =
|
MetaWaylandCompositor *compositor =
|
||||||
meta_context_get_wayland_compositor (test_context);
|
meta_context_get_wayland_compositor (test_context);
|
||||||
|
MetaBackend *backend = meta_context_get_backend (test_context);
|
||||||
|
MetaMonitorManager *monitor_manager =
|
||||||
|
meta_backend_get_monitor_manager (backend);
|
||||||
|
#ifdef MUTTER_PRIVILEGED_TEST
|
||||||
|
MetaKms *kms = meta_backend_native_get_kms (META_BACKEND_NATIVE (backend));
|
||||||
|
MetaKmsDevice *kms_device = meta_kms_get_devices (kms)->data;
|
||||||
|
#endif
|
||||||
|
|
||||||
test_driver = meta_wayland_test_driver_new (compositor);
|
test_driver = meta_wayland_test_driver_new (compositor);
|
||||||
|
|
||||||
|
#ifdef MUTTER_PRIVILEGED_TEST
|
||||||
|
meta_wayland_test_driver_set_property (test_driver,
|
||||||
|
"gpu-path",
|
||||||
|
meta_kms_device_get_path (kms_device));
|
||||||
|
|
||||||
|
meta_set_custom_monitor_config_full (backend,
|
||||||
|
"vkms-640x480.xml",
|
||||||
|
META_MONITORS_CONFIG_FLAG_NONE);
|
||||||
|
#else
|
||||||
virtual_monitor = meta_create_test_monitor (test_context,
|
virtual_monitor = meta_create_test_monitor (test_context,
|
||||||
640, 480, 60.0);
|
640, 480, 60.0);
|
||||||
|
#endif
|
||||||
|
meta_monitor_manager_reload (monitor_manager);
|
||||||
|
|
||||||
wayland_test_client = meta_wayland_test_client_new (test_context,
|
wayland_test_client = meta_wayland_test_client_new (test_context,
|
||||||
"fullscreen");
|
"fullscreen");
|
||||||
@ -211,8 +232,13 @@ main (int argc,
|
|||||||
{
|
{
|
||||||
g_autoptr (MetaContext) context = NULL;
|
g_autoptr (MetaContext) context = NULL;
|
||||||
|
|
||||||
|
#ifdef MUTTER_PRIVILEGED_TEST
|
||||||
|
context = meta_create_test_context (META_CONTEXT_TEST_TYPE_VKMS,
|
||||||
|
META_CONTEXT_TEST_FLAG_NO_X11);
|
||||||
|
#else
|
||||||
context = meta_create_test_context (META_CONTEXT_TEST_TYPE_HEADLESS,
|
context = meta_create_test_context (META_CONTEXT_TEST_TYPE_HEADLESS,
|
||||||
META_CONTEXT_TEST_FLAG_NO_X11);
|
META_CONTEXT_TEST_FLAG_NO_X11);
|
||||||
|
#endif
|
||||||
g_assert (meta_context_configure (context, &argc, &argv, NULL));
|
g_assert (meta_context_configure (context, &argc, &argv, NULL));
|
||||||
|
|
||||||
test_context = context;
|
test_context = context;
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
#include <gio/gio.h>
|
#include <gio/gio.h>
|
||||||
|
|
||||||
#include "backends/meta-virtual-monitor.h"
|
#include "backends/meta-virtual-monitor.h"
|
||||||
|
#include "backends/native/meta-backend-native.h"
|
||||||
|
#include "backends/native/meta-kms.h"
|
||||||
|
#include "backends/native/meta-kms-device.h"
|
||||||
#include "compositor/meta-window-actor-private.h"
|
#include "compositor/meta-window-actor-private.h"
|
||||||
#include "core/display-private.h"
|
#include "core/display-private.h"
|
||||||
#include "core/window-private.h"
|
#include "core/window-private.h"
|
||||||
@ -27,6 +30,7 @@
|
|||||||
#include "meta/meta-later.h"
|
#include "meta/meta-later.h"
|
||||||
#include "meta/meta-workspace-manager.h"
|
#include "meta/meta-workspace-manager.h"
|
||||||
#include "tests/meta-test-utils.h"
|
#include "tests/meta-test-utils.h"
|
||||||
|
#include "tests/meta-monitor-test-utils.h"
|
||||||
#include "tests/meta-wayland-test-driver.h"
|
#include "tests/meta-wayland-test-driver.h"
|
||||||
#include "tests/meta-wayland-test-utils.h"
|
#include "tests/meta-wayland-test-utils.h"
|
||||||
#include "wayland/meta-wayland-client-private.h"
|
#include "wayland/meta-wayland-client-private.h"
|
||||||
@ -835,11 +839,29 @@ on_before_tests (void)
|
|||||||
{
|
{
|
||||||
MetaWaylandCompositor *compositor =
|
MetaWaylandCompositor *compositor =
|
||||||
meta_context_get_wayland_compositor (test_context);
|
meta_context_get_wayland_compositor (test_context);
|
||||||
|
MetaBackend *backend = meta_context_get_backend (test_context);
|
||||||
|
MetaMonitorManager *monitor_manager =
|
||||||
|
meta_backend_get_monitor_manager (backend);
|
||||||
|
#ifdef MUTTER_PRIVILEGED_TEST
|
||||||
|
MetaKms *kms = meta_backend_native_get_kms (META_BACKEND_NATIVE (backend));
|
||||||
|
MetaKmsDevice *kms_device = meta_kms_get_devices (kms)->data;
|
||||||
|
#endif
|
||||||
|
|
||||||
test_driver = meta_wayland_test_driver_new (compositor);
|
test_driver = meta_wayland_test_driver_new (compositor);
|
||||||
|
|
||||||
|
#ifdef MUTTER_PRIVILEGED_TEST
|
||||||
|
meta_wayland_test_driver_set_property (test_driver,
|
||||||
|
"gpu-path",
|
||||||
|
meta_kms_device_get_path (kms_device));
|
||||||
|
|
||||||
|
meta_set_custom_monitor_config_full (backend,
|
||||||
|
"vkms-640x480.xml",
|
||||||
|
META_MONITORS_CONFIG_FLAG_NONE);
|
||||||
|
#else
|
||||||
virtual_monitor = meta_create_test_monitor (test_context,
|
virtual_monitor = meta_create_test_monitor (test_context,
|
||||||
640, 480, 60.0);
|
640, 480, 60.0);
|
||||||
|
#endif
|
||||||
|
meta_monitor_manager_reload (monitor_manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -876,10 +898,15 @@ init_tests (void)
|
|||||||
toplevel_apply_limits);
|
toplevel_apply_limits);
|
||||||
g_test_add_func ("/wayland/toplevel/activation",
|
g_test_add_func ("/wayland/toplevel/activation",
|
||||||
toplevel_activation);
|
toplevel_activation);
|
||||||
|
#ifdef MUTTER_PRIVILEGED_TEST
|
||||||
|
(void)(toplevel_bounds_struts);
|
||||||
|
(void)(toplevel_bounds_monitors);
|
||||||
|
#else
|
||||||
g_test_add_func ("/wayland/toplevel/bounds/struts",
|
g_test_add_func ("/wayland/toplevel/bounds/struts",
|
||||||
toplevel_bounds_struts);
|
toplevel_bounds_struts);
|
||||||
g_test_add_func ("/wayland/toplevel/bounds/monitors",
|
g_test_add_func ("/wayland/toplevel/bounds/monitors",
|
||||||
toplevel_bounds_monitors);
|
toplevel_bounds_monitors);
|
||||||
|
#endif
|
||||||
g_test_add_func ("/wayland/xdg-foreign/set-parent-of",
|
g_test_add_func ("/wayland/xdg-foreign/set-parent-of",
|
||||||
xdg_foreign_set_parent_of);
|
xdg_foreign_set_parent_of);
|
||||||
}
|
}
|
||||||
@ -890,8 +917,13 @@ main (int argc,
|
|||||||
{
|
{
|
||||||
g_autoptr (MetaContext) context = NULL;
|
g_autoptr (MetaContext) context = NULL;
|
||||||
|
|
||||||
|
#ifdef MUTTER_PRIVILEGED_TEST
|
||||||
|
context = meta_create_test_context (META_CONTEXT_TEST_TYPE_VKMS,
|
||||||
|
META_CONTEXT_TEST_FLAG_NO_X11);
|
||||||
|
#else
|
||||||
context = meta_create_test_context (META_CONTEXT_TEST_TYPE_HEADLESS,
|
context = meta_create_test_context (META_CONTEXT_TEST_TYPE_HEADLESS,
|
||||||
META_CONTEXT_TEST_FLAG_NO_X11);
|
META_CONTEXT_TEST_FLAG_NO_X11);
|
||||||
|
#endif
|
||||||
g_assert (meta_context_configure (context, &argc, &argv, NULL));
|
g_assert (meta_context_configure (context, &argc, &argv, NULL));
|
||||||
|
|
||||||
test_context = context;
|
test_context = context;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user