diff options
author | Simon McVittie <smcv@collabora.com> | 2019-06-29 15:59:51 +0100 |
---|---|---|
committer | Simon McVittie <smcv@collabora.com> | 2019-07-02 20:44:33 +0100 |
commit | 0ba41e071c157e96d796a506ddcc73268f2b7a0c (patch) | |
tree | 51e4bb3ef9ea32fb806922750cd8780e060913f7 /dbus | |
parent | 0b8878133f806351b213b80097b2bd6de5677f2c (diff) | |
download | dbus-0ba41e071c157e96d796a506ddcc73268f2b7a0c.tar.gz |
Move _dbus_check_fdleaks_* from dbus-message-util to tests
This is only called from test code.
Signed-off-by: Simon McVittie <smcv@collabora.com>
Diffstat (limited to 'dbus')
-rw-r--r-- | dbus/dbus-message-internal.h | 4 | ||||
-rw-r--r-- | dbus/dbus-message-util.c | 142 |
2 files changed, 1 insertions, 145 deletions
diff --git a/dbus/dbus-message-internal.h b/dbus/dbus-message-internal.h index f73d3146..adc07f98 100644 --- a/dbus/dbus-message-internal.h +++ b/dbus/dbus-message-internal.h @@ -143,10 +143,6 @@ _dbus_clear_variant (DBusVariant **variant_p) _dbus_clear_pointer_impl (DBusVariant, variant_p, _dbus_variant_free); } -typedef struct DBusInitialFDs DBusInitialFDs; -DBusInitialFDs *_dbus_check_fdleaks_enter (void); -void _dbus_check_fdleaks_leave (DBusInitialFDs *fds); - DBUS_END_DECLS #endif /* DBUS_MESSAGE_INTERNAL_H */ diff --git a/dbus/dbus-message-util.c b/dbus/dbus-message-util.c index 3ac9437d..d279b1d2 100644 --- a/dbus/dbus-message-util.c +++ b/dbus/dbus-message-util.c @@ -1,9 +1,7 @@ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* dbus-message-util.c Would be in dbus-message.c, but only used by bus/tests * - * Copyright 2009 Red Hat, Inc. - * Copyright 2011-2017 Collabora Ltd. - * Copyright 2017 Endless Mobile, Inc. + * Copyright 2017 Collabora Ltd. * * Licensed under the Academic Free License version 2.1 * @@ -25,23 +23,7 @@ #include <config.h> -#include "dbus-internals.h" -#include "dbus-test.h" #include "dbus-message-private.h" -#include "dbus-marshal-recursive.h" -#include "dbus-string.h" -#ifdef HAVE_UNIX_FD_PASSING -#include "dbus-sysdeps-unix.h" -#endif -#include <dbus/dbus-test-tap.h> - -#ifdef __linux__ -/* Necessary for the Linux-specific fd leak checking code only */ -#include <sys/types.h> -#include <dirent.h> -#include <stdlib.h> -#include <errno.h> -#endif /** * @addtogroup DBusMessage @@ -63,125 +45,3 @@ _dbus_message_get_n_unix_fds (DBusMessage *message) return 0; #endif } - -#ifdef DBUS_ENABLE_EMBEDDED_TESTS - -#ifdef __linux__ -struct DBusInitialFDs { - fd_set set; -}; -#endif - -DBusInitialFDs * -_dbus_check_fdleaks_enter (void) -{ -#ifdef __linux__ - DIR *d; - DBusInitialFDs *fds; - - /* this is plain malloc so it won't interfere with leak checking */ - fds = malloc (sizeof (DBusInitialFDs)); - _dbus_assert (fds != NULL); - - /* This works on Linux only */ - - if ((d = opendir ("/proc/self/fd"))) - { - struct dirent *de; - - while ((de = readdir(d))) - { - long l; - char *e = NULL; - int fd; - - if (de->d_name[0] == '.') - continue; - - errno = 0; - l = strtol (de->d_name, &e, 10); - _dbus_assert (errno == 0 && e && !*e); - - fd = (int) l; - - if (fd < 3) - continue; - - if (fd == dirfd (d)) - continue; - - if (fd >= FD_SETSIZE) - { - _dbus_verbose ("FD %d unexpectedly large; cannot track whether " - "it is leaked\n", fd); - continue; - } - - FD_SET (fd, &fds->set); - } - - closedir (d); - } - - return fds; -#else - return NULL; -#endif -} - -void -_dbus_check_fdleaks_leave (DBusInitialFDs *fds) -{ -#ifdef __linux__ - DIR *d; - - /* This works on Linux only */ - - if ((d = opendir ("/proc/self/fd"))) - { - struct dirent *de; - - while ((de = readdir(d))) - { - long l; - char *e = NULL; - int fd; - - if (de->d_name[0] == '.') - continue; - - errno = 0; - l = strtol (de->d_name, &e, 10); - _dbus_assert (errno == 0 && e && !*e); - - fd = (int) l; - - if (fd < 3) - continue; - - if (fd == dirfd (d)) - continue; - - if (fd >= FD_SETSIZE) - { - _dbus_verbose ("FD %d unexpectedly large; cannot track whether " - "it is leaked\n", fd); - continue; - } - - if (FD_ISSET (fd, &fds->set)) - continue; - - _dbus_test_fatal ("file descriptor %i leaked in %s.", fd, __FILE__); - } - - closedir (d); - } - - free (fds); -#else - _dbus_assert (fds == NULL); -#endif -} - -#endif /* DBUS_ENABLE_EMBEDDED_TESTS */ |