summaryrefslogtreecommitdiffhomepage
path: root/test/lib/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/lib/base.py')
-rw-r--r--test/lib/base.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/test/lib/base.py b/test/lib/base.py
index 4f2e8a69..38cac97a 100644
--- a/test/lib/base.py
+++ b/test/lib/base.py
@@ -158,6 +158,7 @@ class Container(object):
self.ip6_addrs = []
self.is_running = False
self.eths = []
+ self.tcpdump_running = False
if self.docker_name() in get_containers():
self.remove()
@@ -230,12 +231,21 @@ class Container(object):
return int(local(cmd, capture=True))
return -1
- def start_tcpdump(self, interface=None, filename=None):
+ def start_tcpdump(self, interface=None, filename=None, expr='tcp port 179'):
+ if self.tcpdump_running:
+ raise Exception('tcpdump already running')
+ self.tcpdump_running = True
if not interface:
interface = "eth0"
if not filename:
- filename = "{0}/{1}.dump".format(self.shared_volumes[0][1], interface)
- self.local("tcpdump -i {0} -w {1}".format(interface, filename), detach=True)
+ filename = '{0}.dump'.format(interface)
+ self.local("tcpdump -i {0} -w {1}/{2} {3}".format(interface, self.shared_volumes[0][1], filename, expr), detach=True)
+ return '{0}/{1}'.format(self.shared_volumes[0][0], filename)
+
+ def stop_tcpdump(self):
+ self.local("pkill tcpdump")
+ self.tcpdump_running = False
+
class BGPContainer(Container):