A number of test suites want to mock the DBus APIs. To avoid
re-inventing the wheel create a re-usable virmockdbus.la
library for LD_PRELOAD usage.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
tests/Makefile.am | 11 +++++++--
tests/virmockdbus.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 73 insertions(+), 2 deletions(-)
create mode 100644 tests/virmockdbus.c
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 896737b..1cbf56b 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -355,7 +355,8 @@ test_libraries += libqemumonitortestutils.la \
endif WITH_QEMU
if WITH_DBUS
-test_libraries += virsystemdmock.la
+test_libraries += virsystemdmock.la \
+ virmockdbus.la
endif WITH_DBUS
if WITH_LINUX
@@ -869,6 +870,12 @@ virdbustest_SOURCES = \
virdbustest_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
virdbustest_LDADD = $(LDADDS) $(DBUS_LIBS)
+virmockdbus_la_SOURCES = \
+ virmockdbus.c
+virmockdbus_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
+virmockdbus_la_LDFLAGS = -module -avoid-version \
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation
+
virsystemdtest_SOURCES = \
virsystemdtest.c testutils.h testutils.c
virsystemdtest_CFLAGS = $(AM_CFLAGS)
@@ -881,7 +888,7 @@ virsystemdmock_la_LDFLAGS = -module -avoid-version \
-rpath /evil/libtool/hack/to/force/shared/lib/creation
else ! WITH_DBUS
-EXTRA_DIST += virdbustest.c virsystemdtest.c virsystemdmock.c
+EXTRA_DIST += virdbustest.c virmockdbus.c virsystemdtest.c virsystemdmock.c
endif ! WITH_DBUS
viruritest_SOURCES = \
diff --git a/tests/virmockdbus.c b/tests/virmockdbus.c
new file mode 100644
index 0000000..8a01d9d
--- /dev/null
+++ b/tests/virmockdbus.c
@@ -0,0 +1,64 @@
+/*
+ * virmockdbus.c: mocking of dbus message send/reply
+ *
+ * Copyright (C) 2013 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <
http://www.gnu.org/licenses/>.
+ *
+ * Author: Daniel P. Berrange <berrange(a)redhat.com>
+ */
+
+#include <config.h>
+
+#ifdef WITH_DBUS
+# include "virmock.h"
+# include <dbus/dbus.h>
+
+VIR_MOCK_STUB_VOID_ARGS(dbus_connection_set_change_sigpipe,
+ dbus_bool_t, will_modify_sigpipe)
+
+
+VIR_MOCK_STUB_RET_ARGS(dbus_bus_get,
+ DBusConnection *, (DBusConnection *)0x1,
+ DBusBusType, type,
+ DBusError *, error)
+
+VIR_MOCK_STUB_VOID_ARGS(dbus_connection_set_exit_on_disconnect,
+ DBusConnection *, connection,
+ dbus_bool_t, exit_on_disconnect)
+
+VIR_MOCK_STUB_RET_ARGS(dbus_connection_set_watch_functions,
+ dbus_bool_t, 1,
+ DBusConnection *, connection,
+ DBusAddWatchFunction, add_function,
+ DBusRemoveWatchFunction, remove_function,
+ DBusWatchToggledFunction, toggled_function,
+ void *, data,
+ DBusFreeFunction, free_data_function)
+
+VIR_MOCK_STUB_RET_ARGS(dbus_message_set_reply_serial,
+ dbus_bool_t, 1,
+ DBusMessage *, message,
+ dbus_uint32_t, serial)
+
+
+VIR_MOCK_LINK_RET_ARGS(dbus_connection_send_with_reply_and_block,
+ DBusMessage *,
+ DBusConnection *, connection,
+ DBusMessage *, message,
+ int, timeout_milliseconds,
+ DBusError *, error)
+
+#endif /* WITH_DBUS */
--
1.8.5.3