-*- emacs-wiki -*-

                     How to configure to use "make check"

What is "make check"

   "make check" is a target in the top level makefile. It takes care of
   running a number of unit and system tests to confirm that FreeSWAN has
   been compiled correctly, and that no new bugs have been introduced.

   As FreeSWAN contains both kernel and userspace components, doing
   testing of FreeSWAN requires that the kernel be simulated. This is
   typically difficult to do as a kernel requires that it be run on bare
   hardware. A technology has emerged that makes this simpler. This is
   [1]User Mode Linux.

   User-Mode Linux is a way to build a Linux kernel such that it can run
   as a process under another Linux (or in the future other) kernel.
   Presently, this can only be done for 2.4 guest kernels. The host
   kernel can be 2.2 or 2.4.

   "make check" expects to be able to build User-Mode Linux kernels with
   FreeSWAN included. To do this it needs to have some files downloaded
   and extracted prior to running "make check". This is described in the
   [2]UML testing document.

   After having run the example in the UML testing document and
   successfully brought up the four machine combination, you are ready to
   use "make check"

Running "make check"

   "make check" works by walking the FreeSWAN source tree invoking the
   "check" target at each node. At present there are tests defined only
   for the klips directory. These tests will use the UML infrastructure
   to test out pieces of the klips code.

   The results of the tests can be recorded. If the environment variable
   $REGRESSRESULTS is non-null, then the results of each test will be
   recorded. This can be used as part of a nightly regression testing
   system, see [[NightlyTesting][Nightly testing for more details]]

   "make check" otherwise prints a minimal amount of output for each
   test, and indicates pass/fail status of each test as they are run.
   Failed tests do not cause failure of the target in the form of exit
   codes.

[[WritingMakeCheckTest][How to write a "make check" test]]




                               Current pitfalls

   "tcpdump dissector" not available.
          This is a non-fatal warning. If uml_netjig is invoked with the
          -t option, then it will attempt to use tcpdump's dissector to
          decode each packet that it processes. The dissector is
          presently not available, so this option it normally turned off
          at compile time. The dissector library will be released with
          tcpdump version 4.0.

