[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 18/38] docs/devel: update instruction on how to add new unit tests
From: |
Paolo Bonzini |
Subject: |
[PULL 18/38] docs/devel: update instruction on how to add new unit tests |
Date: |
Mon, 12 Oct 2020 16:33:23 -0400 |
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
docs/devel/qtest.rst | 30 +++++++++++++++++++++---------
docs/devel/testing.rst | 19 ++++++++++---------
2 files changed, 31 insertions(+), 18 deletions(-)
diff --git a/docs/devel/qtest.rst b/docs/devel/qtest.rst
index 075fe5f7d5..97c5a75626 100644
--- a/docs/devel/qtest.rst
+++ b/docs/devel/qtest.rst
@@ -33,15 +33,27 @@ Steps to add a new QTest case are:
2. Write the test code with the glib and libqtest/libqos API. See also existing
tests and the library headers for reference.
-3. Register the new test in ``tests/qtest/Makefile.include``. Add the test
- executable name to an appropriate ``check-qtest-*-y`` variable. For example:
-
- ``check-qtest-generic-y = tests/qtest/foo-test$(EXESUF)``
-
-4. Add object dependencies of the executable in the Makefile, including the
- test source file(s) and other interesting objects. For example:
-
- ``tests/qtest/foo-test$(EXESUF): tests/qtest/foo-test.o $(libqos-obj-y)``
+3. Register the new test in ``tests/qtest/meson.build``. Add the test
+ executable name to an appropriate ``qtests_*`` variable. There is
+ one variable per architecture, plus ``qtests_generic`` for tests
+ that can be run for all architectures. For example::
+
+ qtests_generic = [
+ ...
+ 'foo-test',
+ ...
+ ]
+
+4. If the test has more than one source file or needs to be linked with any
+ dependency other than ``qemuutil`` and ``qos``, list them in the ``qtests``
+ dictionary. For example a test that needs to use the ``QIO`` library
+ will have an entry like::
+
+ {
+ ...
+ 'foo-test': [io],
+ ...
+ }
Debugging a QTest failure is slightly harder than the unit test because the
tests look up QEMU program names in the environment variables, such as
diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst
index e58389b29f..0c3e79d31c 100644
--- a/docs/devel/testing.rst
+++ b/docs/devel/testing.rst
@@ -41,15 +41,16 @@ add a new unit test:
test. The test code should be organized with the glib testing framework.
Copying and modifying an existing test is usually a good idea.
-3. Add the test to ``tests/Makefile.include``. First, name the unit test
- program and add it to ``$(check-unit-y)``; then add a rule to build the
- executable. For example:
-
-.. code::
-
- check-unit-y += tests/foo-test$(EXESUF)
- tests/foo-test$(EXESUF): tests/foo-test.o $(test-util-obj-y)
- ...
+3. Add the test to ``tests/meson.build``. The unit tests are listed in a
+ dictionary called ``tests``. The values are any additional sources and
+ dependencies to be linked with the test. For a simple test whose source
+ is in ``tests/foo-test.c``, it is enough to add an entry like::
+
+ {
+ ...
+ 'foo-test': [],
+ ...
+ }
Since unit tests don't require environment variables, the simplest way to debug
a unit test failure is often directly invoking it or even running it under
--
2.26.2
- [PULL 02/38] meson.build: Sort sourcesets alphabetically, (continued)
- [PULL 02/38] meson.build: Sort sourcesets alphabetically, Paolo Bonzini, 2020/10/12
- [PULL 05/38] migration: Move the creation of the library to the main meson.build, Paolo Bonzini, 2020/10/12
- [PULL 06/38] io: Move the creation of the library to the main meson.build, Paolo Bonzini, 2020/10/12
- [PULL 08/38] authz: Move the creation of the library to the main meson.build, Paolo Bonzini, 2020/10/12
- [PULL 10/38] hw/nvram: Always register FW_CFG_DATA_GENERATOR_INTERFACE, Paolo Bonzini, 2020/10/12
- [PULL 09/38] qom: Move the creation of the library to the main meson.build, Paolo Bonzini, 2020/10/12
- [PULL 12/38] exec: split out non-softmmu-specific parts, Paolo Bonzini, 2020/10/12
- [PULL 11/38] softmmu: move more files to softmmu/, Paolo Bonzini, 2020/10/12
- [PULL 17/38] qtest: unify extra_qtest_srcs and extra_qtest_deps, Paolo Bonzini, 2020/10/12
- [PULL 15/38] docs/devel/qtest: Include protocol spec in document, Paolo Bonzini, 2020/10/12
- [PULL 18/38] docs/devel: update instruction on how to add new unit tests,
Paolo Bonzini <=
- [PULL 29/38] scsi/scsi_bus: switch search direction in scsi_device_find, Paolo Bonzini, 2020/10/12
- [PULL 26/38] qtest: check that drives are really appearing and disappearing, Paolo Bonzini, 2020/10/12
- [PULL 22/38] qtest: Reintroduce qtest_qmp_receive with QMP event buffering, Paolo Bonzini, 2020/10/12
- [PULL 23/38] qtest: remove qtest_qmp_receive_success, Paolo Bonzini, 2020/10/12
- [PULL 19/38] build-sys: fix git version from -version, Paolo Bonzini, 2020/10/12
- [PULL 24/38] device-plug-test: use qtest_qmp to send the device_del command, Paolo Bonzini, 2020/10/12
- [PULL 25/38] qtest: switch users back to qtest_qmp_receive, Paolo Bonzini, 2020/10/12
- [PULL 20/38] meson.build: Re-enable KVM support for MIPS, Paolo Bonzini, 2020/10/12
- [PULL 21/38] qtest: rename qtest_qmp_receive to qtest_qmp_receive_dict, Paolo Bonzini, 2020/10/12
- [PULL 14/38] docs: Move QTest documentation to its own document, Paolo Bonzini, 2020/10/12