[libvirt PATCH 07/17] tests: introduce virfirewallmock

Pavel Hrdina phrdina at redhat.com
Fri Apr 16 19:12:36 UTC 2021


This will allow us to run tests using firewall on hosts where the mocked
binaries are not available/installed instead of skipping these tests.

Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
---
 src/util/virfile.h      |  3 ++-
 tests/meson.build       |  1 +
 tests/virfirewallmock.c | 34 ++++++++++++++++++++++++++++++++++
 3 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 tests/virfirewallmock.c

diff --git a/src/util/virfile.h b/src/util/virfile.h
index a02779f0ec..b9f7b1766f 100644
--- a/src/util/virfile.h
+++ b/src/util/virfile.h
@@ -184,7 +184,8 @@ int virFileResolveAllLinks(const char *linkpath,
 int virFileIsLink(const char *linkpath)
     ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT;
 
-char *virFindFileInPath(const char *file);
+char *virFindFileInPath(const char *file)
+    G_GNUC_NO_INLINE;
 
 char *virFileFindResource(const char *filename,
                           const char *builddir,
diff --git a/tests/meson.build b/tests/meson.build
index 3f66861332..05c3e90195 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -60,6 +60,7 @@ mock_libs = [
   { 'name': 'shunload', 'sources': [ 'shunloadhelper.c' ] },
   { 'name': 'vircgroupmock' },
   { 'name': 'virfilecachemock' },
+  { 'name': 'virfirewallmock' },
   { 'name': 'virgdbusmock' },
   { 'name': 'virhostcpumock' },
   { 'name': 'virhostdevmock' },
diff --git a/tests/virfirewallmock.c b/tests/virfirewallmock.c
new file mode 100644
index 0000000000..6b096701c9
--- /dev/null
+++ b/tests/virfirewallmock.c
@@ -0,0 +1,34 @@
+/*
+ * 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/>.
+ */
+
+#include <config.h>
+
+#include "internal.h"
+#include "virfile.h"
+
+char *
+virFindFileInPath(const char *file)
+{
+    if (file &&
+        (g_strrstr(file, "ebtables") ||
+         g_strrstr(file, "iptables") ||
+         g_strrstr(file, "ip6tables"))) {
+        return g_strdup(file);
+    }
+
+    /* We should not need any other binaries so return NULL. */
+    return NULL;
+}
-- 
2.30.2




More information about the libvir-list mailing list