diff options
author | João Valverde <j@v6e.pt> | 2022-04-12 13:08:10 +0100 |
---|---|---|
committer | A Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org> | 2022-04-12 14:03:18 +0000 |
commit | 8355e9685887f64e89c2a002df6860c5e29e7d6d (patch) | |
tree | 78b0d1004f09f51c606540f7a3674f792663c5ca /test/suite_dfilter/dfiltertest.py | |
parent | 04c42eace3989c7b1c32888a9cb9625920a2424a (diff) |
tests: Add test for display filter field reference
Diffstat (limited to 'test/suite_dfilter/dfiltertest.py')
-rw-r--r-- | test/suite_dfilter/dfiltertest.py | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/test/suite_dfilter/dfiltertest.py b/test/suite_dfilter/dfiltertest.py index 09ea0d966c..bdc73fd19e 100644 --- a/test/suite_dfilter/dfiltertest.py +++ b/test/suite_dfilter/dfiltertest.py @@ -8,18 +8,26 @@ import fixtures @fixtures.fixture def dfilter_cmd(cmd_tshark, capture_file, request): - def wrapped(dfilter): - return ( + def wrapped(dfilter, frame_number=None): + cmd = [ cmd_tshark, "-n", # No name resolution "-r", # Next arg is trace file to read capture_file(request.instance.trace_file), + ] + if frame_number: + cmd.extend([ + "-2", # two pass mode + "--selected-frame={}".format(frame_number) + ]) + cmd.extend([ "-Y", # packet display filter (used to be -R) dfilter - ) + ]) + print(cmd) + return cmd return wrapped - @fixtures.fixture(scope='session') def cmd_dftest(program): return program('dftest') @@ -40,6 +48,21 @@ def checkDFilterCount(dfilter_cmd, base_env): assert dfp_count == expected_count, msg return checkDFilterCount_real +@fixtures.fixture +def checkDFilterCountWithSelectedFrame(dfilter_cmd, base_env): + def checkDFilterCount_real(dfilter, expected_count, selected_frame): + """Run a display filter and expect a certain number of packets.""" + output = subprocess.check_output(dfilter_cmd(dfilter, frame_number=selected_frame), + universal_newlines=True, + stderr=subprocess.STDOUT, + env=base_env) + + dfp_count = output.count("\n") + msg = "Expected %d, got: %s\noutput: %r" % \ + (expected_count, dfp_count, output) + assert dfp_count == expected_count, msg + return checkDFilterCount_real + @fixtures.fixture def checkDFilterFail(cmd_dftest, base_env): |