]> xenbits.xensource.com Git - libvirt.git/commitdiff
test: fix nwfilter tests following changes in virfirewall.c
authorStefan Berger <stefanb@linux.vnet.ibm.com>
Mon, 22 Dec 2014 21:57:21 +0000 (16:57 -0500)
committerStefan Berger <stefanb@linux.vnet.ibm.com>
Mon, 22 Dec 2014 21:57:21 +0000 (16:57 -0500)
Some of the nwfilter tests are now failing since --concurrent shows
up in the ebtables command. To avoid this, implement a function
preventing the probing for lock support in the eb/iptables tools
and use it in the tests.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
src/libvirt_private.syms
src/util/virfirewall.c
src/util/virfirewall.h
tests/nwfilterebiptablestest.c
tests/nwfilterxml2firewalltest.c

index 46d9495452695d5f0fe2886ca7dbb9c5ad9b06fc..aa776b4801ecccb63d0ba54246a4c021dd7634d7 100644 (file)
@@ -1370,6 +1370,7 @@ virFirewallRuleAddArgList;
 virFirewallRuleAddArgSet;
 virFirewallRuleGetArgCount;
 virFirewallSetBackend;
+virFirewallSetLockOverride;
 virFirewallStartRollback;
 virFirewallStartTransaction;
 
index 8496062c3b0675d48b77bf2bd10d305ea7b13856..b5369127670ce79790bc6376b12b64d72b36e730 100644 (file)
@@ -107,6 +107,13 @@ VIR_ONCE_GLOBAL_INIT(virFirewall)
 static bool iptablesUseLock;
 static bool ip6tablesUseLock;
 static bool ebtablesUseLock;
+static bool lockOverride; /* true to avoid lock probes */
+
+void
+virFirewallSetLockOverride(bool avoid)
+{
+    lockOverride = avoid;
+}
 
 static void
 virFirewallCheckUpdateLock(bool *lockflag,
@@ -135,6 +142,8 @@ virFirewallCheckUpdateLocking(void)
     const char *ebtablesArgs[] = {
         EBTABLES_PATH, "--concurrent", "-L", NULL,
     };
+    if (lockOverride)
+        return;
     virFirewallCheckUpdateLock(&iptablesUseLock,
                                iptablesArgs);
     virFirewallCheckUpdateLock(&ip6tablesUseLock,
index 1129219716f1f1ea488c8c5cce903f7bcf550291..dbf397537fa82b06b60c67fa3036a609a338ff2e 100644 (file)
@@ -106,4 +106,6 @@ void virFirewallStartRollback(virFirewallPtr firewall,
 
 int virFirewallApply(virFirewallPtr firewall);
 
+void virFirewallSetLockOverride(bool avoid);
+
 #endif /* __VIR_FIREWALL_H__ */
index e04bc21e58757238397e4bf2c93a952a629e667e..e1330efc6b48e79d6ebd0ecc7d6bee7824e64991 100644 (file)
@@ -24,6 +24,7 @@
 #include "testutils.h"
 #include "nwfilter/nwfilter_ebiptables_driver.h"
 #include "virbuffer.h"
+#include "virfirewall.h"
 
 #define __VIR_FIREWALL_PRIV_H_ALLOW__
 #include "virfirewallpriv.h"
@@ -522,6 +523,8 @@ mymain(void)
 {
     int ret = 0;
 
+    virFirewallSetLockOverride(true);
+
     if (virFirewallSetBackend(VIR_FIREWALL_BACKEND_DIRECT) < 0) {
         ret = -1;
         goto cleanup;
index 01527f4719030ef681a42e52d50f8580fb93a11d..167ad42327fb97ed5f699b479da102aa9a75ec1c 100644 (file)
@@ -474,6 +474,8 @@ mymain(void)
             ret = -1;                                                   \
     } while (0)
 
+    virFirewallSetLockOverride(true);
+
     if (virFirewallSetBackend(VIR_FIREWALL_BACKEND_DIRECT) < 0) {
         ret = -1;
         goto cleanup;