This test calls into src/util/virfirewalld.c where it uses DBus to
figure out if firewalld is registered. Without the mock it luckily
fails and the test works correctly.
To isolate the tests from host environment we should mock the DBus
calls.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
tests/meson.build | 2 +-
tests/networkxml2firewalltest.c | 25 +++++++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/tests/meson.build b/tests/meson.build
index 0a204c46e4..f0f3d8c1ef 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -404,7 +404,7 @@ endif
if conf.has('WITH_NETWORK')
tests += [
{ 'name': 'networkxml2conftest', 'link_with': [
network_driver_impl ] },
- { 'name': 'networkxml2firewalltest', 'link_with': [
network_driver_impl ] },
+ { 'name': 'networkxml2firewalltest', 'link_with': [
network_driver_impl ], 'deps': [ dbus_dep ] },
{ 'name': 'networkxml2xmltest', 'link_with': [
network_driver_impl ] },
]
endif
diff --git a/tests/networkxml2firewalltest.c b/tests/networkxml2firewalltest.c
index 29e7d8bc38..80e2d6a035 100644
--- a/tests/networkxml2firewalltest.c
+++ b/tests/networkxml2firewalltest.c
@@ -26,8 +26,13 @@
#if defined (__linux__)
+# if WITH_DBUS
+# include <dbus/dbus.h>
+# endif
+
# include "network/bridge_driver_platform.h"
# include "virbuffer.h"
+# include "virmock.h"
# define LIBVIRT_VIRFIREWALLPRIV_H_ALLOW
# include "virfirewallpriv.h"
@@ -43,6 +48,22 @@
# error "test case not ported to this platform"
# endif
+# if WITH_DBUS
+VIR_MOCK_WRAP_RET_ARGS(dbus_connection_send_with_reply_and_block,
+ DBusMessage *,
+ DBusConnection *, connection,
+ DBusMessage *, message,
+ int, timeout_milliseconds,
+ DBusError *, error)
+{
+ VIR_MOCK_REAL_INIT(dbus_connection_send_with_reply_and_block);
+
+ dbus_set_error_const(error, "org.freedesktop.error", "dbus is
disabled");
+
+ return NULL;
+}
+# endif
+
static void
testCommandDryRun(const char *const*args G_GNUC_UNUSED,
const char *const*env G_GNUC_UNUSED,
@@ -176,7 +197,11 @@ mymain(void)
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
+# if WITH_DBUS
+VIR_TEST_MAIN_PRELOAD(mymain, VIR_TEST_MOCK("virdbus"))
+# else
VIR_TEST_MAIN(mymain)
+# endif
#else /* ! defined (__linux__) */
--
2.26.2