def _arping(ns_name, iface_name, address, count):
- arping_cmd = ['arping', '-A', '-I', iface_name, '-c', count, address]
+ # Pass -w to set timeout to ensure exit if interface removed while running
+ arping_cmd = ['arping', '-A', '-I', iface_name, '-c', count,
+ '-w', 1.5 * count, address]
try:
ip_wrapper = IPWrapper(namespace=ns_name)
ip_wrapper.netns.execute(arping_cmd, check_exit_code=True)
class TestArpPing(TestIPCmdBase):
def _test_arping(self, function, address, spawn_n, mIPWrapper):
spawn_n.side_effect = lambda f: f()
+ ARPING_COUNT = 3
function(mock.sentinel.ns_name,
mock.sentinel.iface_name,
address,
- mock.sentinel.count)
+ ARPING_COUNT)
self.assertTrue(spawn_n.called)
mIPWrapper.assert_called_once_with(namespace=mock.sentinel.ns_name)
# Just test that arping is called with the right arguments
arping_cmd = ['arping', '-A',
'-I', mock.sentinel.iface_name,
- '-c', mock.sentinel.count,
+ '-c', ARPING_COUNT,
+ '-w', mock.ANY,
address]
ip_wrapper.netns.execute.assert_any_call(arping_cmd,
check_exit_code=True)