]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: introduce virfirewallmock
authorPavel Hrdina <phrdina@redhat.com>
Wed, 14 Apr 2021 21:52:14 +0000 (23:52 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Wed, 21 Apr 2021 12:18:51 +0000 (14:18 +0200)
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@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
src/util/virfile.h
tests/meson.build
tests/virfirewallmock.c [new file with mode: 0644]

index a02779f0ec42adbd5df9d0f91f150431dbab16da..b9f7b1766f9580b38e71d9b83a20f51c66a7efe7 100644 (file)
@@ -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,
index 3f66861332cf830b39a2a24ece6fc08068c67dd1..05c3e90195e731d9e2fab04fd643df952cb016ed 100644 (file)
@@ -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 (file)
index 0000000..6b09670
--- /dev/null
@@ -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;
+}