python/aqmp: Add Coverage.py support

I'm not exposing this via the Makefile help, it's not likely to be
useful to passersby. Switch the avocado runner to the 'legacy' runner
for now, as the new runner seems to obscure coverage reports, again.

Usage is to enter your venv of choice and then:
`make check-coverage && xdg-open htmlcov/index.html`.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-28-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
staging
John Snow 2021-09-15 12:29:55 -04:00
parent 8193b9d148
commit a4ffaecd57
4 changed files with 27 additions and 0 deletions

5
python/.gitignore vendored
View File

@ -15,3 +15,8 @@ qemu.egg-info/
.venv/
.tox/
.dev-venv/
# Coverage.py reports
.coverage
.coverage.*
htmlcov/

View File

@ -92,6 +92,13 @@ check:
check-tox:
@tox $(QEMU_TOX_EXTRA_ARGS)
.PHONY: check-coverage
check-coverage:
@coverage run -m avocado --config avocado.cfg run tests/*.py
@coverage combine
@coverage html
@coverage report
.PHONY: clean
clean:
python3 setup.py clean --all
@ -100,3 +107,5 @@ clean:
.PHONY: distclean
distclean: clean
rm -rf qemu.egg-info/ .venv/ .tox/ $(QEMU_VENV_DIR) dist/
rm -f .coverage .coverage.*
rm -rf htmlcov/

View File

@ -1,3 +1,6 @@
[run]
test_runner = runner
[simpletests]
# Don't show stdout/stderr in the test *summary*
status.failure_fields = ['status']

View File

@ -140,3 +140,13 @@ deps =
.[fuse] # Workaround to trigger tox venv rebuild
commands =
make check
# Coverage.py [https://coverage.readthedocs.io/en/latest/] is a tool for
# measuring code coverage of Python programs. It monitors your program,
# noting which parts of the code have been executed, then analyzes the
# source to identify code that could have been executed but was not.
[coverage:run]
concurrency = multiprocessing
source = qemu/
parallel = true