tests: Skip unsupported dbus-appinfo test on GNU/Hurd for the moment

Parts of the `dbus-appinfo` test need support for converting an FD to a
path, and Hurd doesn’t currently allow that (see
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4396#note_2279923).

Since there’s no fix for that visible in the medium term (new kernel
APIs will need to be added), skip parts of the `dbus-appinfo` test which
require that functionality for now.

This prevents the whole test from failing, and means we can usefully get
results from the parts of it which don’t depend on converting FDs to
paths.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>

Helps: #3538
This commit is contained in:
Philip Withnall 2024-12-10 11:47:43 +00:00
parent 7705bbe8fc
commit 8c3fda5c8d
No known key found for this signature in database
GPG Key ID: C5C42CFB268637CA
3 changed files with 38 additions and 0 deletions

View File

@ -532,6 +532,12 @@ test_portal_open_file (void)
char *uri; char *uri;
GFakeDesktopPortalThread *thread = NULL; GFakeDesktopPortalThread *thread = NULL;
if (!g_fake_desktop_portal_is_supported ())
{
g_test_skip ("fake-desktop-portal not currently supported on this platform");
return;
}
/* Run a fake-desktop-portal */ /* Run a fake-desktop-portal */
thread = g_fake_desktop_portal_thread_new (session_bus_get_address ()); thread = g_fake_desktop_portal_thread_new (session_bus_get_address ());
g_fake_desktop_portal_thread_run (thread); g_fake_desktop_portal_thread_run (thread);
@ -567,6 +573,12 @@ test_portal_open_uri (void)
const char *uri = "http://example.com"; const char *uri = "http://example.com";
GFakeDesktopPortalThread *thread = NULL; GFakeDesktopPortalThread *thread = NULL;
if (!g_fake_desktop_portal_is_supported ())
{
g_test_skip ("fake-desktop-portal not currently supported on this platform");
return;
}
/* Run a fake-desktop-portal */ /* Run a fake-desktop-portal */
thread = g_fake_desktop_portal_thread_new (session_bus_get_address ()); thread = g_fake_desktop_portal_thread_new (session_bus_get_address ());
g_fake_desktop_portal_thread_run (thread); g_fake_desktop_portal_thread_run (thread);
@ -611,6 +623,12 @@ test_portal_open_file_async (void)
char *uri; char *uri;
GFakeDesktopPortalThread *thread = NULL; GFakeDesktopPortalThread *thread = NULL;
if (!g_fake_desktop_portal_is_supported ())
{
g_test_skip ("fake-desktop-portal not currently supported on this platform");
return;
}
/* Run a fake-desktop-portal */ /* Run a fake-desktop-portal */
thread = g_fake_desktop_portal_thread_new (session_bus_get_address ()); thread = g_fake_desktop_portal_thread_new (session_bus_get_address ());
g_fake_desktop_portal_thread_run (thread); g_fake_desktop_portal_thread_run (thread);
@ -649,6 +667,12 @@ test_portal_open_uri_async (void)
const char *uri = "http://example.com"; const char *uri = "http://example.com";
GFakeDesktopPortalThread *thread = NULL; GFakeDesktopPortalThread *thread = NULL;
if (!g_fake_desktop_portal_is_supported ())
{
g_test_skip ("fake-desktop-portal not currently supported on this platform");
return;
}
/* Run a fake-desktop-portal */ /* Run a fake-desktop-portal */
thread = g_fake_desktop_portal_thread_new (session_bus_get_address ()); thread = g_fake_desktop_portal_thread_new (session_bus_get_address ());
g_fake_desktop_portal_thread_run (thread); g_fake_desktop_portal_thread_run (thread);

View File

@ -494,3 +494,15 @@ g_fake_desktop_portal_thread_stop (GFakeDesktopPortalThread *self)
g_cancellable_cancel (self->cancellable); g_cancellable_cancel (self->cancellable);
g_thread_join (g_steal_pointer (&self->thread)); g_thread_join (g_steal_pointer (&self->thread));
} }
/* Whether fake-desktop-portal is supported on this platform. This basically
* means whether _g_fd_query_path() will work at runtime. */
gboolean
g_fake_desktop_portal_is_supported (void)
{
#ifdef __GNU__
return FALSE;
#else
return TRUE;
#endif
}

View File

@ -33,6 +33,8 @@ const gchar *g_fake_desktop_portal_thread_get_last_request_activation_token (GFa
void g_fake_desktop_portal_thread_run (GFakeDesktopPortalThread *self); void g_fake_desktop_portal_thread_run (GFakeDesktopPortalThread *self);
void g_fake_desktop_portal_thread_stop (GFakeDesktopPortalThread *self); void g_fake_desktop_portal_thread_stop (GFakeDesktopPortalThread *self);
gboolean g_fake_desktop_portal_is_supported (void);
G_END_DECLS G_END_DECLS
#endif /* __FAKE_DESKTOP_PORTAL_H__ */ #endif /* __FAKE_DESKTOP_PORTAL_H__ */