qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v4 27/27] python/aqmp: Add Coverage.py support


From: John Snow
Subject: [PATCH v4 27/27] python/aqmp: Add Coverage.py support
Date: Wed, 15 Sep 2021 12:29:55 -0400

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>
---
 python/.gitignore  |  5 +++++
 python/Makefile    |  9 +++++++++
 python/avocado.cfg |  3 +++
 python/setup.cfg   | 10 ++++++++++
 4 files changed, 27 insertions(+)

diff --git a/python/.gitignore b/python/.gitignore
index c8b0e67fe6..904f324bb1 100644
--- a/python/.gitignore
+++ b/python/.gitignore
@@ -15,3 +15,8 @@ qemu.egg-info/
 .venv/
 .tox/
 .dev-venv/
+
+# Coverage.py reports
+.coverage
+.coverage.*
+htmlcov/
diff --git a/python/Makefile b/python/Makefile
index fe27a3e12e..3334311362 100644
--- a/python/Makefile
+++ b/python/Makefile
@@ -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/
diff --git a/python/avocado.cfg b/python/avocado.cfg
index 10dc6fb605..c7722e7ecd 100644
--- a/python/avocado.cfg
+++ b/python/avocado.cfg
@@ -1,3 +1,6 @@
+[run]
+test_runner = runner
+
 [simpletests]
 # Don't show stdout/stderr in the test *summary*
 status.failure_fields = ['status']
diff --git a/python/setup.cfg b/python/setup.cfg
index c22d9961df..37c71d395b 100644
--- a/python/setup.cfg
+++ b/python/setup.cfg
@@ -139,3 +139,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
-- 
2.31.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]