You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
4.2KB

  1. \input texinfo @c -*- texinfo -*-
  2. @settitle FATE Automated Testing Environment
  3. @titlepage
  4. @center @titlefont{FATE Automated Testing Environment}
  5. @end titlepage
  6. @top
  7. @contents
  8. @chapter Introduction
  9. FATE provides a regression testsuite embedded within the Libav build system.
  10. It can be run locally and optionally configured to send reports to a web
  11. aggregator and viewer @url{http://fate.libav.org}.
  12. It is advised to run FATE before submitting patches to the current codebase
  13. and provide new tests when submitting patches to add additional features.
  14. @chapter Running FATE
  15. @section Samples and References
  16. In order to run, FATE needs a large amount of data (samples and references)
  17. that is provided separately from the actual source distribution.
  18. To inform the build system about the testsuite location, pass
  19. @option{--samples=<path to the samples>} to @command{configure} or set the
  20. @var{SAMPLES} Make variable or the @var{LIBAV_SAMPLES} environment variable
  21. to a suitable value.
  22. The dataset is available through @command{rsync}, is possible to fetch
  23. the current sample using the straight rsync command or through a specific
  24. @ref{Makefile target}.
  25. @example
  26. # rsync -aL rsync://fate-suite.libav.org/fate-suite/ fate-suite
  27. @end example
  28. @example
  29. # make fate-rsync SAMPLES=fate-suite
  30. @end example
  31. @chapter Manual Run
  32. FATE regression test can be run through @command{make}.
  33. Specific Makefile targets and Makefile variables are available:
  34. @anchor{Makefile target}
  35. @section FATE Makefile targets
  36. @table @option
  37. @item fate-list
  38. List all fate/regression test targets.
  39. @item fate-rsync
  40. Shortcut to download the fate test samples to the specified testsuite location.
  41. @item fate
  42. Run the FATE test suite (requires the fate-suite dataset).
  43. @end table
  44. @section Fate Makefile variables
  45. @table @option
  46. @item V
  47. Verbosity level, can be set to 0, 1 or 2.
  48. @table @option
  49. @item 0
  50. show just the test arguments
  51. @item 1
  52. show just the command used in the test
  53. @item 2
  54. show everything
  55. @end table
  56. @item SAMPLES
  57. Specify or override the path to the FATE samples at make time, it has a
  58. meaning only while running the regression tests.
  59. @item THREADS
  60. Specify how many threads to use while running regression tests, it is
  61. quite useful to detect thread-related regressions.
  62. @item CPUFLAGS
  63. Specify a mask to be applied to autodetected CPU flags.
  64. @end table
  65. @example
  66. make V=1 SAMPLES=/var/fate/samples THREADS=2 CPUFLAGS=mmx fate
  67. @end example
  68. @chapter Automated Tests
  69. In order to automatically testing specific configurations, e.g. multiple
  70. compilers, @command{tests/fate.sh} is provided.
  71. This shell script builds Libav, runs the regression tests and prepares
  72. a report that can be sent to @url{http://fate.libav.org/} or directly
  73. examined locally.
  74. @section Testing Profiles
  75. The configuration file passed to @command{fate.sh} is shell scripts as well.
  76. It must provide at least a @var{slot} identifier, the @var{repo} from
  77. which fetch the sources, the @var{samples} directory, a @var{workdir} with
  78. enough space to build and run all the tests.
  79. Optional submit command @var{fate_recv} and a @var{comment} to describe
  80. the testing profile are available.
  81. Additional optional parameter to tune the Libav building and reporting process
  82. can be passed.
  83. @example
  84. slot= # some unique identifier
  85. repo=git://git.libav.org/libav.git # the source repository
  86. samples=/path/to/fate/samples
  87. workdir= # directory in which to do all the work
  88. fate_recv="ssh -T fate@@fate.libav.org" # command to submit report
  89. comment= # optional description
  90. # the following are optional and map to configure options
  91. arch=
  92. cpu=
  93. cross_prefix=
  94. cc=
  95. target_os=
  96. sysroot=
  97. target_exec=
  98. target_path=
  99. extra_cflags=
  100. extra_ldflags=
  101. extra_libs=
  102. extra_conf= # extra configure options not covered above
  103. #make= # name of GNU make if not 'make'
  104. makeopts= # extra options passed to 'make'
  105. #tar= # command to create a tar archive from its arguments on
  106. # stdout, defaults to 'tar c'
  107. @end example
  108. @section Submitting Reports
  109. In order to send reports you need to create an @command{ssh} key and send it
  110. to @email{root@@libav.org}.
  111. The current server fingerprint is @var{a4:99:d7:d3:1c:92:0d:56:d6:d5:61:be:01:ae:7d:e6}