avocado.utils.process: Fix system_output() call

Suppress debug output in this call, which is unnecessary.
Also, ignore its rc, given that we'll kill child processes
only if they actually exist.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
Merge pull request #255 from lmr/process-bugfix

avocado.utils.process: Fix system_output() call
avocado.utils.archive: Add support for .tar.xz

This patch wraps LZMA archive in order to work with python 2.7 tarfile.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
Merge pull request #254 from ldoktor/tar

avocado.utils.archive: Add support for .tar.xz [V3]
selftest.run: Don't use coverage and xunit by default

Usually coverage and xunit are unused and only slows down CI. This patch
disables it by default. In order to get coverage please run
`selftest/coverageall`.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
GDB: add `--gdb-prerun-commands` option to GDB plugin

This feature allows custom GDB commands to be executed before the
actual binary is run. What it can do then, is only limited by the
user's goals.

This is intended to allow complex applications, such as QEMU,
to be debugged inside Avocado tests. Configuring GDB for QEMU,
for example, involves passing signals to the application that
would otherwise result in an event that would stop the debugger.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
requirements.txt: Add pystache requirement

That's necessary for our upcoming HTML results plugin.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
Merge pull request #257 from ldoktor/travis

selftest.run: Don't use coverage and xunit by default
avocado.plugins.plugin: Create get_resources_path API

Allow other plugins to locate resources through the
new get_resource_path API. It'll return correctly
the full path for the given resource file, and the
interface is similar to the os.join() API.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
Avocado: Add htmlresult plugin

Add a plugin to write a job summary HTML page.
The plugin takes results and creates a JSON context, that
is used by the pystache library, to render an HTML page
using a mustache template.

This commit contains the base plugin code, and the resource
files used by the plugin (bootstrap for some of the js, base
css, datatables for the test results table functionality).

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.job: If possible, write an HTML report at the job results dir

If the HTML plugin is enabled on this install, write a
report at html/ on that job results directory. This will
help people to read avocado test results on a portable
and pleasant way.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
setup.py: Add plugin resource files

Package plugin resource files, as they're necessary to
the given plugin's functionality. Update MANIFEST.in
with the new data dir.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.spec: Add subpackage plugins-output-html

Add a subpackage plugins-output-html, that will turn
HTML functionality optional in avocado. This way
we don't force people to install unnecessary dependencies
for the functionality they actually want.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
selftests: Add html plugin tests

Functional verification of the HTML output plugin functionality.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
GDB: let user choose the GDB binary to use

Developers using Avocado's GDB support may need to use their custom
build of GDB, or simply their system has GDB at a different location.
So, allow users to optionally specify the path to the GDB binary.

Also, allow GDB API users to pass extra options to GDB via the command
line.

Changes from v1:
   * use `avocado.utils.process.find_command` as the first default
     location for the gdb binary, falling back to the hard coded
     default of `/usr/bin/gdb` if that fails.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
GDB: let user choose the gdbserver binary to use

Developers using Avocado's GDB support may also need to use their custom
build of gdbserver.

This implements the same logic and options as the previous commit does
for the GDB binary, including API level changes.

Changes from v1:
   * use `avocado.utils.process.find_command` as the first default
     location for the gdbserver binary, falling back to the hard coded
     default of `/usr/bin/gdbserver` if that fails.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
passtest: introduce simplest possible test that passes

The idea is twofold:

1) Show that a test passes simply by not failing, and doing nothing
   means it can't fail
2) Where appropriate, use this in our own functional tests to reduce
   the selftest runtime.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
selftests: replace sleeptest with passtest

This patch replaces most of the calls to sleeptest in our functional
test with passtest, in an attempt to reduce, without invalidating the
purporse, the time it takes to run them.

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

Introduce example test: passtest
Merge pull request #266 from clebergnu/gdb_path_v2

GDB: support for setting gdb/gdbserver paths [v2]