tests/kms: Ignore real GPUs when only VKMS is wanted
This prevents spurious test failures on machines with a real GPU as well as VKMS. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4274>
This commit is contained in:
parent
f0993312e5
commit
ef43bec374
@ -42,6 +42,7 @@ gboolean meta_is_udev_device_disable_vrr (GUdevDevice *device);
|
||||
|
||||
gboolean meta_is_udev_device_ignore (GUdevDevice *device);
|
||||
|
||||
META_EXPORT_TEST
|
||||
gboolean meta_is_udev_test_device (GUdevDevice *device);
|
||||
|
||||
gboolean meta_is_udev_device_preferred_primary (GUdevDevice *device);
|
||||
|
@ -653,7 +653,11 @@ kms_test_cases = [
|
||||
{
|
||||
'name': 'kms-headless-start',
|
||||
'suite': 'backend/native/kms',
|
||||
'sources': [ 'native-kms-headless-start.c', ],
|
||||
'sources': [
|
||||
'meta-kms-test-utils.c',
|
||||
'meta-kms-test-utils.h',
|
||||
'native-kms-headless-start.c',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'kms-hotplug',
|
||||
|
@ -165,3 +165,28 @@ meta_get_mode_rect (MetaKmsMode *mode)
|
||||
meta_kms_mode_get_width (mode),
|
||||
meta_kms_mode_get_height (mode));
|
||||
}
|
||||
|
||||
GUdevDevice *
|
||||
meta_get_test_udev_device (MetaUdev *udev)
|
||||
{
|
||||
g_autolist (GObject) list = NULL;
|
||||
g_autoptr (GError) error = NULL;
|
||||
GUdevDevice *test_device = NULL;
|
||||
GList *l;
|
||||
|
||||
list = meta_udev_list_drm_devices (udev, META_UDEV_DEVICE_TYPE_CARD, &error);
|
||||
|
||||
for (l = list; l; l = l->next)
|
||||
{
|
||||
GUdevDevice *udev_device = l->data;
|
||||
|
||||
if (meta_is_udev_test_device (udev_device))
|
||||
{
|
||||
g_assert_null (test_device);
|
||||
g_set_object (&test_device, udev_device);
|
||||
}
|
||||
}
|
||||
|
||||
g_assert_nonnull (test_device);
|
||||
return test_device;
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "backends/meta-udev.h"
|
||||
#include "backends/native/meta-drm-buffer.h"
|
||||
#include "backends/native/meta-kms-types.h"
|
||||
#include "meta/meta-context.h"
|
||||
@ -45,3 +46,5 @@ MetaDrmBuffer * meta_create_test_mode_dumb_buffer (MetaKmsDevice *device,
|
||||
MetaFixed16Rectangle meta_get_mode_fixed_rect_16 (MetaKmsMode *mode);
|
||||
|
||||
MtkRectangle meta_get_mode_rect (MetaKmsMode *mode);
|
||||
|
||||
GUdevDevice * meta_get_test_udev_device (MetaUdev *udev);
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "core/display-private.h"
|
||||
#include "meta-test/meta-context-test.h"
|
||||
#include "tests/drm-mock/drm-mock.h"
|
||||
#include "tests/meta-kms-test-utils.h"
|
||||
#include "tests/meta-monitor-manager-test.h"
|
||||
|
||||
static MetaContext *test_context;
|
||||
@ -75,20 +76,16 @@ meta_test_headless_monitor_connect (void)
|
||||
MetaUdev *udev = meta_backend_get_udev (backend);
|
||||
MetaMonitorManager *monitor_manager =
|
||||
meta_backend_get_monitor_manager (backend);
|
||||
g_autolist (GObject) udev_devices = NULL;
|
||||
g_autoptr (GUdevDevice) udev_device = NULL;
|
||||
GList *logical_monitors;
|
||||
MetaLogicalMonitor *logical_monitor;
|
||||
MtkRectangle monitor_layout;
|
||||
ClutterActor *stage;
|
||||
g_autoptr (GError) error = NULL;
|
||||
|
||||
drm_mock_unset_resource_filter (DRM_MOCK_CALL_FILTER_GET_CONNECTOR);
|
||||
|
||||
udev_devices = meta_udev_list_drm_devices (udev,
|
||||
META_UDEV_DEVICE_TYPE_CARD,
|
||||
&error);
|
||||
g_assert_cmpuint (g_list_length (udev_devices), ==, 1);
|
||||
g_signal_emit_by_name (udev, "hotplug", g_list_first (udev_devices)->data);
|
||||
udev_device = meta_get_test_udev_device (udev);
|
||||
g_signal_emit_by_name (udev, "hotplug", udev_device);
|
||||
|
||||
logical_monitors =
|
||||
meta_monitor_manager_get_logical_monitors (monitor_manager);
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "meta-test/meta-context-test.h"
|
||||
#include "tests/drm-mock/drm-mock.h"
|
||||
#include "tests/meta-test-utils.h"
|
||||
#include "tests/meta-kms-test-utils.h"
|
||||
|
||||
typedef enum _State
|
||||
{
|
||||
@ -137,21 +138,15 @@ meta_test_disconnect_connect (void)
|
||||
meta_backend_get_monitor_manager (backend);
|
||||
ClutterActor *stage = meta_backend_get_stage (backend);
|
||||
MetaUdev *udev = meta_backend_get_udev (backend);
|
||||
g_autolist (GObject) udev_devices = NULL;
|
||||
GUdevDevice *udev_device;
|
||||
g_autoptr (GUdevDevice) udev_device = NULL;
|
||||
GList *logical_monitors;
|
||||
gulong after_paint_handler_id;
|
||||
gulong presented_handler_id;
|
||||
ClutterStageView *view;
|
||||
CoglFramebuffer *onscreen;
|
||||
g_autoptr (GError) error = NULL;
|
||||
State state;
|
||||
|
||||
udev_devices = meta_udev_list_drm_devices (udev,
|
||||
META_UDEV_DEVICE_TYPE_CARD,
|
||||
&error);
|
||||
g_assert_cmpuint (g_list_length (udev_devices), ==, 1);
|
||||
udev_device = g_list_first (udev_devices)->data;
|
||||
udev_device = meta_get_test_udev_device (udev);
|
||||
|
||||
logical_monitors =
|
||||
meta_monitor_manager_get_logical_monitors (monitor_manager);
|
||||
@ -372,15 +367,9 @@ emulate_hotplug (void)
|
||||
{
|
||||
MetaBackend *backend = meta_context_get_backend (test_context);
|
||||
MetaUdev *udev = meta_backend_get_udev (backend);
|
||||
g_autoptr (GError) error = NULL;
|
||||
g_autolist (GObject) udev_devices = NULL;
|
||||
GUdevDevice *udev_device;
|
||||
g_autoptr (GUdevDevice) udev_device = NULL;
|
||||
|
||||
udev_devices = meta_udev_list_drm_devices (udev,
|
||||
META_UDEV_DEVICE_TYPE_CARD,
|
||||
&error);
|
||||
g_assert_cmpuint (g_list_length (udev_devices), ==, 1);
|
||||
udev_device = g_list_first (udev_devices)->data;
|
||||
udev_device = meta_get_test_udev_device (udev);
|
||||
g_signal_emit_by_name (udev, "hotplug", udev_device);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user