]> xenbits.xensource.com Git - libvirt.git/commitdiff
Create a re-usable DBus LD_PRELOAD mock library
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 12 Mar 2014 12:15:47 +0000 (12:15 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 8 Apr 2014 10:03:59 +0000 (11:03 +0100)
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@redhat.com>
tests/Makefile.am
tests/virmockdbus.c [new file with mode: 0644]

index c107645b4632249bddb115b7d2517149b5b5a989..6a0c05ac49bc00bb78e43f1b420daa53866807d1 100644 (file)
@@ -365,7 +365,8 @@ test_libraries += bhyvexml2argvmock.la
 endif WITH_BHYVE
 
 if WITH_DBUS
-test_libraries += virsystemdmock.la
+test_libraries += virsystemdmock.la \
+               virmockdbus.la
 endif WITH_DBUS
 
 if WITH_LINUX
@@ -904,6 +905,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)
@@ -916,7 +923,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 (file)
index 0000000..8a01d9d
--- /dev/null
@@ -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@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 */