test: fix nwfilter tests following changes in virfirewall.c

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>
This commit is contained in:
Stefan Berger 2014-12-22 16:57:21 -05:00
parent 540c339a25
commit 3865941be1
5 changed files with 17 additions and 0 deletions

View File

@ -1370,6 +1370,7 @@ virFirewallRuleAddArgList;
virFirewallRuleAddArgSet; virFirewallRuleAddArgSet;
virFirewallRuleGetArgCount; virFirewallRuleGetArgCount;
virFirewallSetBackend; virFirewallSetBackend;
virFirewallSetLockOverride;
virFirewallStartRollback; virFirewallStartRollback;
virFirewallStartTransaction; virFirewallStartTransaction;

View File

@ -107,6 +107,13 @@ VIR_ONCE_GLOBAL_INIT(virFirewall)
static bool iptablesUseLock; static bool iptablesUseLock;
static bool ip6tablesUseLock; static bool ip6tablesUseLock;
static bool ebtablesUseLock; static bool ebtablesUseLock;
static bool lockOverride; /* true to avoid lock probes */
void
virFirewallSetLockOverride(bool avoid)
{
lockOverride = avoid;
}
static void static void
virFirewallCheckUpdateLock(bool *lockflag, virFirewallCheckUpdateLock(bool *lockflag,
@ -135,6 +142,8 @@ virFirewallCheckUpdateLocking(void)
const char *ebtablesArgs[] = { const char *ebtablesArgs[] = {
EBTABLES_PATH, "--concurrent", "-L", NULL, EBTABLES_PATH, "--concurrent", "-L", NULL,
}; };
if (lockOverride)
return;
virFirewallCheckUpdateLock(&iptablesUseLock, virFirewallCheckUpdateLock(&iptablesUseLock,
iptablesArgs); iptablesArgs);
virFirewallCheckUpdateLock(&ip6tablesUseLock, virFirewallCheckUpdateLock(&ip6tablesUseLock,

View File

@ -106,4 +106,6 @@ void virFirewallStartRollback(virFirewallPtr firewall,
int virFirewallApply(virFirewallPtr firewall); int virFirewallApply(virFirewallPtr firewall);
void virFirewallSetLockOverride(bool avoid);
#endif /* __VIR_FIREWALL_H__ */ #endif /* __VIR_FIREWALL_H__ */

View File

@ -24,6 +24,7 @@
#include "testutils.h" #include "testutils.h"
#include "nwfilter/nwfilter_ebiptables_driver.h" #include "nwfilter/nwfilter_ebiptables_driver.h"
#include "virbuffer.h" #include "virbuffer.h"
#include "virfirewall.h"
#define __VIR_FIREWALL_PRIV_H_ALLOW__ #define __VIR_FIREWALL_PRIV_H_ALLOW__
#include "virfirewallpriv.h" #include "virfirewallpriv.h"
@ -522,6 +523,8 @@ mymain(void)
{ {
int ret = 0; int ret = 0;
virFirewallSetLockOverride(true);
if (virFirewallSetBackend(VIR_FIREWALL_BACKEND_DIRECT) < 0) { if (virFirewallSetBackend(VIR_FIREWALL_BACKEND_DIRECT) < 0) {
ret = -1; ret = -1;
goto cleanup; goto cleanup;

View File

@ -474,6 +474,8 @@ mymain(void)
ret = -1; \ ret = -1; \
} while (0) } while (0)
virFirewallSetLockOverride(true);
if (virFirewallSetBackend(VIR_FIREWALL_BACKEND_DIRECT) < 0) { if (virFirewallSetBackend(VIR_FIREWALL_BACKEND_DIRECT) < 0) {
ret = -1; ret = -1;
goto cleanup; goto cleanup;