tst_virt: Make use of systemd-detect-virt if available
The problem is that there is no defined way to detect if we are inside
of a virtual machine, only bunch of heuristics. If you look at the
src/basic/virt.c in systemd source code it's ~500 lines of code that
tries many different things to try to guess if we are running
virtualized and under what hypervisor.
Currenlty LTP fails to detect KVM in OpenStack Cloud (and possibly many
more) since the /proc/cpuinfo does not contain the QEMU string there.
You can also boot QEMU with non-default -cpu option and you will get the
same result.
The easiest solution is to try the systemd-detect-virt first if it
exists, then we fall back to the previously implemented detections for
older distributions. This is not complete solution, as the detection
still fails with older and non-systemd distributions, but it at least
fixes the bug for most distributions.
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Acked-by: Jan Stancek <jstancek@redhat.com>
1 file changed