test progress API: removed simplistic check_progress() idea

The check_progress() idea is too simplistic for what we aim for,
so let's remove it to prevent test writers from depending on it.

Also, rename communicate_state() to report_state().

Signed-off-by: Cleber Rosa <crosa@redhat.com>
Merge pull request #172 from clebergnu/report_state

test progress API: removed simplistic check_progress() idea
avocado.plugins: Plugins has priority.

Add priority when loading plugins (both built-in or external).
The lowest the priority (0 by default) then earliest the plugin will
be loaded.

In the current implementation, only the runner plugin has
priority 0 and the other plug-ins are all defined as priority 3.

Signed-off-by: Ruda Moura <rmoura@redhat.com>
avocado.plugins.runner:  Export the test runner parser.

Export the test runner parser back to the main parser,
so you can use `parser.runner` to extend it.

Signed-off-by: Ruda Moura <rmoura@redhat.com>
avocado.plugins: Move plugins to the runner.

Move plugins journal, json, xunit and vm inside the test runner
subcommand, now the command line options belongs to the runner,
instead of the main application.

Signed-off-by: Ruda Moura <rmoura@redhat.com>
seltests: Fix tests regarding moving options to the runner.

Fix functional tests regarding the changes that moves
options from the main application to the test runner (avocado run).

Signed-off-by: Ruda Moura <rmoura@redhat.com>
Merge pull request #174 from ruda/move_options_to_test_runner

Move options to test runner,  plugins has priority and app parser has the test runner parser
avocado.plugins: Fix bug 'Namespace' object has no attribute

Fix problem when running Avocado with subcommand other than run:

$ avocado plugins
Could not activate plugin 'run_vm': 'Namespace' object has no attribute 'vm'
Could not activate plugin 'json': 'Namespace' object has no attribute 'json_output'
Could not activate plugin 'xunit': 'Namespace' object has no attribute 'xunit_output'
Could not activate plugin 'journal': 'Namespace' object has no attribute 'journal'
Plugins loaded:
    datadir      - Implements the avocado 'datadir' subcommand (Enabled)
    json         - JSON output (Enabled)
    journal      - Test journal (Enabled)
    multiplexer  - Implements the avocado 'multiplex' subcommand. (Enabled)
    plugins_list - Implements the avocado 'plugins' subcommand (Enabled)
    run_vm       - Run tests on a Virtual Machine (Enabled)
    sysinfo      - Collect system information (Enabled)
    test_lister  - Implements the avocado 'list' subcommand (Enabled)
    test_runner  - Implements the avocado 'run' subcommand (Enabled)
    xunit        - xUnit output. (Enabled)

Signed-off-by: Ruda Moura <rmoura@redhat.com>
manpage: update based on recent command line and plugin changes

This syncs the manpage with the latest changes of command line options
and plugins (for example, the new multiplex).

Signed-off-by: Cleber Rosa <crosa@redhat.com>
Merge pull request #176 from ruda/plugins_object_has_no_attribute

avocado.plugins: Fix bug 'Namespace' object has no attribute
Merge pull request #177 from clebergnu/manpage_update

manpage: update based on recent command line and plugin changes
plugins.multiplexer: rename filter keywords

Rename them from filter_out and filter_only to filter-out and filter-only,
respectively.

Motivation: consistent with original RFC and easier to the eyes, specially when
new filter keywords get added (filter-depth, filter-value, etc).
examples: add a relatively complex multiplexer file

This is the tree we've been using in several of our discussions and
algorithm simulations.
avocado.utils: Introduce data_factory library

We frequently need to generate data for framework or
testing purposes. Introducing data_factory, a library
dedicated to this purpose.

With this, we can make other parts of avocado to use
it and supersede old functions used on this regard.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado: Make rest of the framework use the data_factory functions

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.core.data_dir: Add get_datafile_path API

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.utils.remote: Add port to the list of Remote params

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.job: fixing exception call on Ctrl+c

s/TestTimeoutError/TestInterruptedError/
Merge pull request #179 from adereis/mux

multiplexer misc commits
avocado.job: don't run additional tests if user hits Ctrl+C

Ctrl+C was aborting the current test, but avocado would keep
looping through the list provided in the command line.