mirror of https://github.com/xemu-project/xemu.git
docs/devel: add "check-tcg" to testing.rst
It was pointed out we haven't documented the check-tcg part of the build system. Attempt to rectify that now. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
daa79d9a65
commit
f8ed349e6d
|
@ -266,6 +266,8 @@ another application on the host may have locked the file, possibly leading to a
|
||||||
test failure. If using such devices are explicitly desired, consider adding
|
test failure. If using such devices are explicitly desired, consider adding
|
||||||
``locking=off`` option to disable image locking.
|
``locking=off`` option to disable image locking.
|
||||||
|
|
||||||
|
.. _docker-ref:
|
||||||
|
|
||||||
Docker based tests
|
Docker based tests
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
@ -799,3 +801,77 @@ And remove any package you want with::
|
||||||
|
|
||||||
If you've used ``make check-acceptance``, the Python virtual environment where
|
If you've used ``make check-acceptance``, the Python virtual environment where
|
||||||
Avocado is installed will be cleaned up as part of ``make check-clean``.
|
Avocado is installed will be cleaned up as part of ``make check-clean``.
|
||||||
|
|
||||||
|
Testing with "make check-tcg"
|
||||||
|
=============================
|
||||||
|
|
||||||
|
The check-tcg tests are intended for simple smoke tests of both
|
||||||
|
linux-user and softmmu TCG functionality. However to build test
|
||||||
|
programs for guest targets you need to have cross compilers available.
|
||||||
|
If your distribution supports cross compilers you can do something as
|
||||||
|
simple as::
|
||||||
|
|
||||||
|
apt install gcc-aarch64-linux-gnu
|
||||||
|
|
||||||
|
The configure script will automatically pick up their presence.
|
||||||
|
Sometimes compilers have slightly odd names so the availability of
|
||||||
|
them can be prompted by passing in the appropriate configure option
|
||||||
|
for the architecture in question, for example::
|
||||||
|
|
||||||
|
$(configure) --cross-cc-aarch64=aarch64-cc
|
||||||
|
|
||||||
|
There is also a ``--cross-cc-flags-ARCH`` flag in case additional
|
||||||
|
compiler flags are needed to build for a given target.
|
||||||
|
|
||||||
|
If you have the ability to run containers as the user you can also
|
||||||
|
take advantage of the build systems "Docker" support. It will then use
|
||||||
|
containers to build any test case for an enabled guest where there is
|
||||||
|
no system compiler available. See :ref: `_docker-ref` for details.
|
||||||
|
|
||||||
|
Running subset of tests
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
You can build the tests for one architecture::
|
||||||
|
|
||||||
|
make build-tcg-tests-$TARGET
|
||||||
|
|
||||||
|
And run with::
|
||||||
|
|
||||||
|
make run-tcg-tests-$TARGET
|
||||||
|
|
||||||
|
Adding ``V=1`` to the invocation will show the details of how to
|
||||||
|
invoke QEMU for the test which is useful for debugging tests.
|
||||||
|
|
||||||
|
TCG test dependencies
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
The TCG tests are deliberately very light on dependencies and are
|
||||||
|
either totally bare with minimal gcc lib support (for softmmu tests)
|
||||||
|
or just glibc (for linux-user tests). This is because getting a cross
|
||||||
|
compiler to work with additional libraries can be challenging.
|
||||||
|
|
||||||
|
Other TCG Tests
|
||||||
|
---------------
|
||||||
|
|
||||||
|
There are a number of out-of-tree test suites that are used for more
|
||||||
|
extensive testing of processor features.
|
||||||
|
|
||||||
|
KVM Unit Tests
|
||||||
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The KVM unit tests are designed to run as a Guest OS under KVM but
|
||||||
|
there is no reason why they can't exercise the TCG as well. It
|
||||||
|
provides a minimal OS kernel with hooks for enabling the MMU as well
|
||||||
|
as reporting test results via a special device::
|
||||||
|
|
||||||
|
https://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git
|
||||||
|
|
||||||
|
Linux Test Project
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The LTP is focused on exercising the syscall interface of a Linux
|
||||||
|
kernel. It checks that syscalls behave as documented and strives to
|
||||||
|
exercise as many corner cases as possible. It is a useful test suite
|
||||||
|
to run to exercise QEMU's linux-user code::
|
||||||
|
|
||||||
|
https://linux-test-project.github.io/
|
||||||
|
|
Loading…
Reference in New Issue