|
@@ -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
|
|
|
``locking=off`` option to disable image locking.
|
|
|
|
|
|
+.. _docker-ref:
|
|
|
+
|
|
|
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
|
|
|
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/
|