config BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS
	bool
	# On ARM, it uses virtualization extensions
	default y if BR2_cortex_a7 || BR2_cortex_a12 || \
		BR2_cortex_a15 || BR2_cortex_a15_a7 || \
		BR2_cortex_a17 || BR2_cortex_a17_a7
	default y if BR2_i386 || BR2_x86_64
	default y if BR2_powerpc64 || BR2_powerpc64le

config BR2_PACKAGE_KVM_UNIT_TESTS
	bool "kvm-unit-tests"
	depends on BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS
	# on i386 and x86-64, __builtin_reachable is used, so we need
	# gcc 4.5 at least. on i386, we use the target gcc, while on
	# x86-64 we use the host gcc (see .mk file for details)
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || !BR2_i386
	depends on BR2_HOST_GCC_AT_LEAST_4_5 || !BR2_x86_64
	select BR2_HOSTARCH_NEEDS_IA32_COMPILER if BR2_x86_64=y
	help
	  kvm-unit-tests is a project as old as KVM. As its name
	  suggests, it's purpose is to provide unit tests for KVM. The
	  unit tests are tiny guest operating systems that generally
	  execute only tens of lines of C and assembler test code in
	  order to obtain its PASS/FAIL result. Unit tests provide KVM
	  and virt hardware functional testing by targeting the
	  features through minimal implementations of their use per
	  the hardware specification. The simplicity of unit tests
	  make them easy to verify they are correct, easy to maintain,
	  and easy to use in timing measurements. Unit tests are also
	  often used for quick and dirty bug reproducers. The
	  reproducers may then be kept as regression tests.  It's
	  strongly encouraged that patches implementing new KVM
	  features are submitted with accompanying unit tests.

	  http://www.linux-kvm.org/page/KVM-unit-tests

comment "kvm-unit-tests needs a toolchain w/ gcc >= 4.5"
	depends on BR2_i386
	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5

comment "kvm-unit-tests needs a host gcc >= 4.5"
	depends on BR2_x86_64
	depends on !BR2_HOST_GCC_AT_LEAST_4_5
