diff options
Diffstat (limited to 'test/lib/base.py')
-rw-r--r-- | test/lib/base.py | 16 |
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): |