summaryrefslogtreecommitdiff
path: root/tools/tool-common.c
diff options
context:
space:
mode:
authorAlban Crequy <alban.crequy@collabora.co.uk>2011-09-26 11:02:59 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2014-10-14 13:53:54 +0100
commit10f8b67a9f1875f83ac5b81b844c1f3f151a68cf (patch)
treefd7a85ccd0d26002d5105906185aaba9c4fc3bfb /tools/tool-common.c
parentc88525f815d17933e2c00cb20f9eb3804a860257 (diff)
downloaddbus-10f8b67a9f1875f83ac5b81b844c1f3f151a68cf.tar.gz
Add dbus-test-tool, currently with "echo" and "spam" modes
This is installed by default, but easy to filter out for embedded systems or whatever. Based on earlier work by Simon McVittie and Will Thompson Bug: https://bugs.freedesktop.org/show_bug.cgi?id=34140 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Diffstat (limited to 'tools/tool-common.c')
-rw-r--r--tools/tool-common.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/tools/tool-common.c b/tools/tool-common.c
new file mode 100644
index 00000000..b6af629f
--- /dev/null
+++ b/tools/tool-common.c
@@ -0,0 +1,60 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* tool-common - common functionality for dbus-test-tool modules
+ *
+ * Copyright © 2003 Philip Blundell <philb@gnu.org>
+ * Copyright © 2011 Nokia Corporation
+ * Copyright © 2014 Collabora Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#include <config.h>
+#include "tool-common.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+#ifdef DBUS_WIN
+#include <windows.h>
+#endif
+
+/* a hack to avoid having to depend on the static -util version of libdbus;
+ * it's useful for ancillary programs to be able to use the shared library */
+void
+tool_millisleep (int ms)
+{
+#ifdef DBUS_WIN
+ Sleep (ms);
+#else
+ fd_set nothing;
+ struct timeval tv;
+
+ tv.tv_sec = ms / 1000;
+ tv.tv_usec = (ms % 1000) * 1000;
+
+ FD_ZERO (&nothing);
+ select (1, &nothing, &nothing, &nothing, &tv);
+#endif
+}
+
+void
+tool_oom (const char *doing)
+{
+ fprintf (stderr, "OOM while %s\n", doing);
+ exit (1);
+}