Commit Graph

76 Commits

Author SHA1 Message Date
Evan Huus ff466a9b92 Increase time permitted when fuzzing with valgrind.
The capture on bug 10098 times out but I don't see any culprits for bad loops or
anything - I think the capture is just too big. I'd prefer somebody else take a
look at it to verify I'm not missing anything before submitting this.

Bug:10098
Change-Id: I2cc43fd6ac9afaa345e7d31184483a9732fd6bf0
Reviewed-on: https://code.wireshark.org/review/1583
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Evan Huus <eapache@gmail.com>
2014-05-11 21:13:06 +00:00
Bill Meier 550e3153bf Fix fuzz-test.sh '-b' option so it works again; Do some other tools/*test*.sh changes
- Add -b option to randpkt-test.sh and test-captures.sh;
- Create/ue a common function to do '-x' tests on files/dirs;
- Rename exit_error function to ws_exit_error

Change-Id: I032c9d784bec1fb6b0717aaad08a061e4d935476
Reviewed-on: https://code.wireshark.org/review/872
Reviewed-by: Bill Meier <wmeier@newsguy.com>
Tested-by: Bill Meier <wmeier@newsguy.com>
2014-03-30 21:03:15 +00:00
Jeff Morriss 82e2865739 Remove $Id$ and other Subversion leftovers from the tools.
There are a few things in here which could still use attention.

Don't regenerate anything now.

Change-Id: I283c224d3523212144707fca3d6265916cb11792
Reviewed-on: https://code.wireshark.org/review/205
Reviewed-by: Jeff Morriss <jeff.morriss.ws@gmail.com>
2014-02-14 01:35:57 +00:00
Evan Huus 3cbe97de5f Give valgrind fuzzing a bit more time. Otherwise we have some large (~80MB)
captures in the menagerie which time out even under normal circumstances.

svn path=/trunk/; revision=54941
2014-01-24 15:52:28 +00:00
Evan Huus ccbaea51d8 Valgrind requires more resources than running normally. Bump limits to 1.5x
normal when fuzzing with valgrind, as otherwise half the menagerie runs out of
memory.

svn path=/trunk/; revision=51515
2013-08-25 17:23:15 +00:00
Evan Huus 0ea379e46d Be sure to forward BIN_DIR to the valgrind script, probably also needed on the
fuzz-but.

svn path=/trunk/; revision=51391
2013-08-16 13:45:00 +00:00
Evan Huus 5d8b79cff5 Try to use smarter path resolution and detection in order to work in
environments that are not the build tree (namely the fuzz-bot, but this might
make normal out-of-tree builds easier too).

svn path=/trunk/; revision=51387
2013-08-16 01:52:51 +00:00
Evan Huus f9834195ed Don't let a valgrind-output-parsing error hide the fact that it was an error of
some sort: if we don't recognize valgrind's output then something somewhere went
wrong and we should be informed.

svn path=/trunk/; revision=51300
2013-08-11 17:48:49 +00:00
Evan Huus 7d73903af6 Multiple improvements and bug-fixes for the fuzz-test script:
- fix a few pieces of bad indentation
- exit cleanly in all cases where we receive a SIGINT or other signal
- check for valgrind bugs and dissector errors with every set of arguments (-nr
  vs -nVxr etc) not just the last
- consider it an error if valgrind reports more than 500KB of leaked memory

For the last point, 500KB is hopefully a safe choice for now since we only leak
about 2KB "by default" and I have no idea what the state of most "non-default"
code is with respect to memory leaks. I would like to eventually work this
down to 0 of course :)

svn path=/trunk/; revision=50895
2013-07-25 23:28:38 +00:00
Jeff Morriss f3b4e97bcc Add (GPLv2+) license headers to these scripts, assigning the copyright to
the original author of the scripts (Gerald).

svn path=/trunk/; revision=50542
2013-07-12 21:51:34 +00:00
Jeff Morriss 470bd4455a Add a new environment variable to cause abort()s if we add too many items
to the tree (to separate this case from the generic DISSECTOR_BUG case).

Enable this environment variable when fuzz testing.

Enable the 3rd (without tree but with a read filter) check (added in r49643)
when testing capture files but not when fuzz testing--not sure if we want to
add even more to the fuzzbot's work load now (OTOH I've been running it for
a while and it hasn't buried me in bugs).

svn path=/trunk/; revision=49784
2013-06-05 14:08:40 +00:00
Jeff Morriss b49c3e7eca Oh yeah, -R is now -Y in trunk.
svn path=/trunk/; revision=49646
2013-05-31 02:03:03 +00:00
Jeff Morriss c56c403a52 As discussed in https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8728#c4 :
Running tshark with a read filter ("-R") and without building the full tree
("-V") causes it to run into some more bugs (usually loops adding more than
100000 items to the tree).  Add some (commented out for now) code to do
this...

svn path=/trunk/; revision=49643
2013-05-31 01:38:55 +00:00
Jeff Morriss 4509929f2a Exit if we can't load the test-common.sh library.
svn path=/trunk/; revision=49625
2013-05-30 00:35:46 +00:00
Evan Huus 0c671d8d4d Remove some of the extra noise added while trying to figure out why
the build-bot's valgrind pass wasn't running with/without tree. It's still
broken, but the debug output wasn't giving us any useful information.

svn path=/trunk/; revision=49464
2013-05-20 22:00:39 +00:00
Evan Huus 0a530b2a1f When fuzzing with valgrind and running without -T, run with -v so that the
argument string is non-empty. Perhaps this will fix the fuzz-bot which fails
to run with the empty argument string...

svn path=/trunk/; revision=49075
2013-04-27 14:03:45 +00:00
Gerald Combs b25fa89125 Reverse the arguments we feed to valgrind-wireshark.sh. Add debugging
output.

svn path=/trunk/; revision=48895
2013-04-17 17:23:41 +00:00
Gerald Combs 3c66ac4b83 Forward-port r47305 from trunk-1.8:
------------------------------------------------------------------------
  r47305 | gerald | 2013-01-26 12:12:52 -0800 (Sat, 26 Jan 2013) | 6 lines
  Changed paths:
     M /trunk-1.8/tools/fuzz-test.sh

  Instead of setting resource limits on the fuzz-test.sh process itself,
  set limits on the TShark subprocess. This should hopefully take care
  of the strange fuzz failures we've seen lately.

  Reduce the maximum CPU time to 5 minutes while we're at it.
  ------------------------------------------------------------------------

svn path=/trunk/; revision=47307
2013-01-26 20:36:57 +00:00
Evan Huus 5c57af2df2 When fuzz-testing with valgrind, run both with and without tree (like when
fuzz-testing without valgrind).

svn path=/trunk/; revision=46950
2013-01-05 14:27:37 +00:00
Gerald Combs 739c90f0ad Move a lot of common fuzz-test and randpkt-test code to its own file
(test-common.sh). Add build information to the error output as suggested
in http://www.wireshark.org/lists/wireshark-dev/201212/msg00037.html

svn path=/trunk/; revision=46446
2012-12-07 17:57:09 +00:00
Gerald Combs 6c92b6d86a Add an option (-P) for a minimum plugin count.
svn path=/trunk/; revision=45800
2012-10-26 16:30:48 +00:00
Evan Huus bfe304a9a4 Make the fuzz-test plugin error into a warning, since lacking plugins
doesn't seem (to me) to warrant preventing someone from fuzz-testing.

Anyone know why this was put in in the first place?

svn path=/trunk/; revision=45733
2012-10-22 23:33:48 +00:00
Gerald Combs ff32bd8000 If our error output is huge (> 5 MB) trim out the middle of the file.
The recent loop bugs have generated output that's too large to attach to
Bugzilla.

svn path=/trunk/; revision=45437
2012-10-09 20:47:22 +00:00
Gerald Combs 52972458e8 Add the command and arguments to the error file.
svn path=/trunk/; revision=45294
2012-10-03 18:03:12 +00:00
Gerald Combs a5b9de38b4 Fix return code checking (hopefully).
svn path=/trunk/; revision=45289
2012-10-03 16:39:35 +00:00
Gerald Combs 498db62022 Test with the presence (-nVxr) and absence (-nr) of the tree. We now
use an array of arguments so additional combinations can be added.

svn path=/trunk/; revision=45258
2012-10-02 17:58:00 +00:00
Gerald Combs 345529250f Run 'git log' if we have a .git directory. Fixes a copy+paste error.
svn path=/trunk/; revision=44784
2012-09-05 20:58:15 +00:00
Evan Huus f385acc461 From Toralf Förster via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7652
Use a fast bash built-in rather than a slow call out to `expr` to increment
the loop count.

svn path=/trunk/; revision=44580
2012-08-19 13:38:53 +00:00
Gerald Combs faf3cdf75d Move error reporting to a common function. Lot information about the
most recent revision / commit.

svn path=/trunk/; revision=44552
2012-08-17 16:28:28 +00:00
Evan Huus 69cd284787 Catch more types of valgrind errors in the fuzz-tester.
These happen when, eg, a program runs out of memory under valgrind
or other more fatal errors (that may sometimes be valgrind bugs instead).

svn path=/trunk/; revision=44451
2012-08-12 14:14:08 +00:00
Evan Huus 2d1575a2d1 Update the usage stanza for fuzz-test to reflect the changes in r44024.
svn path=/trunk/; revision=44083
2012-07-27 22:31:08 +00:00
Evan Huus 69a95ad3a2 valgrind-wireshark.sh:
- add support for 2-pass dissection and config profiles
 - make whitespace a consistent 4-spaces
fuzz-test.sh:
 - update 2-pass support to use -2 and not the old -P
 - add support for fuzz-testing under valgrind with the new -g option

svn path=/trunk/; revision=44024
2012-07-26 02:38:34 +00:00
Jeff Morriss 642099c485 Fix r42293: Make the script actually fail when tshark fails: use a new variable to indicate when we've caught a signal rather than (re-)using MAX_PASSES.
svn path=/trunk/; revision=42295
2012-04-27 17:58:06 +00:00
Jeff Morriss 7891f04d8c Get the script working again in the "unlimited passes" mode.
svn path=/trunk/; revision=42293
2012-04-27 16:58:21 +00:00
Gerald Combs 17febadb12 Terminate our inner loops as well.
svn path=/trunk/; revision=42134
2012-04-18 16:10:08 +00:00
Gerald Combs bb606959f7 Tell the main loop to terminate when we catch a signal instead of trying
to clean up in two places.

svn path=/trunk/; revision=42133
2012-04-18 16:04:05 +00:00
Gerald Combs ad84d4f5d2 Exit if we don't have enough plugins.
svn path=/trunk/; revision=37513
2011-06-01 21:56:11 +00:00
Guy Harris f680be4ca2 Remove the temporary debugging stuff.
svn path=/trunk/; revision=37509
2011-06-01 16:23:51 +00:00
Guy Harris da6a34fce7 Temporary debugging stuff to see in what environment tshark is being
run - the plugins might not be getting loaded, and the goal is to figure
out why.

svn path=/trunk/; revision=37504
2011-06-01 09:12:10 +00:00
Jeff Morriss 4f510bc54d Based on https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5821#c2 :
Move the setting of debug environment variables out of the while loop.

Export MALLOC_OPTIONS=AJ to increase memory allocation debug on FreeBSD (and
others).

Export a number of environment variables that MacOS looks at.

(I don't have easy access to either of these OS so this has not been tested.)

Add a comments for each entry explaining which OS uses it and what it does.

svn path=/trunk/; revision=36622
2011-04-13 15:36:05 +00:00
Jeff Morriss 4cbe8ff6db Fix up indentation
svn path=/trunk/; revision=36461
2011-04-04 18:43:59 +00:00
Gerald Combs 667629d80d Don't clobber the capinfos data if we have a valid capture file. This
should let the original file information show up in bug reports.

svn path=/trunk/; revision=36209
2011-03-17 19:53:28 +00:00
Bill Meier 9b9dcb0161 Export G_SLICE=debug-blocks to do additional memory checks;
From the GLib docs
 "Using this option (present since GLib-2.13) engages extra code which
  performs sanity checks on the released memory slices. Invalid slice
  addresses or slice sizes will be reported and lead to a program halt."

svn path=/trunk/; revision=35165
2010-12-10 03:13:09 +00:00
Chris Maynard e6bbbe1071 Added -b and -C options to usage.
svn path=/trunk/; revision=34702
2010-10-29 23:05:55 +00:00
Bill Meier 175ec40ea0 Add fuzz-test option (-C) to specify a configuration profile.
svn path=/trunk/; revision=34553
2010-10-18 13:21:04 +00:00
Jeff Morriss 7d20440ff0 Introduce 2 new environment variables: WIRESHARK_EP_VERIFY_POINTERS and
WIRESHARK_SE_VERIFY_POINTERS that control whether or not we verify if a given
pointer is ep_ or se_ allocated, respectively.

Turn the behavior off by default for speed reasons (the speed difference isn't
huge, but...).

Turn the behavior on when fuzz testing.

Document these two new variables in the man pages.

svn path=/trunk/; revision=34046
2010-09-02 18:02:06 +00:00
Gerald Combs 334f5715cd Dump the error output when we have a problem.
svn path=/trunk/; revision=33594
2010-07-20 15:49:57 +00:00
Gerald Combs 3bc24f2d98 Try limiting our stack size.
svn path=/trunk/; revision=33466
2010-07-07 16:55:42 +00:00
Gerald Combs e5def72fe7 If BIN_DIR is ".", set WIRESHARK_RUN_FROM_BUILD_DIRECTORY so that we
test plugins.

svn path=/trunk/; revision=33085
2010-06-04 16:59:49 +00:00
Jeff Morriss 2dc4b6ae91 Export MALLOC_CHECK_=3 when fuzz testing in case we're on a glibc-based system:
this value will cause glibc to do some memory allocation checking for us and
abort if it finds a problem.

(If we're not on a glibc-based system this will have no effect but should also
do no harm.)

(I think the buildbot already runs with this set but it's better for all of us
to have it set, too.)

svn path=/trunk/; revision=32528
2010-04-21 00:53:24 +00:00