Tests: simple refactor in vpp_pg_interface.

Pull common code into a single method.

Type: refactor

Change-Id: Ic540d23eebbd17f838ed7a1a9dee80815a27847c
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
This commit is contained in:
Paul Vinciguerra
2019-05-28 15:40:47 -04:00
committed by Dave Barach
parent d31a59806a
commit 4b58a86da4

View File

@ -109,24 +109,32 @@ class VppPGInterface(VppInterface):
self.in_path, self.pg_index, self.cap_name)
self._nb_replays = None
def _rename_previous_capture_file(self, path, counter, file):
# if a file from a previous capture exists, rename it.
try:
if os.path.isfile(path):
name = "%s/history.[timestamp:%f].[%s-counter:%04d].%s" % \
(self.test.tempdir,
time.time(),
self.name,
counter,
file)
self.test.logger.debug("Renaming %s->%s" %
(path, name))
os.rename(path, name)
except OSError:
self.test.logger.debug("OSError: Could not rename %s %s" %
(path, file))
def enable_capture(self):
""" Enable capture on this packet-generator interface
of at most n packets.
If n < 0, this is no limit
"""
try:
if os.path.isfile(self.out_path):
name = "%s/history.[timestamp:%f].[%s-counter:%04d].%s" % \
(self.test.tempdir,
time.time(),
self.name,
self.out_history_counter,
self._out_file)
self.test.logger.debug("Renaming %s->%s" %
(self.out_path, name))
os.rename(self.out_path, name)
except:
pass
self._rename_previous_capture_file(self.out_path,
self.out_history_counter,
self._out_file)
# FIXME this should be an API, but no such exists atm
self.test.vapi.cli(self.capture_cli)
self._pcap_reader = None
@ -142,19 +150,9 @@ class VppPGInterface(VppInterface):
"""
self._nb_replays = nb_replays
try:
if os.path.isfile(self.in_path):
name = "%s/history.[timestamp:%f].[%s-counter:%04d].%s" %\
(self.test.tempdir,
time.time(),
self.name,
self.in_history_counter,
self._in_file)
self.test.logger.debug("Renaming %s->%s" %
(self.in_path, name))
os.rename(self.in_path, name)
except:
pass
self._rename_previous_capture_file(self.in_path,
self.in_history_counter,
self._in_file)
wrpcap(self.in_path, pkts)
self.test.register_capture(self.cap_name)
# FIXME this should be an API, but no such exists atm