mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 23:16:14 +01:00
Merge branch 'pollable-test-dlopen-leak' into 'master'
tests: Fix leak of dlopened module in pollable test See merge request GNOME/glib!1936
This commit is contained in:
commit
f443144091
@ -187,25 +187,28 @@ test_pollable_unix_pty (void)
|
||||
{
|
||||
int (*openpty_impl) (int *, int *, char *, void *, void *);
|
||||
int a, b, status;
|
||||
#ifdef __linux__
|
||||
void *handle;
|
||||
#endif
|
||||
|
||||
g_test_summary ("Test that PTYs are considered pollable");
|
||||
|
||||
#ifdef __linux__
|
||||
dlopen ("libutil.so", RTLD_GLOBAL | RTLD_LAZY);
|
||||
handle = dlopen ("libutil.so", RTLD_GLOBAL | RTLD_LAZY);
|
||||
#endif
|
||||
|
||||
openpty_impl = dlsym (RTLD_DEFAULT, "openpty");
|
||||
if (openpty_impl == NULL)
|
||||
{
|
||||
g_test_skip ("System does not support openpty()");
|
||||
return;
|
||||
goto close_libutil;
|
||||
}
|
||||
|
||||
status = openpty_impl (&a, &b, NULL, NULL, NULL);
|
||||
if (status == -1)
|
||||
{
|
||||
g_test_skip ("Unable to open PTY");
|
||||
return;
|
||||
goto close_libutil;
|
||||
}
|
||||
|
||||
in = G_POLLABLE_INPUT_STREAM (g_unix_input_stream_new (a, TRUE));
|
||||
@ -218,6 +221,11 @@ test_pollable_unix_pty (void)
|
||||
|
||||
close (a);
|
||||
close (b);
|
||||
|
||||
close_libutil:
|
||||
#ifdef __linux__
|
||||
dlclose (handle);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user