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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user