diff options
Diffstat (limited to 'test/suite_dfilter/dfiltertest.py')
-rw-r--r-- | test/suite_dfilter/dfiltertest.py | 53 |
1 files changed, 32 insertions, 21 deletions
diff --git a/test/suite_dfilter/dfiltertest.py b/test/suite_dfilter/dfiltertest.py index 8ac1786ec8..52fb5f9d12 100644 --- a/test/suite_dfilter/dfiltertest.py +++ b/test/suite_dfilter/dfiltertest.py @@ -2,35 +2,46 @@ # # SPDX-License-Identifier: GPL-2.0-or-later -import config -import os.path -import subprocesstest +import subprocess +import fixtures -class DFTestCase(subprocesstest.SubprocessTestCase): - """Base class for all tests in this dfilter-test collection.""" - - def runDFilter(self, dfilter, expected_return=0): - # Create the tshark command - return self.assertRun((config.cmd_tshark, +@fixtures.fixture +def dfilter_cmd(cmd_tshark, capture_file, request): + def wrapped(dfilter): + return ( + cmd_tshark, "-n", # No name resolution "-r", # Next arg is trace file to read - os.path.join(config.capture_dir, self.trace_file), + capture_file(request.instance.trace_file), "-Y", # packet display filter (used to be -R) dfilter - ), expected_return=expected_return) + ) + return wrapped - def assertDFilterCount(self, dfilter, expected_count): +@fixtures.fixture +def checkDFilterCount(dfilter_cmd, base_env): + def checkDFilterCount_real(dfilter, expected_count): """Run a display filter and expect a certain number of packets.""" + output = subprocess.check_output(dfilter_cmd(dfilter), + universal_newlines=True, + stderr=subprocess.STDOUT, + env=base_env) - dfilter_proc = self.runDFilter(dfilter) - - dfp_count = self.countOutput() + dfp_count = output.count("\n") msg = "Expected %d, got: %s" % (expected_count, dfp_count) - self.assertEqual(dfp_count, expected_count, msg) - - def assertDFilterFail(self, dfilter): - """Run a display filter and expect tshark to fail""" - - dfilter_proc = self.runDFilter(dfilter, expected_return=self.exit_error) + assert dfp_count == expected_count, msg + return checkDFilterCount_real + + +@fixtures.fixture +def checkDFilterFail(dfilter_cmd, base_env): + def checkDFilterFail_real(dfilter): + """Run a display filter and expect tshark to fail.""" + exitcode = subprocess.call(dfilter_cmd(dfilter), + stdout=subprocess.DEVNULL, + stderr=subprocess.STDOUT, + env=base_env) + assert exitcode == 2, 'Expected process to fail, got %d' % (exitcode,) + return checkDFilterFail_real |