[/
 / Copyright (c) 2003 Boost.Test contributors
 /
 / Distributed under the Boost Software License, Version 1.0. (See accompanying
 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 /]

[section:test_module_runner_overview Test module runner]

A ['test module runner] is an ['orchestrator] or a ['driver] that, given the test tree, ensures the test tree is initialized,
tests are executed and necessary reports generated. It performs the following operations:

* initialize the test module using the supplied [link boost_test.adv_scenarios.test_module_init_overview ['initialization function]];
* select output media for the test log and the test results report;
* execute test cases as specified by run-time parameters;
* produce the test results report;
* generate the appropriate return code.

The __UTF__ comes with the default test runner. There is no need to call it explicitly. The default generated test module's
[link boost_test.adv_scenarios.entry_point_overview entry point] invokes the default test runner. The default test runner is
declared with the following signature:

```
namespace boost { namespace unit_test {

  typedef bool (*init_unit_test_func)();

  int unit_test_main( init_unit_test_func init_func, int argc, char* argv[] );

} }
```

The test runner may return one of the following values:

[table
[[Value][Meaning]]
[[`boost::exit_success`][
* No errors occurred during testing, or
* the success result was forced with command-line argument `--[link boost_test.utf_reference.rt_param_reference.result_code `result_code`]=no`.]]
[[`boost::exit_test_failure`][
* Non-fatal errors detected and no uncaught exceptions were thrown during testing, or
* the initialization of the __UTF__ failed. ]]
[[`boost::exit_exception_failure`][
* Fatal errors were detected, or
* uncaught exceptions thrown during testing. ]]
]

An advanced test runner may provide additional features, including interactive GUI interfaces, test coverage and profiling support.

[endsect] [/section:test_module_runner_overview]
