Files
fwknop/test
Michael Rash 2b5c38dc2b [test suite] default to not zeroing profile coverage counters
The typical work flow when generating gcov coverage results is:

- compile fwknop with coverage support
- run the test suite
- hack on fwknop
- re-run the test suite to see what coverage has been added

This work flow is much more common than collecting coverage results
for a complete test suite run. Therefore, this commit switches the
default behavior in --enable-complete mode (which enables coverage
support) to not zero-out coverage counters. A new argument
--enable-profile-coverage-init zeros the counters in preparation
for a global coverage run.
2015-06-23 16:56:25 -07:00
..
2011-12-05 22:20:39 -05:00

This directory contains the fwknop test suite.  After compiling the fwknop
sources in the parent directory of test/ the test suite can be executed.  One
of the most comprehensive ways of executing the test suite is as follows:

# ./run-test-suite.sh --enable-all

This mode enables IP resolution tests, so you will need Internet access in this
case.  If this is not possible or desirable, then another comprehensive testing
mode can be achieved with:

# ./run-test-suite.sh --enable-recompile --enable-perl-module-checks --enable-distcheck

Additional detail on the test suite (including --diff and --enable-valgrind
modes) may be found in the fwknop tutorial available here:

http://www.cipherdyne.org/fwknop/docs/fwknop-tutorial.html#3.5

For even more comprehensive testing than the --enable-all switch, you can use
--enable-complete.  However, before doing this, you will want to install the
'libfiu' fault injection library (available here: http://blitiri.com.ar/p/libfiu/),
and then compile fwknop with the 'test/configure_max_coverage.sh' script. This
provides additional arguments to the 'configure' script to build fwknop with a
maximal testing and code coverage stance. Once fwknop is compiled, then run:

# ./run-test-suite.sh --enable-complete

Note that in this mode the test suite will consume about close to 500MB of disk
space in the test/output/ directory. The main source of this data consumption
is the usage of the python SPA packet fuzzer 'test/spa_fuzzing.py'.