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.

136 lines
4.1KB

  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{FATE_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. @end table
  63. @example
  64. make V=1 SAMPLES=/var/fate/samples THREADS=2 fate
  65. @end example
  66. @chapter Automated Tests
  67. In order to automatically testing specific configurations, e.g. multiple
  68. compilers, @command{tests/fate.sh} is provided.
  69. This shell script builds Libav, runs the regression tests and prepares a
  70. report that can be sent to @url{fate.libav.org} or directly examined locally.
  71. @section Testing Profiles
  72. The configuration file passed to @command{fate.sh} is shell scripts as well.
  73. It must provide at least a @var{slot} identifier, the @var{repo} from
  74. which fetch the sources, the @var{samples} directory, a @var{workdir} with
  75. enough space to build and run all the tests.
  76. Optional submit command @var{fate_recv} and a @var{comment} to describe
  77. the testing profile are available.
  78. Additional optional parameter to tune the Libav building and reporting process
  79. can be passed.
  80. @example
  81. slot= # some unique identifier
  82. repo=git://git.libav.org/libav.git # the source repository
  83. samples=/path/to/fate/samples
  84. workdir= # directory in which to do all the work
  85. fate_recv="ssh -T fate@@fate.libav.org" # command to submit report
  86. comment= # optional description
  87. # the following are optional and map to configure options
  88. arch=
  89. cpu=
  90. cross_prefix=
  91. cc=
  92. target_os=
  93. sysroot=
  94. target_exec=
  95. target_path=
  96. extra_cflags=
  97. extra_ldflags=
  98. extra_libs=
  99. extra_conf= # extra configure options not covered above
  100. #make= # name of GNU make if not 'make'
  101. makeopts= # extra options passed to 'make'
  102. #tar= # command to create a tar archive from its arguments on
  103. # stdout, defaults to 'tar c'
  104. @end example
  105. @section Submitting Reports
  106. In order to send reports you need to create an @command{ssh} key and send it
  107. to @email{root@@libav.org}.
  108. The current server fingerprint is @var{a4:99:d7:d3:1c:92:0d:56:d6:d5:61:be:01:ae:7d:e6}