FATE Automated Testing Environment

FATE provides a regression testsuite that can be run locally or configured
to send reports to fate.ffmpeg.org.
In order to run, it needs a large amount of data (samples and references)
that is provided separately from the actual source distribution.

Use the following command to get the fate test samples

# make fate-rsync SAMPLES=fate-suite/

To inform the build system about the testsuite location, pass
`--samples=<path to the samples>` to configure or set the SAMPLES Make
variable or the FATE_SAMPLES environment variable to a suitable value.

For information on how to set up FATE to send results to the official FFmpeg
testing framework, please refer to the following wiki page:
http://wiki.multimedia.cx/index.php?title=FATE

FATE Makefile targets:

fate-list
    Will list all fate/regression test targets.

fate
    Run the FATE test suite (requires the fate-suite dataset).

Fate Makefile variables:

V
    Verbosity level, can be set to 0, 1 or 2.
    * 0: show just the test arguments
    * 1: show just the command used in the test
    * 2: show everything

SAMPLES
    Specify or override the path to the FATE samples at make time, it has a
    meaning only while running the regression tests.

THREADS
    Specify how many threads to use while running regression tests, it is
    quite useful to detect thread-related regressions.

Example:
    make V=1 SAMPLES=/var/fate/samples THREADS=2 fate
