mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2024-12-12 21:41:48 +00:00
284 lines
12 KiB
HTML
284 lines
12 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<!-- Created on April 4, 2014 by texi2html 1.82 -->
|
|
<!--
|
|
texi2html was written by:
|
|
Lionel Cons <Lionel.Cons@cern.ch> (original author)
|
|
Karl Berry <karl@freefriends.org>
|
|
Olaf Bachmann <obachman@mathematik.uni-kl.de>
|
|
and many others.
|
|
Maintained by: Many creative people.
|
|
Send bugs and suggestions to <texi2html-bug@nongnu.org>
|
|
|
|
-->
|
|
<head>
|
|
<title>FFmpeg documentation : FFmpeg Automated Testing Environment: </title>
|
|
|
|
<meta name="description" content="FFmpeg Automated Testing Environment: ">
|
|
<meta name="keywords" content="FFmpeg documentation : FFmpeg Automated Testing Environment: ">
|
|
<meta name="Generator" content="texi2html 1.82">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<link rel="stylesheet" type="text/css" href="default.css" />
|
|
|
|
<link rel="icon" href="favicon.png" type="image/png" />
|
|
</head>
|
|
<body>
|
|
<div id="container">
|
|
<div id="body">
|
|
|
|
<a name="Top"></a>
|
|
<a name="SEC_Top"></a>
|
|
<h1 class="settitle">FFmpeg Automated Testing Environment</h1>
|
|
|
|
<a name="SEC_Contents"></a>
|
|
<h1>Table of Contents</h1>
|
|
<div class="contents">
|
|
|
|
<ul class="toc">
|
|
<li><a name="toc-Introduction" href="#Introduction">1. Introduction</a></li>
|
|
<li><a name="toc-Using-FATE-from-your-FFmpeg-source-directory" href="#Using-FATE-from-your-FFmpeg-source-directory">2. Using FATE from your FFmpeg source directory</a></li>
|
|
<li><a name="toc-Submitting-the-results-to-the-FFmpeg-result-aggregation-server" href="#Submitting-the-results-to-the-FFmpeg-result-aggregation-server">3. Submitting the results to the FFmpeg result aggregation server</a></li>
|
|
<li><a name="toc-FATE-makefile-targets-and-variables" href="#FATE-makefile-targets-and-variables">4. FATE makefile targets and variables</a>
|
|
<ul class="toc">
|
|
<li><a name="toc-Makefile-targets" href="#Makefile-targets">4.1 Makefile targets</a></li>
|
|
<li><a name="toc-Makefile-variables" href="#Makefile-variables">4.2 Makefile variables</a></li>
|
|
<li><a name="toc-Examples" href="#Examples">4.3 Examples</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<a name="Introduction"></a>
|
|
<h1 class="chapter"><a href="fate.html#toc-Introduction">1. Introduction</a></h1>
|
|
|
|
<p> FATE is an extended regression suite on the client-side and a means
|
|
for results aggregation and presentation on the server-side.
|
|
</p>
|
|
<p> The first part of this document explains how you can use FATE from
|
|
your FFmpeg source directory to test your ffmpeg binary. The second
|
|
part describes how you can run FATE to submit the results to FFmpeg’s
|
|
FATE server.
|
|
</p>
|
|
<p> In any way you can have a look at the publicly viewable FATE results
|
|
by visiting this website:
|
|
</p>
|
|
<p> <a href="http://fate.ffmpeg.org/">http://fate.ffmpeg.org/</a>
|
|
</p>
|
|
<p> This is especially recommended for all people contributing source
|
|
code to FFmpeg, as it can be seen if some test on some platform broke
|
|
with their recent contribution. This usually happens on the platforms
|
|
the developers could not test on.
|
|
</p>
|
|
<p> The second part of this document describes how you can run FATE to
|
|
submit your results to FFmpeg’s FATE server. If you want to submit your
|
|
results be sure to check that your combination of CPU, OS and compiler
|
|
is not already listed on the above mentioned website.
|
|
</p>
|
|
<p> In the third part you can find a comprehensive listing of FATE makefile
|
|
targets and variables.
|
|
</p>
|
|
|
|
<a name="Using-FATE-from-your-FFmpeg-source-directory"></a>
|
|
<h1 class="chapter"><a href="fate.html#toc-Using-FATE-from-your-FFmpeg-source-directory">2. Using FATE from your FFmpeg source directory</a></h1>
|
|
|
|
<p> If you want to run FATE on your machine you need to have the samples
|
|
in place. You can get the samples via the build target fate-rsync.
|
|
Use this command from the top-level source directory:
|
|
</p>
|
|
<table><tr><td> </td><td><pre class="example">make fate-rsync SAMPLES=fate-suite/
|
|
make fate SAMPLES=fate-suite/
|
|
</pre></td></tr></table>
|
|
|
|
<p> The above commands set the samples location by passing a makefile
|
|
variable via command line. It is also possible to set the samples
|
|
location at source configuration time by invoking configure with
|
|
‘–samples=<path to the samples directory>’. Afterwards you can
|
|
invoke the makefile targets without setting the SAMPLES makefile
|
|
variable. This is illustrated by the following commands:
|
|
</p>
|
|
<table><tr><td> </td><td><pre class="example">./configure --samples=fate-suite/
|
|
make fate-rsync
|
|
make fate
|
|
</pre></td></tr></table>
|
|
|
|
<p> Yet another way to tell FATE about the location of the sample
|
|
directory is by making sure the environment variable FATE_SAMPLES
|
|
contains the path to your samples directory. This can be achieved
|
|
by e.g. putting that variable in your shell profile or by setting
|
|
it in your interactive session.
|
|
</p>
|
|
<table><tr><td> </td><td><pre class="example">FATE_SAMPLES=fate-suite/ make fate
|
|
</pre></td></tr></table>
|
|
|
|
<div class="float alert alert-info">
|
|
<p>Do not put a ’~’ character in the samples path to indicate a home
|
|
directory. Because of shell nuances, this will cause FATE to fail.
|
|
</p></div>
|
|
<p>To use a custom wrapper to run the test, pass ‘<samp>--target-exec</samp>’ to
|
|
<code>configure</code> or set the <var>TARGET_EXEC</var> Make variable.
|
|
</p>
|
|
|
|
<a name="Submitting-the-results-to-the-FFmpeg-result-aggregation-server"></a>
|
|
<h1 class="chapter"><a href="fate.html#toc-Submitting-the-results-to-the-FFmpeg-result-aggregation-server">3. Submitting the results to the FFmpeg result aggregation server</a></h1>
|
|
|
|
<p> To submit your results to the server you should run fate through the
|
|
shell script ‘<tt>tests/fate.sh</tt>’ from the FFmpeg sources. This script needs
|
|
to be invoked with a configuration file as its first argument.
|
|
</p>
|
|
<table><tr><td> </td><td><pre class="example">tests/fate.sh /path/to/fate_config
|
|
</pre></td></tr></table>
|
|
|
|
<p> A configuration file template with comments describing the individual
|
|
configuration variables can be found at ‘<tt>doc/fate_config.sh.template</tt>’.
|
|
</p>
|
|
<p> The mentioned configuration template is also available here:
|
|
<pre class="verbatim">slot= # some unique identifier
|
|
repo=git://source.ffmpeg.org/ffmpeg.git # the source repository
|
|
samples= # path to samples directory
|
|
workdir= # directory in which to do all the work
|
|
#fate_recv="ssh -T fate@fate.ffmpeg.org" # command to submit report
|
|
comment= # optional description
|
|
build_only= # set to "yes" for a compile-only instance that skips tests
|
|
|
|
# the following are optional and map to configure options
|
|
arch=
|
|
cpu=
|
|
cross_prefix=
|
|
as=
|
|
cc=
|
|
ld=
|
|
target_os=
|
|
sysroot=
|
|
target_exec=
|
|
target_path=
|
|
target_samples=
|
|
extra_cflags=
|
|
extra_ldflags=
|
|
extra_libs=
|
|
extra_conf= # extra configure options not covered above
|
|
|
|
#make= # name of GNU make if not 'make'
|
|
makeopts= # extra options passed to 'make'
|
|
#tar= # command to create a tar archive from its arguments on stdout,
|
|
# defaults to 'tar c'
|
|
</pre></p>
|
|
<p> Create a configuration that suits your needs, based on the configuration
|
|
template. The ‘slot’ configuration variable can be any string that is not
|
|
yet used, but it is suggested that you name it adhering to the following
|
|
pattern <arch>-<os>-<compiler>-<compiler version>. The configuration file
|
|
itself will be sourced in a shell script, therefore all shell features may
|
|
be used. This enables you to setup the environment as you need it for your
|
|
build.
|
|
</p>
|
|
<p> For your first test runs the ‘fate_recv’ variable should be empty or
|
|
commented out. This will run everything as normal except that it will omit
|
|
the submission of the results to the server. The following files should be
|
|
present in $workdir as specified in the configuration file:
|
|
</p>
|
|
<ul>
|
|
<li> configure.log
|
|
</li><li> compile.log
|
|
</li><li> test.log
|
|
</li><li> report
|
|
</li><li> version
|
|
</li></ul>
|
|
|
|
<p> When you have everything working properly you can create an SSH key pair
|
|
and send the public key to the FATE server administrator who can be contacted
|
|
at the email address <a href="mailto:fate-admin@ffmpeg.org">fate-admin@ffmpeg.org</a>.
|
|
</p>
|
|
<p> Configure your SSH client to use public key authentication with that key
|
|
when connecting to the FATE server. Also do not forget to check the identity
|
|
of the server and to accept its host key. This can usually be achieved by
|
|
running your SSH client manually and killing it after you accepted the key.
|
|
The FATE server’s fingerprint is:
|
|
</p>
|
|
<dl compact="compact">
|
|
<dt> ‘<samp>RSA</samp>’</dt>
|
|
<dd><p> d3:f1:83:97:a4:75:2b:a6:fb:d6:e8:aa:81:93:97:51
|
|
</p></dd>
|
|
<dt> ‘<samp>ECDSA</samp>’</dt>
|
|
<dd><p> 76:9f:68:32:04:1e:d5:d4:ec:47:3f:dc:fc:18:17:86
|
|
</p></dd>
|
|
</dl>
|
|
|
|
<p> If you have problems connecting to the FATE server, it may help to try out
|
|
the <code>ssh</code> command with one or more ‘<samp>-v</samp>’ options. You should
|
|
get detailed output concerning your SSH configuration and the authentication
|
|
process.
|
|
</p>
|
|
<p> The only thing left is to automate the execution of the fate.sh script and
|
|
the synchronisation of the samples directory.
|
|
</p>
|
|
|
|
<a name="FATE-makefile-targets-and-variables"></a>
|
|
<h1 class="chapter"><a href="fate.html#toc-FATE-makefile-targets-and-variables">4. FATE makefile targets and variables</a></h1>
|
|
|
|
<a name="Makefile-targets"></a>
|
|
<h2 class="section"><a href="fate.html#toc-Makefile-targets">4.1 Makefile targets</a></h2>
|
|
|
|
<dl compact="compact">
|
|
<dt> ‘<samp>fate-rsync</samp>’</dt>
|
|
<dd><p>Download/synchronize sample files to the configured samples directory.
|
|
</p>
|
|
</dd>
|
|
<dt> ‘<samp>fate-list</samp>’</dt>
|
|
<dd><p>Will list all fate/regression test targets.
|
|
</p>
|
|
</dd>
|
|
<dt> ‘<samp>fate</samp>’</dt>
|
|
<dd><p>Run the FATE test suite (requires the fate-suite dataset).
|
|
</p></dd>
|
|
</dl>
|
|
|
|
<a name="Makefile-variables"></a>
|
|
<h2 class="section"><a href="fate.html#toc-Makefile-variables">4.2 Makefile variables</a></h2>
|
|
|
|
<dl compact="compact">
|
|
<dt> ‘<samp>V</samp>’</dt>
|
|
<dd><p>Verbosity level, can be set to 0, 1 or 2.
|
|
</p><ul>
|
|
<li> 0: show just the test arguments
|
|
</li><li> 1: show just the command used in the test
|
|
</li><li> 2: show everything
|
|
</li></ul>
|
|
|
|
</dd>
|
|
<dt> ‘<samp>SAMPLES</samp>’</dt>
|
|
<dd><p>Specify or override the path to the FATE samples at make time, it has a
|
|
meaning only while running the regression tests.
|
|
</p>
|
|
</dd>
|
|
<dt> ‘<samp>THREADS</samp>’</dt>
|
|
<dd><p>Specify how many threads to use while running regression tests, it is
|
|
quite useful to detect thread-related regressions.
|
|
</p>
|
|
</dd>
|
|
<dt> ‘<samp>THREAD_TYPE</samp>’</dt>
|
|
<dd><p>Specify which threading strategy test, either <var>slice</var> or <var>frame</var>,
|
|
by default <var>slice+frame</var>
|
|
</p>
|
|
</dd>
|
|
<dt> ‘<samp>CPUFLAGS</samp>’</dt>
|
|
<dd><p>Specify CPU flags.
|
|
</p>
|
|
</dd>
|
|
<dt> ‘<samp>TARGET_EXEC</samp>’</dt>
|
|
<dd><p>Specify or override the wrapper used to run the tests.
|
|
The <var>TARGET_EXEC</var> option provides a way to run FATE wrapped in
|
|
<code>valgrind</code>, <code>qemu-user</code> or <code>wine</code> or on remote targets
|
|
through <code>ssh</code>.
|
|
</p>
|
|
</dd>
|
|
<dt> ‘<samp>GEN</samp>’</dt>
|
|
<dd><p>Set to <var>1</var> to generate the missing or mismatched references.
|
|
</p></dd>
|
|
</dl>
|
|
|
|
<a name="Examples"></a>
|
|
<h2 class="section"><a href="fate.html#toc-Examples">4.3 Examples</a></h2>
|
|
|
|
<table><tr><td> </td><td><pre class="example">make V=1 SAMPLES=/var/fate/samples THREADS=2 CPUFLAGS=mmx fate
|
|
</pre></td></tr></table>
|
|
<footer class="footer pagination-right">
|
|
<span class="label label-info">This document was generated by <em>Kyle Schwarz</em> on <em>April 4, 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.</span></footer></div></div></body>
|