forked from osmocom/wireshark
![]() Because call_heur_dissector_direct() didn't set the pinfo->heur_list_name before calling the heuristic dissector, heur_dissect_lua() would invoke report_failure(). Unfortunately, calling report_failure() within a dissector can cause problems because GTK continues invoking timed callbacks while it displays the modal dialog created by report_failure()... without yet returning from report_failure(). In such a case, it's possible for epan_dissect_run() to be called while still within the execution of a previous call to epan_dissect_run(), which casues an assert since epan_dissect_run() is not reentrant. So this commit both fixes the call_heur_dissector_direct() bug as well as avoids using report_failure() within heur_dissect_lua(). It also upadtes the dissector.lua script used in the testsuite to match the one pubshied on the wiki, since that script's heuristic dissector triggered the bug. Bug: 10233 Change-Id: If022604347745fadac01c02d370ca1a5d3f88b5b Reviewed-on: https://code.wireshark.org/review/6040 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Hadriel Kaplan <hadrielk@yahoo.com> Tested-by: Hadriel Kaplan <hadrielk@yahoo.com> |
||
---|---|---|
.. | ||
baseline | ||
captures | ||
config | ||
keys | ||
lua | ||
config.sh | ||
hosts.custom | ||
hosts.global | ||
hosts.personal | ||
README.test | ||
suite-capture.sh | ||
suite-clopts.sh | ||
suite-decryption.sh | ||
suite-fileformats.sh | ||
suite-io.sh | ||
suite-nameres.sh | ||
suite-unittests.sh | ||
suite-wslua.sh | ||
test-backend.sh | ||
test.sh |
What is it? ----------- This is a collection of bash scripts which test the features of: - Wireshark - TShark - Dumpcap Motivation ---------- The command line options of Wireshark and the companion command line tools are numerous. This makes it hard to find newly introduced bugs doing manual testing (try and error) with source code changes. The current way is to do some changes, testing some scenarios by hand and commit the code so other users will complain about new problems. This obviously is far from being optimal. Limitations ----------- The test set currently provided will only do some basic tests, but even that is far better than nothing. This may involve in time as new tests can be added to fix problems reported by users. This will hopefully lead to a "complete" and reliable testset in the future. The tests are limited to command line tests, other things like unit tests or GUI test are not included. Prerequisites ------------- What you'll need (to do): - edit the file config.sh to suit your configuration - obviously, compile the programs (wireshark, ...) to be tested - have a bash (cygwin should do well) - have tput (e.g. in the cygwin ncurses package) - you'll need a network interface with some network traffic (so you can run the capture tests) - (for non-Windows platforms) An X server for running the capture tests with the graphical Wireshark program. A Test Ride ----------- The default configuration might not be suitable for your set-up. Most settings can be adjusted by setting an environment variable matching or by editing the setting in config.sh. For instance, the first network interface might not be used for traffic (like an unconnected Ethernet port). In that case, you might want to set the environment variable TRAFFIC_CAPTURE_IFACE to pick another interface. Use `dumpcap -D` to get a list of devices. On Windows, it is assumed that the user is able to perform captures. On non-Windows platforms, the opposite is assumed. If your dumpcap executable allows you to perform captures (for example, when it has appropriate capabilities), then you can override the default with: SKIP_CAPTURE=0 If you do not want to test the binaries in the build directory, you can override it with: WS_BIN_PATH=/usr/bin When your configuration is sane, you can start test.sh which should provide a basic menu. Just press Enter to start all tests. It should start all the available tests. Each test will throw out a line which should end with a green "Ok". If one of the tests fail, the script will report it and stop at this test step. Please remember to have some ICMP traffic on your network interface! The test suite will ping to www.wireshark.org while running capture tests, but this will slow down the tests.