wireshark/test
João Valverde 51de43cfd2 dfilter: Fix protocol slices with negative indexes
Field infos have a length property that was not stored with the
field value so when using a negative index the end was computed
from the captured length of the frame tvbuff, leading to incorrect
results. The documentation in wireshark-filter(5) describes how
this was supposed to work but as far as I can tell it never worked
properly.

We now store the length and use that (when it is different from -1)
to locate the end of the protocol data in the tvbuff. An extra wrinkle
is that sometimes the length is set after the field value is created.
This is the most common case as the majority of protocols have a
variable length and dissection generally proceeds with a TVB subset from
the current layer (with offset zero) through all remaining layers to the
end of the captured length. For that reason we must use an expedient to allow
changing the protocol length of an existing protocol fvalue, whenever
proto_item_set_len() is called.

Fixes #17772.
2022-05-23 23:04:07 +01:00
..
baseline elastic: fix mapping with recent es versions. 2022-03-14 08:34:48 +00:00
captures dfilter: Add syntax to match specific layers in the protocol stack 2022-04-26 16:50:59 +00:00
config dot11decrypt: Add partial FT-EAP decryption support 2021-01-20 16:10:12 +00:00
keys Add support for RSA decryption using PKCS #11 tokens 2018-12-29 10:40:16 +00:00
lua Qt: Update our dynamic menu groups. 2022-04-12 12:14:03 -07:00
protobuf_lang_files GRPC: Add support for gRPC-Web 2022-03-01 10:19:47 +00:00
suite_dfilter dfilter: Fix protocol slices with negative indexes 2022-05-23 23:04:07 +01:00
suite_dissectors asterix: output format fix 2022-01-23 08:45:04 +00:00
README.test Qt: Add a packet diagram view. 2020-08-10 18:17:50 +00:00
conftest.py Tools+test: Call python3 explicitly. 2020-11-05 06:46:35 +00:00
fixtures.py Tools+test: Call python3 explicitly. 2020-11-05 06:46:35 +00:00
fixtures_ws.py test: Remove libgcrypt checks for 1.8 and below 2022-04-21 06:32:44 -04:00
hosts.custom
hosts.global
hosts.personal
matchers.py Tools+test: Call python3 explicitly. 2020-11-05 06:46:35 +00:00
sampleif.py test: fix sampleif.py on weird systems using Python 3.6 and older 2019-04-16 03:28:43 +00:00
subprocesstest.py tests: Add argument to trim output to a reasonable size 2021-02-04 17:00:36 +00:00
suite_capture.py MSYS2: Test commands in pipes need quoting 2021-09-27 16:45:58 +00:00
suite_clopts.py elastic: fix mapping with recent es versions. 2022-03-14 08:34:48 +00:00
suite_decryption.py test: Remove libgcrypt checks for 1.8 and below 2022-04-21 06:32:44 -04:00
suite_dissection.py tcp: Rework out of order dissection to dissect sooner 2022-04-06 08:41:58 -04:00
suite_extcaps.py extcap: new interface, wifidump, to capture Wi-Fi frames using a remote SSH host 2022-03-09 08:01:39 +00:00
suite_external.py Test: Add external tests. 2021-10-01 23:40:17 +00:00
suite_fileformats.py file-pcapng: redo the way we dissect the data in blocks. 2021-06-04 16:46:40 -07:00
suite_follow.py Tools+test: Call python3 explicitly. 2020-11-05 06:46:35 +00:00
suite_follow_dccp.py tests: fix the test case running warning. 2021-11-18 07:55:22 +00:00
suite_follow_multistream.py HTTP2, QUIC: fix "Follow Stream" 2021-09-13 15:13:10 +00:00
suite_io.py Tools+test: Call python3 explicitly. 2020-11-05 06:46:35 +00:00
suite_mergecap.py Tools+test: Call python3 explicitly. 2020-11-05 06:46:35 +00:00
suite_nameres.py Tools+test: Call python3 explicitly. 2020-11-05 06:46:35 +00:00
suite_netperfmeter.py Using col_append_sep_fstr() instead of prepending "NetPerfMeter" label. 2021-06-28 14:39:04 +00:00
suite_outputformats.py Tools+test: Call python3 explicitly. 2020-11-05 06:46:35 +00:00
suite_release.py Tools+test: Call python3 explicitly. 2020-11-05 06:46:35 +00:00
suite_sharkd.py Use wtap_blocks for packet comments 2021-07-07 18:40:24 +00:00
suite_text2pcap.py test: Update text2pcap test to use new hexdump option 2022-01-12 23:22:39 -05:00
suite_unittests.py COSE dissector from dtn-wireshark project 2021-09-29 08:51:13 +00:00
suite_wslua.py tests: Remove broken wslua gregex tests 2022-03-28 11:55:24 +01:00
test.py Test: Add external tests. 2021-10-01 23:40:17 +00:00
travis-upload-artifacts.sh test,travis: dump a screenshot for hanging GUI tests 2019-01-24 00:26:22 +00:00
util_dump_dhcp_pcap.py Dumpcap+Qt: Add support for `-a packets:NUM` and `-b packets:NUM`. 2018-11-09 05:55:11 +00:00

README.test

Wireshark Tests

The recommended steps to prepare for and to run tests:

* Install two Python packages, pytest: `pip install pytest pytest-xdist`
* Build programs (“wireshark”, “tshark”, etc.): `ninja`
* Build additional programs for the “unittests” suite: `ninja test-programs`
* Run tests in the build directory: `pytest`

Replace `ninja test-programs` by `make test-programs` as needed.

See the “Wireshark Tests” chapter of the Developer's Guide for details:
https://www.wireshark.org/docs/wsdg_html_chunked/ChapterTests.html

If you need to update the baseline files use the following commands (on a Linux system)
mkdir ~/.config/wireshark/profiles/ctest
TZ=UTC WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1 build/run/tshark -C ctest -T ek -r test/captures/dhcp.pcap > test/baseline/dhcp.ek
TZ=UTC WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1 build/run/tshark -C ctest -T json -r test/captures/dhcp.pcap > test/baseline/dhcp.json
TZ=UTC WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1 build/run/tshark -C ctest -T jsonraw -r test/captures/dhcp.pcap > test/baseline/dhcp.jsonraw
TZ=UTC WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1 build/run/tshark -C ctest -T ek -r test/captures/dhcp.pcap -x > test/baseline/dhcp-raw.ek