From 6f448a93edf0fbc5015352e3dd4b6992977c0e71 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Aug 10 2021 11:57:48 +0000 Subject: import virt-what-1.18-9.el8_4 --- diff --git a/SOURCES/0001-Missing-have_cpuinfo-check.patch b/SOURCES/0001-Missing-have_cpuinfo-check.patch index 3034d10..8b89e45 100644 --- a/SOURCES/0001-Missing-have_cpuinfo-check.patch +++ b/SOURCES/0001-Missing-have_cpuinfo-check.patch @@ -1,7 +1,7 @@ From eefc1e7e3dd8fb422baf0f13aec1df9880541b83 Mon Sep 17 00:00:00 2001 From: Jasper Lievisse Adriaanse Date: Thu, 10 Aug 2017 08:44:01 +0100 -Subject: [PATCH 01/12] Missing have_cpuinfo check. +Subject: [PATCH 01/21] Missing have_cpuinfo check. --- virt-what.in | 2 +- @@ -21,5 +21,5 @@ index 8c27b11..9050035 100644 fi fi -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0001-Simplify-and-fix-invocation-of-cpuid.patch b/SOURCES/0001-Simplify-and-fix-invocation-of-cpuid.patch new file mode 100644 index 0000000..91f9c6a --- /dev/null +++ b/SOURCES/0001-Simplify-and-fix-invocation-of-cpuid.patch @@ -0,0 +1,60 @@ +From 60d903fbb7653bc9754228bdab4c6933fcda1e72 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 13 Apr 2021 09:35:07 +0100 +Subject: [PATCH] Simplify and fix invocation of cpuid. + +Fixes a crash on some platforms identified by Yongkui Guo in +https://bugzilla.redhat.com/show_bug.cgi?id=1756381#c15 +--- + virt-what-cpuid-helper.c | 24 ++++++++++++++++-------- + 1 file changed, 16 insertions(+), 8 deletions(-) + +diff --git a/virt-what-cpuid-helper.c b/virt-what-cpuid-helper.c +index 9c6cdb2..fdceb62 100644 +--- a/virt-what-cpuid-helper.c ++++ b/virt-what-cpuid-helper.c +@@ -47,17 +47,25 @@ known_signature (const char *sig) + 0; + } + ++/* Copied from the Linux kernel definition in ++ * arch/x86/include/asm/processor.h ++ */ ++static inline void ++cpuid (uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx) ++{ ++ asm volatile ("cpuid" ++ : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx) ++ : "0" (*eax), "2" (*ecx) ++ : "memory"); ++} ++ + static uint32_t +-cpuid (uint32_t eax, char *sig) ++cpuid_leaf (uint32_t eax, char *sig) + { + uint32_t *sig32 = (uint32_t *) sig; + +- asm volatile ( +- "xchgl %%ebx,%1; xor %%ebx,%%ebx; cpuid; xchgl %%ebx,%1" +- : "=a" (eax), "+r" (sig32[0]), "=c" (sig32[1]), "=d" (sig32[2]) +- : "0" (eax)); +- sig[12] = 0; +- ++ cpuid (&eax, &sig32[0], &sig32[1], &sig32[2]); ++ sig[12] = 0; /* \0-terminate the string to make string comparison possible */ + return eax; + } + +@@ -87,7 +95,7 @@ cpu_sig (void) + */ + for (leaf = base + 0xff00; leaf >= base; leaf -= 0x100) { + memset (sig, 0, sizeof sig); +- cpuid (leaf, sig); ++ cpuid_leaf (leaf, sig); + if (known_signature (sig)) { + puts (sig); + break; +-- +2.29.0.rc2 + diff --git a/SOURCES/0002-Remove-bashisms.patch b/SOURCES/0002-Remove-bashisms.patch index 6161fd6..2809cc8 100644 --- a/SOURCES/0002-Remove-bashisms.patch +++ b/SOURCES/0002-Remove-bashisms.patch @@ -1,7 +1,7 @@ From 9d90704a05dee7704470eff818a1c44aeef6c880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Fri, 4 Aug 2017 12:02:08 -0300 -Subject: [PATCH 02/12] Remove bashisms +Subject: [PATCH 02/21] Remove bashisms Use [ instead of [[ so we fall back to test if necessary: @@ -44,5 +44,5 @@ index 9050035..a05e0db 100644 fi fi -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0003-As-xen-pv-guest-can-access-cpuid-from-Intel-CPUs-sta.patch b/SOURCES/0003-As-xen-pv-guest-can-access-cpuid-from-Intel-CPUs-sta.patch index 777a4ba..201223c 100644 --- a/SOURCES/0003-As-xen-pv-guest-can-access-cpuid-from-Intel-CPUs-sta.patch +++ b/SOURCES/0003-As-xen-pv-guest-can-access-cpuid-from-Intel-CPUs-sta.patch @@ -1,7 +1,7 @@ From a821dc9961d457c086fffcc16a911cb6f9f8659a Mon Sep 17 00:00:00 2001 From: xiliang Date: Sun, 18 Jun 2017 00:33:28 +0800 -Subject: [PATCH 03/12] As xen pv guest can access cpuid from Intel CPUs +Subject: [PATCH 03/21] As xen pv guest can access cpuid from Intel CPUs started IvyBridge onwards have CPUID Faulting, added one more check in virt-what. @@ -32,5 +32,5 @@ index a05e0db..247348e 100644 # Check for AWS if echo "$dmi" | grep -q 'Version: [0-9]\.[0-9]\.amazon'; then -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0004-Recognize-ppc64le-little-endian-virtualization-RHBZ-.patch b/SOURCES/0004-Recognize-ppc64le-little-endian-virtualization-RHBZ-.patch index 50e5ca0..88f4588 100644 --- a/SOURCES/0004-Recognize-ppc64le-little-endian-virtualization-RHBZ-.patch +++ b/SOURCES/0004-Recognize-ppc64le-little-endian-virtualization-RHBZ-.patch @@ -1,7 +1,7 @@ From 7db94c8fe63f2c7ec3ac27cc5ff54ec1e1686aeb Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 17 Oct 2017 14:47:09 +0100 -Subject: [PATCH 04/12] Recognize ppc64le (little endian) virtualization +Subject: [PATCH 04/21] Recognize ppc64le (little endian) virtualization (RHBZ#1147876). Tested by Laurent Vivier, see: @@ -24,5 +24,5 @@ index 247348e..29b7b0d 100644 if grep -q 'model.*emulated by qemu' "${root}/proc/cpuinfo"; then echo ibm_power-kvm -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0005-Determine-architecture-via-uname-m.patch b/SOURCES/0005-Determine-architecture-via-uname-m.patch index 82cdcdc..e7d08f5 100644 --- a/SOURCES/0005-Determine-architecture-via-uname-m.patch +++ b/SOURCES/0005-Determine-architecture-via-uname-m.patch @@ -1,7 +1,7 @@ From 52870e8a264653d7921e8a4edff56d4b050614d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Sat, 27 Jan 2018 13:11:36 +0100 -Subject: [PATCH 05/12] Determine architecture via 'uname -m' +Subject: [PATCH 05/21] Determine architecture via 'uname -m' 'uname -p' only gives unknown on x86_64, i386, arm6l (rpi) and aarch64 (scaleways). @@ -26,5 +26,5 @@ index 29b7b0d..2011ff4 100644 # Check for VMware. # cpuid check added by Chetan Loke. -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0006-Allow-using-sysctl-for-example-when-proc-isn-t-avail.patch b/SOURCES/0006-Allow-using-sysctl-for-example-when-proc-isn-t-avail.patch index b8d6a1f..50967ca 100644 --- a/SOURCES/0006-Allow-using-sysctl-for-example-when-proc-isn-t-avail.patch +++ b/SOURCES/0006-Allow-using-sysctl-for-example-when-proc-isn-t-avail.patch @@ -1,7 +1,7 @@ From d7fd8a7843030d2b1719353edfcd49dba3000122 Mon Sep 17 00:00:00 2001 From: Jasper Lievisse Adriaanse Date: Wed, 25 Apr 2018 16:41:32 +0200 -Subject: [PATCH 06/12] Allow using sysctl, for example when /proc isn't +Subject: [PATCH 06/21] Allow using sysctl, for example when /proc isn't available --- @@ -40,5 +40,5 @@ index 2011ff4..d037a99 100644 # This is known to fail for qemu with the explicit -cpu # option, since /proc/cpuinfo will not contain the QEMU -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0007-Replace-with-since-the-former-is-a-bash-ism.patch b/SOURCES/0007-Replace-with-since-the-former-is-a-bash-ism.patch index 2d14ec7..cd5d07c 100644 --- a/SOURCES/0007-Replace-with-since-the-former-is-a-bash-ism.patch +++ b/SOURCES/0007-Replace-with-since-the-former-is-a-bash-ism.patch @@ -1,7 +1,7 @@ From 5efe9f7a58cd0cdc6f4c279c7f0a69e57fbda56f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 28 Aug 2018 18:32:41 +0100 -Subject: [PATCH 07/12] Replace == with = since the former is a bash-ism. +Subject: [PATCH 07/21] Replace == with = since the former is a bash-ism. Thanks: Eric Blake. @@ -24,5 +24,5 @@ index d037a99..a2f8f19 100644 fail () { -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0008-aws-Detect-AWS-from-dmidecode-information.patch b/SOURCES/0008-aws-Detect-AWS-from-dmidecode-information.patch index a7da308..0ce8536 100644 --- a/SOURCES/0008-aws-Detect-AWS-from-dmidecode-information.patch +++ b/SOURCES/0008-aws-Detect-AWS-from-dmidecode-information.patch @@ -1,7 +1,7 @@ From 147c648e950ef45b7a5b7b3e8cb30b89c435593b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 31 Oct 2018 15:04:24 +0000 -Subject: [PATCH 08/12] aws: Detect AWS from dmidecode information. +Subject: [PATCH 08/21] aws: Detect AWS from dmidecode information. Move the AWS detection out from under Xen. AWS runs on KVM and baremetal these days. The dmidecode information for KVM and baremetal @@ -75,5 +75,5 @@ index ebfc190..5a0bdfc 100644 =item B -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0009-tests-Fix-tests-when-run-on-AWS.patch b/SOURCES/0009-tests-Fix-tests-when-run-on-AWS.patch index d698637..03f9514 100644 --- a/SOURCES/0009-tests-Fix-tests-when-run-on-AWS.patch +++ b/SOURCES/0009-tests-Fix-tests-when-run-on-AWS.patch @@ -1,7 +1,7 @@ From 4bceb38a6102ca95bde79205efaa643a0824d3a2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 31 Oct 2018 15:35:34 +0000 -Subject: [PATCH 09/12] tests: Fix tests when run on AWS. +Subject: [PATCH 09/21] tests: Fix tests when run on AWS. When running on AWS two of the tests failed. This was because the tests did _not_ include a working dmidecode binary, hence the platform @@ -28,5 +28,5 @@ diff --git a/tests/ppc64-baremetal/sbin/dmidecode b/tests/ppc64-baremetal/sbin/d old mode 100644 new mode 100755 -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0010-aws-Add-regression-test-for-AWS-on-KVM-on-x86_64-arc.patch b/SOURCES/0010-aws-Add-regression-test-for-AWS-on-KVM-on-x86_64-arc.patch index 1ec85ce..b6fdd56 100644 --- a/SOURCES/0010-aws-Add-regression-test-for-AWS-on-KVM-on-x86_64-arc.patch +++ b/SOURCES/0010-aws-Add-regression-test-for-AWS-on-KVM-on-x86_64-arc.patch @@ -1,7 +1,7 @@ From 129a25f9854930928351c8cc3913a5b9a1c558b4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 31 Oct 2018 15:23:45 +0000 -Subject: [PATCH 10/12] aws: Add regression test for AWS on KVM on x86_64 +Subject: [PATCH 10/21] aws: Add regression test for AWS on KVM on x86_64 architecture. --- @@ -286,5 +286,5 @@ index 0000000..db4c19f + exit 1 +fi -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0011-aws-Add-regression-test-for-AWS-on-baremetal-on-x86_.patch b/SOURCES/0011-aws-Add-regression-test-for-AWS-on-baremetal-on-x86_.patch index acd2fb7..c733819 100644 --- a/SOURCES/0011-aws-Add-regression-test-for-AWS-on-baremetal-on-x86_.patch +++ b/SOURCES/0011-aws-Add-regression-test-for-AWS-on-baremetal-on-x86_.patch @@ -1,7 +1,7 @@ From 298a15ead59c2dbeb9b2fabe7fb502100fdd4dc7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 31 Oct 2018 15:43:20 +0000 -Subject: [PATCH 11/12] aws: Add regression test for AWS on baremetal on x86_64 +Subject: [PATCH 11/21] aws: Add regression test for AWS on baremetal on x86_64 architecture. --- @@ -3231,5 +3231,5 @@ index 0000000..d456163 + exit 1 +fi -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0012-aws-Add-regression-test-for-AWS-on-Xen-on-x86_64-arc.patch b/SOURCES/0012-aws-Add-regression-test-for-AWS-on-Xen-on-x86_64-arc.patch index 50cc63f..fe563ad 100644 --- a/SOURCES/0012-aws-Add-regression-test-for-AWS-on-Xen-on-x86_64-arc.patch +++ b/SOURCES/0012-aws-Add-regression-test-for-AWS-on-Xen-on-x86_64-arc.patch @@ -1,7 +1,7 @@ From 350291e1ca417eab9d2aa2408589f0259cac007c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 31 Oct 2018 15:23:45 +0000 -Subject: [PATCH 12/12] aws: Add regression test for AWS on Xen on x86_64 +Subject: [PATCH 12/21] aws: Add regression test for AWS on Xen on x86_64 architecture. --- @@ -354,5 +354,5 @@ index 0000000..22b7f83 + exit 1 +fi -- -2.19.0.rc0 +2.23.0 diff --git a/SOURCES/0013-aws-Add-regression-test-for-AWS-on-KVM-on-ARM-archit.patch b/SOURCES/0013-aws-Add-regression-test-for-AWS-on-KVM-on-ARM-archit.patch new file mode 100644 index 0000000..dcacb2e --- /dev/null +++ b/SOURCES/0013-aws-Add-regression-test-for-AWS-on-KVM-on-ARM-archit.patch @@ -0,0 +1,244 @@ +From f25e07d43db40355b321493f78758ea058fa3849 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Wed, 31 Oct 2018 15:23:45 +0000 +Subject: [PATCH 13/21] aws: Add regression test for AWS on KVM on ARM + architecture. + +--- + Makefile.am | 1 + + tests/aws-kvm-arm/proc/cpuinfo | 9 +++ + tests/aws-kvm-arm/proc/self/status | 54 +++++++++++++++ + tests/aws-kvm-arm/sbin/dmidecode | 68 +++++++++++++++++++ + tests/aws-kvm-arm/sbin/uname | 2 + + tests/aws-kvm-arm/sbin/virt-what-cpuid-helper | 2 + + tests/test-aws-kvm-arm.sh | 36 ++++++++++ + 7 files changed, 172 insertions(+) + create mode 100644 tests/aws-kvm-arm/proc/cpuinfo + create mode 100644 tests/aws-kvm-arm/proc/self/status + create mode 100755 tests/aws-kvm-arm/sbin/dmidecode + create mode 100755 tests/aws-kvm-arm/sbin/uname + create mode 100755 tests/aws-kvm-arm/sbin/virt-what-cpuid-helper + create mode 100755 tests/test-aws-kvm-arm.sh + +diff --git a/Makefile.am b/Makefile.am +index 22680a0..67502fc 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -40,6 +40,7 @@ endif + + TESTS = \ + tests/test-aws-baremetal-x86.sh \ ++ tests/test-aws-kvm-arm.sh \ + tests/test-aws-kvm-x86.sh \ + tests/test-aws-xen-x86.sh \ + tests/test-baremetal.sh \ +diff --git a/tests/aws-kvm-arm/proc/cpuinfo b/tests/aws-kvm-arm/proc/cpuinfo +new file mode 100644 +index 0000000..bc5a5bb +--- /dev/null ++++ b/tests/aws-kvm-arm/proc/cpuinfo +@@ -0,0 +1,9 @@ ++processor : 0 ++BogoMIPS : 166.66 ++Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid ++CPU implementer : 0x41 ++CPU architecture: 8 ++CPU variant : 0x0 ++CPU part : 0xd08 ++CPU revision : 3 ++ +diff --git a/tests/aws-kvm-arm/proc/self/status b/tests/aws-kvm-arm/proc/self/status +new file mode 100644 +index 0000000..121a8cc +--- /dev/null ++++ b/tests/aws-kvm-arm/proc/self/status +@@ -0,0 +1,54 @@ ++Name: cat ++Umask: 0022 ++State: R (running) ++Tgid: 17874 ++Ngid: 0 ++Pid: 17874 ++PPid: 9992 ++TracerPid: 0 ++Uid: 0 0 0 0 ++Gid: 0 0 0 0 ++FDSize: 256 ++Groups: 0 ++NStgid: 17874 ++NSpid: 17874 ++NSpgid: 17874 ++NSsid: 9992 ++VmPeak: 109760 kB ++VmSize: 109760 kB ++VmLck: 0 kB ++VmPin: 0 kB ++VmHWM: 832 kB ++VmRSS: 832 kB ++RssAnon: 448 kB ++RssFile: 384 kB ++RssShmem: 0 kB ++VmData: 384 kB ++VmStk: 192 kB ++VmExe: 64 kB ++VmLib: 1664 kB ++VmPTE: 192 kB ++VmPMD: 128 kB ++VmSwap: 0 kB ++HugetlbPages: 0 kB ++Threads: 1 ++SigQ: 0/1470 ++SigPnd: 0000000000000000 ++ShdPnd: 0000000000000000 ++SigBlk: 0000000000000000 ++SigIgn: 0000000000000000 ++SigCgt: 0000000000000000 ++CapInh: 0000000000000000 ++CapPrm: 0000003fffffffff ++CapEff: 0000003fffffffff ++CapBnd: 0000003fffffffff ++CapAmb: 0000000000000000 ++NoNewPrivs: 0 ++Seccomp: 0 ++Speculation Store Bypass: unknown ++Cpus_allowed: 1 ++Cpus_allowed_list: 0 ++Mems_allowed: 1 ++Mems_allowed_list: 0 ++voluntary_ctxt_switches: 0 ++nonvoluntary_ctxt_switches: 0 +diff --git a/tests/aws-kvm-arm/sbin/dmidecode b/tests/aws-kvm-arm/sbin/dmidecode +new file mode 100755 +index 0000000..d126758 +--- /dev/null ++++ b/tests/aws-kvm-arm/sbin/dmidecode +@@ -0,0 +1,68 @@ ++#!/bin/sh - ++cat <<'EOF' ++# dmidecode 3.1 ++Getting SMBIOS data from sysfs. ++SMBIOS 2.7 present. ++5 structures occupying 233 bytes. ++Table at 0x7F780000. ++ ++Handle 0x0000, DMI type 0, 24 bytes ++BIOS Information ++ Vendor: Amazon EC2 ++ Version: 1.0 ++ Release Date: 12/1/2018 ++ Address: 0xF0000 ++ Runtime Size: 64 kB ++ ROM Size: 64 kB ++ Characteristics: ++ PCI is supported ++ EDD is supported ++ ACPI is supported ++ System is a virtual machine ++ BIOS Revision: 1.0 ++ ++Handle 0x0001, DMI type 1, 27 bytes ++System Information ++ Manufacturer: Amazon EC2 ++ Product Name: a1.medium ++ Version: Not Specified ++ Serial Number: ec2ce86a-12c2-9388-d9b0-8dc833cba752 ++ UUID: ec2ce86a-12c2-9388-d9b0-8dc833cba752 ++ Wake-up Type: Power Switch ++ SKU Number: Not Specified ++ Family: Not Specified ++ ++Handle 0x0002, DMI type 2, 15 bytes ++Base Board Information ++ Manufacturer: Amazon EC2 ++ Product Name: Not Specified ++ Version: Not Specified ++ Serial Number: Not Specified ++ Asset Tag: i-01c1b85d3dcc02ed7 ++ Features: None ++ Location In Chassis: Not Specified ++ Chassis Handle: 0x0003 ++ Type: Other ++ Contained Object Handles: 0 ++ ++Handle 0x0003, DMI type 3, 21 bytes ++Chassis Information ++ Manufacturer: Amazon EC2 ++ Type: Other ++ Lock: Not Present ++ Version: Not Specified ++ Serial Number: Not Specified ++ Asset Tag: Amazon EC2 ++ Boot-up State: Safe ++ Power Supply State: Safe ++ Thermal State: Safe ++ Security Status: None ++ OEM Information: 0x00000000 ++ Height: Unspecified ++ Number Of Power Cords: 1 ++ Contained Elements: 0 ++ ++Handle 0xFEFF, DMI type 127, 4 bytes ++End Of Table ++ ++EOF +diff --git a/tests/aws-kvm-arm/sbin/uname b/tests/aws-kvm-arm/sbin/uname +new file mode 100755 +index 0000000..bd33a2d +--- /dev/null ++++ b/tests/aws-kvm-arm/sbin/uname +@@ -0,0 +1,2 @@ ++#!/bin/sh - ++echo aarch64 +diff --git a/tests/aws-kvm-arm/sbin/virt-what-cpuid-helper b/tests/aws-kvm-arm/sbin/virt-what-cpuid-helper +new file mode 100755 +index 0000000..4475399 +--- /dev/null ++++ b/tests/aws-kvm-arm/sbin/virt-what-cpuid-helper +@@ -0,0 +1,2 @@ ++#!/bin/sh - ++# prints nothing but exits successfully +diff --git a/tests/test-aws-kvm-arm.sh b/tests/test-aws-kvm-arm.sh +new file mode 100755 +index 0000000..8875421 +--- /dev/null ++++ b/tests/test-aws-kvm-arm.sh +@@ -0,0 +1,36 @@ ++# Test for AWS. ++# Copyright (C) 2018 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++root=tests/aws-kvm-arm ++ ++output="$(./virt-what --test-root=$root 2>&1)" ++# XXX At the moment KVM cannot be detected on this platform. ++# We hope to fix that, but for now the only fact printed is "aws". ++expected="aws" ++ ++if [ "$output" != "$expected" ]; then ++ echo "$0: test failed because output did not match expected" ++ echo "Expected output was:" ++ echo "----------------------------------------" ++ echo "$expected" ++ echo "----------------------------------------" ++ echo "But the actual output of the program was:" ++ echo "----------------------------------------" ++ echo "$output" ++ echo "----------------------------------------" ++ exit 1 ++fi +-- +2.23.0 + diff --git a/SOURCES/0014-build-Remove-files-on-make-clean.patch b/SOURCES/0014-build-Remove-files-on-make-clean.patch new file mode 100644 index 0000000..52e88b8 --- /dev/null +++ b/SOURCES/0014-build-Remove-files-on-make-clean.patch @@ -0,0 +1,25 @@ +From 56427ce169d5a6dc46ed6c6555ee3f7c4e0843d6 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 3 Oct 2019 09:08:19 +0100 +Subject: [PATCH 14/21] build: Remove *~ files on make clean. + +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 67502fc..48fd518 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -15,7 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-CLEANFILES = virt-what ++CLEANFILES = virt-what *~ + + AM_CPPFLAGS = -Wall + +-- +2.23.0 + diff --git a/SOURCES/0015-Arrange-tests-in-subdirectories.patch b/SOURCES/0015-Arrange-tests-in-subdirectories.patch new file mode 100644 index 0000000..cac7f88 --- /dev/null +++ b/SOURCES/0015-Arrange-tests-in-subdirectories.patch @@ -0,0 +1,2384 @@ +From e3eeddbc857a5647135c42c97be75198929a8ce1 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 3 Oct 2019 09:53:49 +0100 +Subject: [PATCH 15/21] Arrange tests in subdirectories. + +This simplifies and isolates each test. +--- + .gitignore | 6 +- + Makefile.am | 261 +----------------- + configure.ac | 77 +++++- + tests/Makefile.am | 20 ++ + tests/aws-baremetal-x86/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/aws-kvm-arm/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/aws-kvm-x86/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/aws-xen-x86/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/baremetal/Makefile.am | 28 ++ + .../{test-baremetal.sh => baremetal/test.sh} | 4 +- + tests/bhyve/Makefile.am | 27 ++ + tests/{test-bhyve.sh => bhyve/test.sh} | 4 +- + tests/docker/Makefile.am | 29 ++ + tests/{test-docker.sh => docker/test.sh} | 4 +- + tests/esx4.1/Makefile.am | 28 ++ + tests/{test-esx4.1.sh => esx4.1/test.sh} | 4 +- + tests/hyperv/Makefile.am | 28 ++ + tests/{test-hyperv.sh => hyperv/test.sh} | 4 +- + tests/kvm-explicit-cpu/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/kvm/Makefile.am | 28 ++ + tests/{test-kvm.sh => kvm/test.sh} | 4 +- + tests/ldoms/Makefile.am | 28 ++ + tests/{test-ldoms.sh => ldoms/test.sh} | 4 +- + tests/linux-vserver/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/lkvm-arm/Makefile.am | 29 ++ + tests/{test-lkvm-arm.sh => lkvm-arm/test.sh} | 4 +- + tests/lkvm/Makefile.am | 28 ++ + tests/{test-lkvm.sh => lkvm/test.sh} | 4 +- + tests/lx86/Makefile.am | 28 ++ + tests/{test-lx86.sh => lx86/test.sh} | 4 +- + tests/lxc/Makefile.am | 29 ++ + tests/{test-lxc.sh => lxc/test.sh} | 4 +- + tests/parallels-desktop/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/ppc64-baremetal/Makefile.am | 27 ++ + .../test.sh} | 4 +- + tests/ppc64-kvm/Makefile.am | 28 ++ + .../{test-ppc64-kvm.sh => ppc64-kvm/test.sh} | 4 +- + tests/ppc64-lpar-dedicated/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/ppc64-lpar-shared/Makefile.am | 29 ++ + .../test.sh} | 4 +- + tests/qemu-arm/Makefile.am | 29 ++ + tests/{test-qemu-arm.sh => qemu-arm/test.sh} | 4 +- + tests/qemu-smbios-kvm/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/qemu-smbios/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/qemu/Makefile.am | 28 ++ + tests/{test-qemu.sh => qemu/test.sh} | 4 +- + tests/rhel5-xen-dom0/Makefile.am | 48 ++++ + .../test.sh} | 4 +- + tests/rhel5-xen-domU-hvm-ia64/Makefile.am | 33 +++ + .../test.sh} | 4 +- + tests/rhel5-xen-domU-hvm/Makefile.am | 28 ++ + .../test.sh} | 4 +- + tests/rhel5-xen-domU-pv/Makefile.am | 46 +++ + .../test.sh} | 4 +- + tests/rhev/Makefile.am | 28 ++ + tests/{test-rhev.sh => rhev/test.sh} | 4 +- + tests/vmm/Makefile.am | 27 ++ + tests/{test-vmm.sh => vmm/test.sh} | 4 +- + tests/xen-arm/Makefile.am | 29 ++ + tests/{test-xen-arm.sh => xen-arm/test.sh} | 4 +- + tests/zvm/Makefile.am | 29 ++ + tests/{test-zvm.sh => zvm/test.sh} | 4 +- + 72 files changed, 1138 insertions(+), 361 deletions(-) + create mode 100644 tests/Makefile.am + create mode 100644 tests/aws-baremetal-x86/Makefile.am + rename tests/{test-aws-baremetal-x86.sh => aws-baremetal-x86/test.sh} (93%) + create mode 100644 tests/aws-kvm-arm/Makefile.am + rename tests/{test-aws-kvm-arm.sh => aws-kvm-arm/test.sh} (94%) + create mode 100644 tests/aws-kvm-x86/Makefile.am + rename tests/{test-aws-kvm-x86.sh => aws-kvm-x86/test.sh} (94%) + create mode 100644 tests/aws-xen-x86/Makefile.am + rename tests/{test-aws-xen-x86.sh => aws-xen-x86/test.sh} (94%) + create mode 100644 tests/baremetal/Makefile.am + rename tests/{test-baremetal.sh => baremetal/test.sh} (94%) + create mode 100644 tests/bhyve/Makefile.am + rename tests/{test-bhyve.sh => bhyve/test.sh} (94%) + create mode 100644 tests/docker/Makefile.am + rename tests/{test-docker.sh => docker/test.sh} (94%) + create mode 100644 tests/esx4.1/Makefile.am + rename tests/{test-esx4.1.sh => esx4.1/test.sh} (94%) + create mode 100644 tests/hyperv/Makefile.am + rename tests/{test-hyperv.sh => hyperv/test.sh} (94%) + create mode 100644 tests/kvm-explicit-cpu/Makefile.am + rename tests/{test-kvm-explicit-cpu.sh => kvm-explicit-cpu/test.sh} (94%) + create mode 100644 tests/kvm/Makefile.am + rename tests/{test-kvm.sh => kvm/test.sh} (95%) + create mode 100644 tests/ldoms/Makefile.am + rename tests/{test-ldoms.sh => ldoms/test.sh} (94%) + create mode 100644 tests/linux-vserver/Makefile.am + rename tests/{test-linux-vserver.sh => linux-vserver/test.sh} (94%) + create mode 100644 tests/lkvm-arm/Makefile.am + rename tests/{test-lkvm-arm.sh => lkvm-arm/test.sh} (94%) + create mode 100644 tests/lkvm/Makefile.am + rename tests/{test-lkvm.sh => lkvm/test.sh} (94%) + create mode 100644 tests/lx86/Makefile.am + rename tests/{test-lx86.sh => lx86/test.sh} (95%) + create mode 100644 tests/lxc/Makefile.am + rename tests/{test-lxc.sh => lxc/test.sh} (95%) + create mode 100644 tests/parallels-desktop/Makefile.am + rename tests/{test-parallels-desktop.sh => parallels-desktop/test.sh} (94%) + create mode 100644 tests/ppc64-baremetal/Makefile.am + rename tests/{test-ppc64-baremetal.sh => ppc64-baremetal/test.sh} (94%) + create mode 100644 tests/ppc64-kvm/Makefile.am + rename tests/{test-ppc64-kvm.sh => ppc64-kvm/test.sh} (94%) + create mode 100644 tests/ppc64-lpar-dedicated/Makefile.am + rename tests/{test-ppc64-lpar-dedicated.sh => ppc64-lpar-dedicated/test.sh} (94%) + create mode 100644 tests/ppc64-lpar-shared/Makefile.am + rename tests/{test-ppc64-lpar-shared.sh => ppc64-lpar-shared/test.sh} (94%) + create mode 100644 tests/qemu-arm/Makefile.am + rename tests/{test-qemu-arm.sh => qemu-arm/test.sh} (94%) + create mode 100644 tests/qemu-smbios-kvm/Makefile.am + rename tests/{test-qemu-smbios-kvm.sh => qemu-smbios-kvm/test.sh} (94%) + create mode 100644 tests/qemu-smbios/Makefile.am + rename tests/{test-qemu-smbios.sh => qemu-smbios/test.sh} (94%) + create mode 100644 tests/qemu/Makefile.am + rename tests/{test-qemu.sh => qemu/test.sh} (94%) + create mode 100644 tests/rhel5-xen-dom0/Makefile.am + rename tests/{test-rhel5-xen-dom0.sh => rhel5-xen-dom0/test.sh} (94%) + create mode 100644 tests/rhel5-xen-domU-hvm-ia64/Makefile.am + rename tests/{test-rhel5-xen-domU-hvm-ia64.sh => rhel5-xen-domU-hvm-ia64/test.sh} (93%) + create mode 100644 tests/rhel5-xen-domU-hvm/Makefile.am + rename tests/{test-rhel5-xen-domU-hvm.sh => rhel5-xen-domU-hvm/test.sh} (94%) + create mode 100644 tests/rhel5-xen-domU-pv/Makefile.am + rename tests/{test-rhel5-xen-domU-pv.sh => rhel5-xen-domU-pv/test.sh} (94%) + create mode 100644 tests/rhev/Makefile.am + rename tests/{test-rhev.sh => rhev/test.sh} (94%) + create mode 100644 tests/vmm/Makefile.am + rename tests/{test-vmm.sh => vmm/test.sh} (95%) + create mode 100644 tests/xen-arm/Makefile.am + rename tests/{test-xen-arm.sh => xen-arm/test.sh} (94%) + create mode 100644 tests/zvm/Makefile.am + rename tests/{test-zvm.sh => zvm/test.sh} (95%) + +diff --git a/.gitignore b/.gitignore +index f565f34..4833fd6 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -1,12 +1,14 @@ + *~ ++*.bak + *.log + *.trs + *.o + ++Makefile ++Makefile.in ++ + /virt-what-*.tar.gz + /.deps +-/Makefile +-/Makefile.in + /aclocal.m4 + /autom4te.cache + /compile +diff --git a/Makefile.am b/Makefile.am +index 48fd518..b62738f 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -15,9 +15,13 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + ++AM_CPPFLAGS = -Wall ++ + CLEANFILES = virt-what *~ + +-AM_CPPFLAGS = -Wall ++EXTRA_DIST = virt-what.in virt-what.pod ++ ++SUBDIRS = . tests + + sbin_SCRIPTS = virt-what + libexec_PROGRAMS = virt-what-cpuid-helper +@@ -37,258 +41,3 @@ virt-what.txt: virt-what.pod + pod2text $? > $@ + + endif +- +-TESTS = \ +- tests/test-aws-baremetal-x86.sh \ +- tests/test-aws-kvm-arm.sh \ +- tests/test-aws-kvm-x86.sh \ +- tests/test-aws-xen-x86.sh \ +- tests/test-baremetal.sh \ +- tests/test-bhyve.sh \ +- tests/test-docker.sh \ +- tests/test-esx4.1.sh \ +- tests/test-hyperv.sh \ +- tests/test-kvm.sh \ +- tests/test-kvm-explicit-cpu.sh \ +- tests/test-linux-vserver.sh \ +- tests/test-ldoms.sh \ +- tests/test-lkvm.sh \ +- tests/test-lkvm-arm.sh \ +- tests/test-lxc.sh \ +- tests/test-lx86.sh \ +- tests/test-parallels-desktop.sh \ +- tests/test-ppc64-baremetal.sh \ +- tests/test-ppc64-kvm.sh \ +- tests/test-ppc64-lpar-dedicated.sh \ +- tests/test-ppc64-lpar-shared.sh \ +- tests/test-qemu.sh \ +- tests/test-qemu-arm.sh \ +- tests/test-qemu-smbios.sh \ +- tests/test-qemu-smbios-kvm.sh \ +- tests/test-rhel5-xen-dom0.sh \ +- tests/test-rhel5-xen-domU-hvm.sh \ +- tests/test-rhel5-xen-domU-hvm-ia64.sh \ +- tests/test-rhel5-xen-domU-pv.sh \ +- tests/test-rhev.sh \ +- tests/test-vmm.sh \ +- tests/test-xen-arm.sh \ +- tests/test-zvm.sh +- +-EXTRA_DIST = \ +- virt-what.in \ +- virt-what.pod \ +- tests/aws-baremetal-x86/proc/cpuinfo \ +- tests/aws-baremetal-x86/proc/self/status \ +- tests/aws-baremetal-x86/sbin/dmidecode \ +- tests/aws-baremetal-x86/sbin/uname \ +- tests/aws-baremetal-x86/sbin/virt-what-cpuid-helper \ +- tests/aws-kvm-x86/proc/cpuinfo \ +- tests/aws-kvm-x86/proc/self/status \ +- tests/aws-kvm-x86/sbin/dmidecode \ +- tests/aws-kvm-x86/sbin/uname \ +- tests/aws-kvm-x86/sbin/virt-what-cpuid-helper \ +- tests/aws-xen-x86/proc/cpuinfo \ +- tests/aws-xen-x86/proc/self/status \ +- tests/aws-xen-x86/sbin/dmidecode \ +- tests/aws-xen-x86/sbin/uname \ +- tests/aws-xen-x86/sbin/virt-what-cpuid-helper \ +- tests/baremetal/proc/cpuinfo \ +- tests/baremetal/proc/self/status \ +- tests/baremetal/sbin/dmidecode \ +- tests/baremetal/sbin/uname \ +- tests/baremetal/sbin/virt-what-cpuid-helper \ +- tests/bhyve/proc/cpuinfo \ +- tests/bhyve/sbin/dmidecode \ +- tests/bhyve/sbin/uname \ +- tests/bhyve/sbin/virt-what-cpuid-helper \ +- tests/docker/.dockerinit \ +- tests/docker/proc/cpuinfo \ +- tests/docker/proc/self/status \ +- tests/docker/sbin/dmidecode \ +- tests/docker/sbin/uname \ +- tests/docker/sbin/virt-what-cpuid-helper \ +- tests/esx4.1/proc/cpuinfo \ +- tests/esx4.1/proc/self/status \ +- tests/esx4.1/sbin/dmidecode \ +- tests/esx4.1/sbin/uname \ +- tests/esx4.1/sbin/virt-what-cpuid-helper \ +- tests/hyperv/proc/cpuinfo \ +- tests/hyperv/proc/self/status \ +- tests/hyperv/sbin/dmidecode \ +- tests/hyperv/sbin/uname \ +- tests/hyperv/sbin/virt-what-cpuid-helper \ +- tests/kvm/proc/cpuinfo \ +- tests/kvm/proc/self/status \ +- tests/kvm/sbin/dmidecode \ +- tests/kvm/sbin/uname \ +- tests/kvm/sbin/virt-what-cpuid-helper \ +- tests/kvm-explicit-cpu/proc/cpuinfo \ +- tests/kvm-explicit-cpu/proc/self/status \ +- tests/kvm-explicit-cpu/sbin/dmidecode \ +- tests/kvm-explicit-cpu/sbin/uname \ +- tests/kvm-explicit-cpu/sbin/virt-what-cpuid-helper \ +- tests/ldoms/dev/mdesc \ +- tests/ldoms/proc/cpuinfo \ +- tests/ldoms/sbin/uname \ +- tests/ldoms/sbin/virt-what-cpuid-helper \ +- tests/linux-vserver/proc/cpuinfo \ +- tests/linux-vserver/proc/self/status \ +- tests/linux-vserver/sbin/dmidecode \ +- tests/linux-vserver/sbin/uname \ +- tests/linux-vserver/sbin/virt-what-cpuid-helper \ +- tests/lkvm/proc/cpuinfo \ +- tests/lkvm/proc/self/status \ +- tests/lkvm/sbin/dmidecode \ +- tests/lkvm/sbin/uname \ +- tests/lkvm/sbin/virt-what-cpuid-helper \ +- tests/lkvm-arm/proc/cpuinfo \ +- tests/lkvm-arm/proc/device-tree/compatible \ +- tests/lkvm-arm/proc/self/status \ +- tests/lkvm-arm/sbin/dmidecode \ +- tests/lkvm-arm/sbin/uname \ +- tests/lkvm-arm/sbin/virt-what-cpuid-helper \ +- tests/lxc/proc/1/environ \ +- tests/lxc/proc/cpuinfo \ +- tests/lxc/proc/self/status \ +- tests/lxc/sbin/dmidecode \ +- tests/lxc/sbin/uname \ +- tests/lxc/sbin/virt-what-cpuid-helper \ +- tests/lx86/proc/cpuinfo \ +- tests/lx86/proc/self/status \ +- tests/lx86/sbin/dmidecode \ +- tests/lx86/sbin/uname \ +- tests/lx86/sbin/virt-what-cpuid-helper \ +- tests/parallels-desktop/proc/cpuinfo \ +- tests/parallels-desktop/proc/self/status \ +- tests/parallels-desktop/sbin/dmidecode \ +- tests/parallels-desktop/sbin/uname \ +- tests/parallels-desktop/sbin/virt-what-cpuid-helper \ +- tests/ppc64-baremetal/proc/cpuinfo \ +- tests/ppc64-baremetal/sbin/dmidecode \ +- tests/ppc64-baremetal/sbin/uname \ +- tests/ppc64-baremetal/sbin/virt-what-cpuid-helper \ +- tests/ppc64-kvm/proc/cpuinfo \ +- tests/ppc64-kvm/proc/self/status \ +- tests/ppc64-kvm/sbin/dmidecode \ +- tests/ppc64-kvm/sbin/uname \ +- tests/ppc64-kvm/sbin/virt-what-cpuid-helper \ +- tests/ppc64-lpar-dedicated/proc/cpuinfo \ +- tests/ppc64-lpar-dedicated/proc/ppc64/lparcfg \ +- tests/ppc64-lpar-dedicated/sbin/dmidecode \ +- tests/ppc64-lpar-dedicated/sbin/uname \ +- tests/ppc64-lpar-dedicated/sbin/virt-what-cpuid-helper \ +- tests/ppc64-lpar-shared/sbin/dmidecode \ +- tests/ppc64-lpar-shared/sbin/uname \ +- tests/ppc64-lpar-shared/sbin/virt-what-cpuid-helper \ +- tests/ppc64-lpar-shared/proc/cpuinfo \ +- tests/ppc64-lpar-shared/proc/self/status \ +- tests/ppc64-lpar-shared/proc/ppc64/lparcfg \ +- tests/ppc64-lpar-shared/sbin/dmidecode \ +- tests/ppc64-lpar-shared/sbin/uname \ +- tests/ppc64-lpar-shared/sbin/virt-what-cpuid-helper \ +- tests/qemu/proc/cpuinfo \ +- tests/qemu/proc/self/status \ +- tests/qemu/sbin/dmidecode \ +- tests/qemu/sbin/uname \ +- tests/qemu/sbin/virt-what-cpuid-helper \ +- tests/qemu-arm/proc/cpuinfo \ +- tests/qemu-arm/proc/device-tree/fw-cfg@9020000/compatible \ +- tests/qemu-arm/proc/self/status \ +- tests/qemu-arm/sbin/dmidecode \ +- tests/qemu-arm/sbin/uname \ +- tests/qemu-arm/sbin/virt-what-cpuid-helper \ +- tests/qemu-smbios/proc/cpuinfo \ +- tests/qemu-smbios/proc/self/status \ +- tests/qemu-smbios/sbin/dmidecode \ +- tests/qemu-smbios/sbin/uname \ +- tests/qemu-smbios/sbin/virt-what-cpuid-helper \ +- tests/qemu-smbios-kvm/proc/cpuinfo \ +- tests/qemu-smbios-kvm/proc/self/status \ +- tests/qemu-smbios-kvm/sbin/dmidecode \ +- tests/qemu-smbios-kvm/sbin/uname \ +- tests/qemu-smbios-kvm/sbin/virt-what-cpuid-helper \ +- tests/rhel5-xen-dom0/proc/cpuinfo \ +- tests/rhel5-xen-dom0/proc/self/status \ +- tests/rhel5-xen-dom0/proc/xen/balloon \ +- tests/rhel5-xen-dom0/proc/xen/capabilities \ +- tests/rhel5-xen-dom0/proc/xen/privcmd \ +- tests/rhel5-xen-dom0/proc/xen/xenbus \ +- tests/rhel5-xen-dom0/proc/xen/xsd_kva \ +- tests/rhel5-xen-dom0/proc/xen/xsd_port \ +- tests/rhel5-xen-dom0/sbin/dmidecode \ +- tests/rhel5-xen-dom0/sbin/uname \ +- tests/rhel5-xen-dom0/sbin/virt-what-cpuid-helper \ +- tests/rhel5-xen-dom0/sys/hypervisor/properties/pagesize \ +- tests/rhel5-xen-dom0/sys/hypervisor/properties/changeset \ +- tests/rhel5-xen-dom0/sys/hypervisor/properties/virtual_start \ +- tests/rhel5-xen-dom0/sys/hypervisor/properties/capabilities \ +- tests/rhel5-xen-dom0/sys/hypervisor/properties/writable_pt \ +- tests/rhel5-xen-dom0/sys/hypervisor/type \ +- tests/rhel5-xen-dom0/sys/hypervisor/vmcoreinfo \ +- tests/rhel5-xen-dom0/sys/hypervisor/version/minor \ +- tests/rhel5-xen-dom0/sys/hypervisor/version/major \ +- tests/rhel5-xen-dom0/sys/hypervisor/version/extra \ +- tests/rhel5-xen-dom0/sys/hypervisor/compilation/compiler \ +- tests/rhel5-xen-dom0/sys/hypervisor/compilation/compiled_by \ +- tests/rhel5-xen-dom0/sys/hypervisor/compilation/compile_date \ +- tests/rhel5-xen-dom0/sys/hypervisor/uuid \ +- tests/rhel5-xen-domU-hvm/proc/cpuinfo \ +- tests/rhel5-xen-domU-hvm/proc/self/status \ +- tests/rhel5-xen-domU-hvm/sbin/dmidecode \ +- tests/rhel5-xen-domU-hvm/sbin/uname \ +- tests/rhel5-xen-domU-hvm/sbin/virt-what-cpuid-helper \ +- tests/rhel5-xen-domU-hvm-ia64/proc/cpuinfo \ +- tests/rhel5-xen-domU-hvm-ia64/proc/self/status \ +- tests/rhel5-xen-domU-hvm-ia64/sbin/dmidecode \ +- tests/rhel5-xen-domU-hvm-ia64/sbin/uname \ +- tests/rhel5-xen-domU-hvm-ia64/sbin/virt-what-cpuid-helper \ +- tests/rhel5-xen-domU-hvm-ia64/sys/bus/xen/drivers/vbd/bind \ +- tests/rhel5-xen-domU-hvm-ia64/sys/bus/xen/drivers/vbd/unbind \ +- tests/rhel5-xen-domU-hvm-ia64/sys/bus/xen/drivers/vif/bind \ +- tests/rhel5-xen-domU-hvm-ia64/sys/bus/xen/drivers/vif/unbind \ +- tests/rhel5-xen-domU-hvm-ia64/sys/bus/xen/drivers_probe \ +- tests/rhel5-xen-domU-pv/proc/cpuinfo \ +- tests/rhel5-xen-domU-pv/proc/self/status \ +- tests/rhel5-xen-domU-pv/proc/xen/balloon \ +- tests/rhel5-xen-domU-pv/proc/xen/capabilities \ +- tests/rhel5-xen-domU-pv/proc/xen/privcmd \ +- tests/rhel5-xen-domU-pv/proc/xen/xenbus \ +- tests/rhel5-xen-domU-pv/sbin/dmidecode \ +- tests/rhel5-xen-domU-pv/sbin/uname \ +- tests/rhel5-xen-domU-pv/sbin/virt-what-cpuid-helper \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/properties/pagesize \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/properties/changeset \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/properties/virtual_start \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/properties/capabilities \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/properties/writable_pt \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/type \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/vmcoreinfo \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/version/minor \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/version/major \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/version/extra \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/compilation/compiler \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/compilation/compiled_by \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/compilation/compile_date \ +- tests/rhel5-xen-domU-pv/sys/hypervisor/uuid \ +- tests/rhev/proc/cpuinfo \ +- tests/rhev/proc/self/status \ +- tests/rhev/sbin/dmidecode \ +- tests/rhev/sbin/uname \ +- tests/rhev/sbin/virt-what-cpuid-helper \ +- tests/vmm/proc/cpuinfo \ +- tests/vmm/sbin/dmidecode \ +- tests/vmm/sbin/uname \ +- tests/vmm/sbin/virt-what-cpuid-helper \ +- tests/xen-arm/proc/cpuinfo \ +- tests/xen-arm/proc/device-tree/hypervisor/compatible \ +- tests/xen-arm/proc/self/status \ +- tests/xen-arm/sbin/dmidecode \ +- tests/xen-arm/sbin/uname \ +- tests/xen-arm/sbin/virt-what-cpuid-helper \ +- tests/zvm/proc/cpuinfo \ +- tests/zvm/proc/self/status \ +- tests/zvm/proc/sysinfo \ +- tests/zvm/sbin/dmidecode \ +- tests/zvm/sbin/uname \ +- tests/zvm/sbin/virt-what-cpuid-helper \ +- $(TESTS) +diff --git a/configure.ac b/configure.ac +index 3f16dba..5e0d9c4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -32,10 +32,85 @@ dnl Architecture we are compiling for. + AC_CANONICAL_HOST + AM_CONDITIONAL([HOST_CPU_IA64], [ test "x$host_cpu" = "xia64" ]) + ++dnl List of tests. ++tests="\ ++ aws-baremetal-x86 \ ++ aws-kvm-arm \ ++ aws-kvm-x86 \ ++ aws-xen-x86 \ ++ baremetal \ ++ bhyve \ ++ docker \ ++ esx4.1 \ ++ hyperv \ ++ kvm \ ++ kvm-explicit-cpu \ ++ ldoms \ ++ linux-vserver \ ++ lkvm \ ++ lkvm-arm \ ++ lx86 \ ++ lxc \ ++ parallels-desktop \ ++ ppc64-baremetal \ ++ ppc64-kvm \ ++ ppc64-lpar-dedicated \ ++ ppc64-lpar-shared \ ++ qemu \ ++ qemu-arm \ ++ qemu-smbios \ ++ qemu-smbios-kvm \ ++ rhel5-xen-dom0 \ ++ rhel5-xen-domU-hvm \ ++ rhel5-xen-domU-hvm-ia64 \ ++ rhel5-xen-domU-pv \ ++ rhev \ ++ vmm \ ++ xen-arm \ ++ zvm \ ++ " ++AC_SUBST([tests]) ++ + dnl Produce output files. + AC_CONFIG_HEADERS([config.h]) + AC_CONFIG_FILES([virt-what],[chmod +x virt-what]) +-AC_CONFIG_FILES([Makefile]) ++AC_CONFIG_FILES([Makefile ++ tests/Makefile ++ tests/aws-baremetal-x86/Makefile ++ tests/aws-kvm-arm/Makefile ++ tests/aws-kvm-x86/Makefile ++ tests/aws-xen-x86/Makefile ++ tests/baremetal/Makefile ++ tests/bhyve/Makefile ++ tests/docker/Makefile ++ tests/esx4.1/Makefile ++ tests/hyperv/Makefile ++ tests/kvm/Makefile ++ tests/kvm-explicit-cpu/Makefile ++ tests/ldoms/Makefile ++ tests/linux-vserver/Makefile ++ tests/lkvm/Makefile ++ tests/lkvm-arm/Makefile ++ tests/lx86/Makefile ++ tests/lxc/Makefile ++ tests/parallels-desktop/Makefile ++ tests/ppc64-baremetal/Makefile ++ tests/ppc64-kvm/Makefile ++ tests/ppc64-lpar-dedicated/Makefile ++ tests/ppc64-lpar-shared/Makefile ++ tests/qemu/Makefile ++ tests/qemu-arm/Makefile ++ tests/qemu-smbios/Makefile ++ tests/qemu-smbios-kvm/Makefile ++ tests/rhel5-xen-dom0/Makefile ++ tests/rhel5-xen-domU-hvm/Makefile ++ tests/rhel5-xen-domU-hvm-ia64/Makefile ++ tests/rhel5-xen-domU-pv/Makefile ++ tests/rhev/Makefile ++ tests/vmm/Makefile ++ tests/xen-arm/Makefile ++ tests/zvm/Makefile ++ ]) + + AC_CHECK_PROG([POD2MAN], [pod2man], [pod2man], [false]) + if test "$POD2MAN" = "false"; then +diff --git a/tests/Makefile.am b/tests/Makefile.am +new file mode 100644 +index 0000000..36bf918 +--- /dev/null ++++ b/tests/Makefile.am +@@ -0,0 +1,20 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++SUBDIRS = $(tests) +diff --git a/tests/aws-baremetal-x86/Makefile.am b/tests/aws-baremetal-x86/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/aws-baremetal-x86/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-aws-baremetal-x86.sh b/tests/aws-baremetal-x86/test.sh +similarity index 93% +rename from tests/test-aws-baremetal-x86.sh +rename to tests/aws-baremetal-x86/test.sh +index d456163..4a1e566 100755 +--- a/tests/test-aws-baremetal-x86.sh ++++ b/tests/aws-baremetal-x86/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/aws-baremetal-x86 +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="aws" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/aws-kvm-arm/Makefile.am b/tests/aws-kvm-arm/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/aws-kvm-arm/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-aws-kvm-arm.sh b/tests/aws-kvm-arm/test.sh +similarity index 94% +rename from tests/test-aws-kvm-arm.sh +rename to tests/aws-kvm-arm/test.sh +index 8875421..5d31995 100755 +--- a/tests/test-aws-kvm-arm.sh ++++ b/tests/aws-kvm-arm/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/aws-kvm-arm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + # XXX At the moment KVM cannot be detected on this platform. + # We hope to fix that, but for now the only fact printed is "aws". + expected="aws" +diff --git a/tests/aws-kvm-x86/Makefile.am b/tests/aws-kvm-x86/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/aws-kvm-x86/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-aws-kvm-x86.sh b/tests/aws-kvm-x86/test.sh +similarity index 94% +rename from tests/test-aws-kvm-x86.sh +rename to tests/aws-kvm-x86/test.sh +index db4c19f..133ef13 100755 +--- a/tests/test-aws-kvm-x86.sh ++++ b/tests/aws-kvm-x86/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/aws-kvm-x86 +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="kvm + aws" + +diff --git a/tests/aws-xen-x86/Makefile.am b/tests/aws-xen-x86/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/aws-xen-x86/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-aws-xen-x86.sh b/tests/aws-xen-x86/test.sh +similarity index 94% +rename from tests/test-aws-xen-x86.sh +rename to tests/aws-xen-x86/test.sh +index 22b7f83..4ed4cde 100755 +--- a/tests/test-aws-xen-x86.sh ++++ b/tests/aws-xen-x86/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/aws-xen-x86 +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="xen + xen-hvm + aws" +diff --git a/tests/baremetal/Makefile.am b/tests/baremetal/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/baremetal/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-baremetal.sh b/tests/baremetal/test.sh +similarity index 94% +rename from tests/test-baremetal.sh +rename to tests/baremetal/test.sh +index 1ca4bcf..d4a0c3f 100755 +--- a/tests/test-baremetal.sh ++++ b/tests/baremetal/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/baremetal +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/bhyve/Makefile.am b/tests/bhyve/Makefile.am +new file mode 100644 +index 0000000..0198c8f +--- /dev/null ++++ b/tests/bhyve/Makefile.am +@@ -0,0 +1,27 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-bhyve.sh b/tests/bhyve/test.sh +similarity index 94% +rename from tests/test-bhyve.sh +rename to tests/bhyve/test.sh +index a66b3b4..81cb9fe 100755 +--- a/tests/test-bhyve.sh ++++ b/tests/bhyve/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/bhyve +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="bhyve" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/docker/Makefile.am b/tests/docker/Makefile.am +new file mode 100644 +index 0000000..e0ea991 +--- /dev/null ++++ b/tests/docker/Makefile.am +@@ -0,0 +1,29 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ .dockerinit \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-docker.sh b/tests/docker/test.sh +similarity index 94% +rename from tests/test-docker.sh +rename to tests/docker/test.sh +index 4187f61..f09ad9f 100755 +--- a/tests/test-docker.sh ++++ b/tests/docker/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/docker +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="docker" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/esx4.1/Makefile.am b/tests/esx4.1/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/esx4.1/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-esx4.1.sh b/tests/esx4.1/test.sh +similarity index 94% +rename from tests/test-esx4.1.sh +rename to tests/esx4.1/test.sh +index 35c4e1d..0306a82 100755 +--- a/tests/test-esx4.1.sh ++++ b/tests/esx4.1/test.sh +@@ -16,9 +16,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/esx4.1 +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="vmware" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/hyperv/Makefile.am b/tests/hyperv/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/hyperv/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-hyperv.sh b/tests/hyperv/test.sh +similarity index 94% +rename from tests/test-hyperv.sh +rename to tests/hyperv/test.sh +index 5015cc5..f84edf9 100755 +--- a/tests/test-hyperv.sh ++++ b/tests/hyperv/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/hyperv +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="hyperv" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/kvm-explicit-cpu/Makefile.am b/tests/kvm-explicit-cpu/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/kvm-explicit-cpu/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-kvm-explicit-cpu.sh b/tests/kvm-explicit-cpu/test.sh +similarity index 94% +rename from tests/test-kvm-explicit-cpu.sh +rename to tests/kvm-explicit-cpu/test.sh +index 7482b83..ba137c0 100755 +--- a/tests/test-kvm-explicit-cpu.sh ++++ b/tests/kvm-explicit-cpu/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/kvm-explicit-cpu +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="kvm" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/kvm/Makefile.am b/tests/kvm/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/kvm/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-kvm.sh b/tests/kvm/test.sh +similarity index 95% +rename from tests/test-kvm.sh +rename to tests/kvm/test.sh +index 035e244..8315213 100755 +--- a/tests/test-kvm.sh ++++ b/tests/kvm/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/kvm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="kvm" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/ldoms/Makefile.am b/tests/ldoms/Makefile.am +new file mode 100644 +index 0000000..45770aa +--- /dev/null ++++ b/tests/ldoms/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ dev/mdesc \ ++ proc/cpuinfo \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-ldoms.sh b/tests/ldoms/test.sh +similarity index 94% +rename from tests/test-ldoms.sh +rename to tests/ldoms/test.sh +index 6ae5aba..d911f08 100755 +--- a/tests/test-ldoms.sh ++++ b/tests/ldoms/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/ldoms +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="ldoms + ldoms-guest" + +diff --git a/tests/linux-vserver/Makefile.am b/tests/linux-vserver/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/linux-vserver/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-linux-vserver.sh b/tests/linux-vserver/test.sh +similarity index 94% +rename from tests/test-linux-vserver.sh +rename to tests/linux-vserver/test.sh +index 7988f81..008e291 100755 +--- a/tests/test-linux-vserver.sh ++++ b/tests/linux-vserver/test.sh +@@ -16,9 +16,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/linux-vserver +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="linux_vserver + linux_vserver-guest" + +diff --git a/tests/lkvm-arm/Makefile.am b/tests/lkvm-arm/Makefile.am +new file mode 100644 +index 0000000..5014fd4 +--- /dev/null ++++ b/tests/lkvm-arm/Makefile.am +@@ -0,0 +1,29 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/device-tree/compatible \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-lkvm-arm.sh b/tests/lkvm-arm/test.sh +similarity index 94% +rename from tests/test-lkvm-arm.sh +rename to tests/lkvm-arm/test.sh +index bed50ad..251db04 100755 +--- a/tests/test-lkvm-arm.sh ++++ b/tests/lkvm-arm/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/lkvm-arm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="lkvm" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/lkvm/Makefile.am b/tests/lkvm/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/lkvm/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-lkvm.sh b/tests/lkvm/test.sh +similarity index 94% +rename from tests/test-lkvm.sh +rename to tests/lkvm/test.sh +index 6eb326c..79850e0 100755 +--- a/tests/test-lkvm.sh ++++ b/tests/lkvm/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/lkvm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="lkvm" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/lx86/Makefile.am b/tests/lx86/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/lx86/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-lx86.sh b/tests/lx86/test.sh +similarity index 95% +rename from tests/test-lx86.sh +rename to tests/lx86/test.sh +index 69d08a7..b3b1ccb 100755 +--- a/tests/test-lx86.sh ++++ b/tests/lx86/test.sh +@@ -16,9 +16,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/lx86 +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="powervm_lx86" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/lxc/Makefile.am b/tests/lxc/Makefile.am +new file mode 100644 +index 0000000..59a2d70 +--- /dev/null ++++ b/tests/lxc/Makefile.am +@@ -0,0 +1,29 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/1/environ \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-lxc.sh b/tests/lxc/test.sh +similarity index 95% +rename from tests/test-lxc.sh +rename to tests/lxc/test.sh +index 47a5f2b..c619de9 100755 +--- a/tests/test-lxc.sh ++++ b/tests/lxc/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/lxc +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="lxc" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/parallels-desktop/Makefile.am b/tests/parallels-desktop/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/parallels-desktop/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-parallels-desktop.sh b/tests/parallels-desktop/test.sh +similarity index 94% +rename from tests/test-parallels-desktop.sh +rename to tests/parallels-desktop/test.sh +index 20701fe..5585fec 100755 +--- a/tests/test-parallels-desktop.sh ++++ b/tests/parallels-desktop/test.sh +@@ -16,9 +16,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/parallels-desktop +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="parallels" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/ppc64-baremetal/Makefile.am b/tests/ppc64-baremetal/Makefile.am +new file mode 100644 +index 0000000..0198c8f +--- /dev/null ++++ b/tests/ppc64-baremetal/Makefile.am +@@ -0,0 +1,27 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-ppc64-baremetal.sh b/tests/ppc64-baremetal/test.sh +similarity index 94% +rename from tests/test-ppc64-baremetal.sh +rename to tests/ppc64-baremetal/test.sh +index 9ca3cee..6687ce3 100755 +--- a/tests/test-ppc64-baremetal.sh ++++ b/tests/ppc64-baremetal/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/ppc64-baremetal +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/ppc64-kvm/Makefile.am b/tests/ppc64-kvm/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/ppc64-kvm/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-ppc64-kvm.sh b/tests/ppc64-kvm/test.sh +similarity index 94% +rename from tests/test-ppc64-kvm.sh +rename to tests/ppc64-kvm/test.sh +index c691c96..c0ece85 100755 +--- a/tests/test-ppc64-kvm.sh ++++ b/tests/ppc64-kvm/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/ppc64-kvm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="ibm_power-kvm" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/ppc64-lpar-dedicated/Makefile.am b/tests/ppc64-lpar-dedicated/Makefile.am +new file mode 100644 +index 0000000..bfbe474 +--- /dev/null ++++ b/tests/ppc64-lpar-dedicated/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/ppc64/lparcfg \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-ppc64-lpar-dedicated.sh b/tests/ppc64-lpar-dedicated/test.sh +similarity index 94% +rename from tests/test-ppc64-lpar-dedicated.sh +rename to tests/ppc64-lpar-dedicated/test.sh +index 0316ea2..c51eafc 100755 +--- a/tests/test-ppc64-lpar-dedicated.sh ++++ b/tests/ppc64-lpar-dedicated/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/ppc64-lpar-dedicated +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="ibm_power-lpar_dedicated" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/ppc64-lpar-shared/Makefile.am b/tests/ppc64-lpar-shared/Makefile.am +new file mode 100644 +index 0000000..8f1f63f +--- /dev/null ++++ b/tests/ppc64-lpar-shared/Makefile.am +@@ -0,0 +1,29 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ proc/ppc64/lparcfg \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-ppc64-lpar-shared.sh b/tests/ppc64-lpar-shared/test.sh +similarity index 94% +rename from tests/test-ppc64-lpar-shared.sh +rename to tests/ppc64-lpar-shared/test.sh +index bbc974a..cfa564e 100755 +--- a/tests/test-ppc64-lpar-shared.sh ++++ b/tests/ppc64-lpar-shared/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/ppc64-lpar-shared +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="ibm_power-lpar_shared" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/qemu-arm/Makefile.am b/tests/qemu-arm/Makefile.am +new file mode 100644 +index 0000000..4d8b02d +--- /dev/null ++++ b/tests/qemu-arm/Makefile.am +@@ -0,0 +1,29 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/device-tree/fw-cfg@9020000/compatible \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-qemu-arm.sh b/tests/qemu-arm/test.sh +similarity index 94% +rename from tests/test-qemu-arm.sh +rename to tests/qemu-arm/test.sh +index 58455c8..a6d487e 100755 +--- a/tests/test-qemu-arm.sh ++++ b/tests/qemu-arm/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/qemu-arm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="qemu" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/qemu-smbios-kvm/Makefile.am b/tests/qemu-smbios-kvm/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/qemu-smbios-kvm/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-qemu-smbios-kvm.sh b/tests/qemu-smbios-kvm/test.sh +similarity index 94% +rename from tests/test-qemu-smbios-kvm.sh +rename to tests/qemu-smbios-kvm/test.sh +index f4d8e38..04e291e 100755 +--- a/tests/test-qemu-smbios-kvm.sh ++++ b/tests/qemu-smbios-kvm/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/qemu-smbios-kvm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="kvm" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/qemu-smbios/Makefile.am b/tests/qemu-smbios/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/qemu-smbios/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-qemu-smbios.sh b/tests/qemu-smbios/test.sh +similarity index 94% +rename from tests/test-qemu-smbios.sh +rename to tests/qemu-smbios/test.sh +index 114470a..a6d487e 100755 +--- a/tests/test-qemu-smbios.sh ++++ b/tests/qemu-smbios/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/qemu-smbios +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="qemu" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/qemu/Makefile.am b/tests/qemu/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/qemu/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-qemu.sh b/tests/qemu/test.sh +similarity index 94% +rename from tests/test-qemu.sh +rename to tests/qemu/test.sh +index 284fe41..6691307 100755 +--- a/tests/test-qemu.sh ++++ b/tests/qemu/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/qemu +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="qemu" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/rhel5-xen-dom0/Makefile.am b/tests/rhel5-xen-dom0/Makefile.am +new file mode 100644 +index 0000000..12e9835 +--- /dev/null ++++ b/tests/rhel5-xen-dom0/Makefile.am +@@ -0,0 +1,48 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ proc/xen/balloon \ ++ proc/xen/capabilities \ ++ proc/xen/privcmd \ ++ proc/xen/xenbus \ ++ proc/xen/xsd_kva \ ++ proc/xen/xsd_port \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper \ ++ sys/hypervisor/properties/pagesize \ ++ sys/hypervisor/properties/changeset \ ++ sys/hypervisor/properties/virtual_start \ ++ sys/hypervisor/properties/capabilities \ ++ sys/hypervisor/properties/writable_pt \ ++ sys/hypervisor/type \ ++ sys/hypervisor/vmcoreinfo \ ++ sys/hypervisor/version/minor \ ++ sys/hypervisor/version/major \ ++ sys/hypervisor/version/extra \ ++ sys/hypervisor/compilation/compiler \ ++ sys/hypervisor/compilation/compiled_by \ ++ sys/hypervisor/compilation/compile_date \ ++ sys/hypervisor/uuid +diff --git a/tests/test-rhel5-xen-dom0.sh b/tests/rhel5-xen-dom0/test.sh +similarity index 94% +rename from tests/test-rhel5-xen-dom0.sh +rename to tests/rhel5-xen-dom0/test.sh +index 6571ecd..0d3297a 100755 +--- a/tests/test-rhel5-xen-dom0.sh ++++ b/tests/rhel5-xen-dom0/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/rhel5-xen-dom0 +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="xen + xen-dom0" + +diff --git a/tests/rhel5-xen-domU-hvm-ia64/Makefile.am b/tests/rhel5-xen-domU-hvm-ia64/Makefile.am +new file mode 100644 +index 0000000..48d7662 +--- /dev/null ++++ b/tests/rhel5-xen-domU-hvm-ia64/Makefile.am +@@ -0,0 +1,33 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper \ ++ sys/bus/xen/drivers/vbd/bind \ ++ sys/bus/xen/drivers/vbd/unbind \ ++ sys/bus/xen/drivers/vif/bind \ ++ sys/bus/xen/drivers/vif/unbind \ ++ sys/bus/xen/drivers_probe +diff --git a/tests/test-rhel5-xen-domU-hvm-ia64.sh b/tests/rhel5-xen-domU-hvm-ia64/test.sh +similarity index 93% +rename from tests/test-rhel5-xen-domU-hvm-ia64.sh +rename to tests/rhel5-xen-domU-hvm-ia64/test.sh +index 5f29c1b..7f84a5c 100755 +--- a/tests/test-rhel5-xen-domU-hvm-ia64.sh ++++ b/tests/rhel5-xen-domU-hvm-ia64/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/rhel5-xen-domU-hvm-ia64 +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="xen + xen-hvm" + +diff --git a/tests/rhel5-xen-domU-hvm/Makefile.am b/tests/rhel5-xen-domU-hvm/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/rhel5-xen-domU-hvm/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-rhel5-xen-domU-hvm.sh b/tests/rhel5-xen-domU-hvm/test.sh +similarity index 94% +rename from tests/test-rhel5-xen-domU-hvm.sh +rename to tests/rhel5-xen-domU-hvm/test.sh +index 593fdb7..627de55 100755 +--- a/tests/test-rhel5-xen-domU-hvm.sh ++++ b/tests/rhel5-xen-domU-hvm/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/rhel5-xen-domU-hvm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="xen + xen-hvm" + +diff --git a/tests/rhel5-xen-domU-pv/Makefile.am b/tests/rhel5-xen-domU-pv/Makefile.am +new file mode 100644 +index 0000000..4eeb69b +--- /dev/null ++++ b/tests/rhel5-xen-domU-pv/Makefile.am +@@ -0,0 +1,46 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ proc/xen/balloon \ ++ proc/xen/capabilities \ ++ proc/xen/privcmd \ ++ proc/xen/xenbus \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper \ ++ sys/hypervisor/properties/pagesize \ ++ sys/hypervisor/properties/changeset \ ++ sys/hypervisor/properties/virtual_start \ ++ sys/hypervisor/properties/capabilities \ ++ sys/hypervisor/properties/writable_pt \ ++ sys/hypervisor/type \ ++ sys/hypervisor/vmcoreinfo \ ++ sys/hypervisor/version/minor \ ++ sys/hypervisor/version/major \ ++ sys/hypervisor/version/extra \ ++ sys/hypervisor/compilation/compiler \ ++ sys/hypervisor/compilation/compiled_by \ ++ sys/hypervisor/compilation/compile_date \ ++ sys/hypervisor/uuid +diff --git a/tests/test-rhel5-xen-domU-pv.sh b/tests/rhel5-xen-domU-pv/test.sh +similarity index 94% +rename from tests/test-rhel5-xen-domU-pv.sh +rename to tests/rhel5-xen-domU-pv/test.sh +index 6561605..a3b9472 100755 +--- a/tests/test-rhel5-xen-domU-pv.sh ++++ b/tests/rhel5-xen-domU-pv/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/rhel5-xen-domU-pv +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="xen + xen-domU" + +diff --git a/tests/rhev/Makefile.am b/tests/rhev/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/rhev/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-rhev.sh b/tests/rhev/test.sh +similarity index 94% +rename from tests/test-rhev.sh +rename to tests/rhev/test.sh +index 76be547..7d9c22f 100755 +--- a/tests/test-rhev.sh ++++ b/tests/rhev/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/rhev +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="rhev + kvm" + +diff --git a/tests/vmm/Makefile.am b/tests/vmm/Makefile.am +new file mode 100644 +index 0000000..0198c8f +--- /dev/null ++++ b/tests/vmm/Makefile.am +@@ -0,0 +1,27 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-vmm.sh b/tests/vmm/test.sh +similarity index 95% +rename from tests/test-vmm.sh +rename to tests/vmm/test.sh +index e1de60a..56c3b0e 100755 +--- a/tests/test-vmm.sh ++++ b/tests/vmm/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/vmm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="vmm" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/xen-arm/Makefile.am b/tests/xen-arm/Makefile.am +new file mode 100644 +index 0000000..acf118a +--- /dev/null ++++ b/tests/xen-arm/Makefile.am +@@ -0,0 +1,29 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/device-tree/hypervisor/compatible \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-xen-arm.sh b/tests/xen-arm/test.sh +similarity index 94% +rename from tests/test-xen-arm.sh +rename to tests/xen-arm/test.sh +index 209712e..a4c2599 100755 +--- a/tests/test-xen-arm.sh ++++ b/tests/xen-arm/test.sh +@@ -15,9 +15,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/xen-arm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="xen" + + if [ "$output" != "$expected" ]; then +diff --git a/tests/zvm/Makefile.am b/tests/zvm/Makefile.am +new file mode 100644 +index 0000000..951274b +--- /dev/null ++++ b/tests/zvm/Makefile.am +@@ -0,0 +1,29 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ proc/sysinfo \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/test-zvm.sh b/tests/zvm/test.sh +similarity index 95% +rename from tests/test-zvm.sh +rename to tests/zvm/test.sh +index 0620db0..a22f311 100755 +--- a/tests/test-zvm.sh ++++ b/tests/zvm/test.sh +@@ -16,9 +16,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +-root=tests/zvm +- +-output="$(./virt-what --test-root=$root 2>&1)" ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" + expected="ibm_systemz + ibm_systemz-zvm" + +-- +2.23.0 + diff --git a/SOURCES/0016-build-Add-.gitignore-to-tarball.patch b/SOURCES/0016-build-Add-.gitignore-to-tarball.patch new file mode 100644 index 0000000..ea0d391 --- /dev/null +++ b/SOURCES/0016-build-Add-.gitignore-to-tarball.patch @@ -0,0 +1,26 @@ +From 5c2c251d9aae98e6a629b966bdd8cae2aa1dedaf Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 3 Oct 2019 10:16:08 +0100 +Subject: [PATCH 16/21] build: Add .gitignore to tarball. + +Mainly to keep maintainer-check-extra-dist happy. +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index b62738f..1cb73b7 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -19,7 +19,7 @@ AM_CPPFLAGS = -Wall + + CLEANFILES = virt-what *~ + +-EXTRA_DIST = virt-what.in virt-what.pod ++EXTRA_DIST = .gitignore virt-what.in virt-what.pod + + SUBDIRS = . tests + +-- +2.23.0 + diff --git a/SOURCES/0017-maintainer-Add-rules-for-maintainers.patch b/SOURCES/0017-maintainer-Add-rules-for-maintainers.patch new file mode 100644 index 0000000..3d9dc57 --- /dev/null +++ b/SOURCES/0017-maintainer-Add-rules-for-maintainers.patch @@ -0,0 +1,51 @@ +From b6161b67b0bd542169e13cdfa0488a0266e3ae7a Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 3 Oct 2019 10:13:43 +0100 +Subject: [PATCH 17/21] maintainer: Add rules for maintainers. + +Adds: +make maintainer-check-extra-dist +make maintainer-commit +make maintainer-tag +--- + Makefile.am | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +diff --git a/Makefile.am b/Makefile.am +index 1cb73b7..5435132 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -41,3 +41,30 @@ virt-what.txt: virt-what.pod + pod2text $? > $@ + + endif ++ ++#---------------------------------------------------------------------- ++# Maintainers only! ++ ++# Check no files are missing from EXTRA_DIST rules, and that all ++# generated files have been included in the tarball. (Note you must ++# have done 'make dist') ++maintainer-check-extra-dist: ++ @zcat $(PACKAGE_NAME)-$(VERSION).tar.gz | tar tf - | sort | \ ++ sed 's,^$(PACKAGE_NAME)-$(VERSION)/,,' > tarfiles ++ @git ls-files | \ ++ sort > gitfiles ++ @comm -13 tarfiles gitfiles > comm-out ++ @echo Checking for differences between EXTRA_DIST and git ... ++ @cat comm-out ++ @[ ! -s comm-out ] ++ @rm tarfiles gitfiles comm-out ++ @echo PASS: EXTRA_DIST tests ++ ++# Commit everything in the current directory and set the commit ++# message to the current version number. ++maintainer-commit: ++ git commit -a -m "Version $(VERSION)." ++ ++# Tag HEAD with the current version. ++maintainer-tag: ++ git tag -a v$(VERSION) -m "Version $(VERSION)." -f +-- +2.23.0 + diff --git a/SOURCES/0018-Fix-virt-what-cpuid-helper.patch b/SOURCES/0018-Fix-virt-what-cpuid-helper.patch new file mode 100644 index 0000000..537253b --- /dev/null +++ b/SOURCES/0018-Fix-virt-what-cpuid-helper.patch @@ -0,0 +1,118 @@ +From a5471559e7398418f1bb9c538a7bfc8f39e9ae98 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Fri, 4 Oct 2019 15:57:42 +0300 +Subject: [PATCH 18/21] Fix virt-what-cpuid-helper. + +The value returned in %eax is the max_entry (eg. 0x40000000 +if there are no further leafs). However it is not reliable. +In addition if there are multiple leafs we should probably +only print the highest one. + +Also use uint32_t instead of unsigned int. + +Thanks: Paolo Bonzini. +--- + virt-what-cpuid-helper.c | 67 ++++++++++++++++++++++++++++------------ + 1 file changed, 48 insertions(+), 19 deletions(-) + +diff --git a/virt-what-cpuid-helper.c b/virt-what-cpuid-helper.c +index 7812545..0cd4a6f 100644 +--- a/virt-what-cpuid-helper.c ++++ b/virt-what-cpuid-helper.c +@@ -1,5 +1,5 @@ + /* virt-what-cpuid-helper: Are we running inside KVM or Xen HVM? +- * Copyright (C) 2008 Red Hat Inc. ++ * Copyright (C) 2008-2019 Red Hat Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -21,14 +21,35 @@ + */ + + #include ++#include ++#include + #include + + #if defined(__i386__) || defined(__x86_64__) + +-static unsigned int +-cpuid (unsigned int eax, char *sig) ++/* Known x86 hypervisor signatures. Note that if you add a new test ++ * to virt-what.in you may need to update this list. The signature is ++ * always 12 bytes except in the case of KVM. ++ */ ++static int ++known_signature (char *sig) + { +- unsigned int *sig32 = (unsigned int *) sig; ++ return ++ strcmp (sig, "bhyve bhyve ") == 0 || ++ strcmp (sig, "KVMKVMKVM") == 0 || ++ strcmp (sig, "LKVMLKVMLKVM") == 0 || ++ strcmp (sig, "Microsoft Hv") == 0 || ++ strcmp (sig, "OpenBSDVMM58") == 0 || ++ strcmp (sig, "TCGTCGTCGTCG") == 0 || ++ strcmp (sig, "VMwareVMware") == 0 || ++ strcmp (sig, "XenVMMXenVMM") == 0 || ++ 0; ++} ++ ++static uint32_t ++cpuid (uint32_t eax, char *sig) ++{ ++ uint32_t *sig32 = (uint32_t *) sig; + + asm volatile ( + "xchgl %%ebx,%1; xor %%ebx,%%ebx; cpuid; xchgl %%ebx,%1" +@@ -43,24 +64,32 @@ static void + cpu_sig (void) + { + char sig[13]; +- unsigned int base = 0x40000000, leaf = base; +- unsigned int max_entries; +- +- memset (sig, 0, sizeof sig); +- max_entries = cpuid (leaf, sig); +- puts (sig); ++ const uint32_t base = 0x40000000; ++ uint32_t leaf; + +- /* Most hypervisors only have information in leaf 0x40000000, but +- * upstream Xen contains further leaf entries (in particular when +- * used with Viridian [HyperV] extensions). CPUID is supposed to +- * return the maximum leaf offset in %eax, so that's what we use, +- * but only if it looks sensible. ++ /* Most hypervisors only have information in leaf 0x40000000. ++ * ++ * Some hypervisors have "Viridian [HyperV] extensions", and those ++ * must appear in slot 0x40000000, but they will also have the true ++ * hypervisor in a higher slot. ++ * ++ * CPUID is supposed to return the maximum leaf offset in %eax, but ++ * this is not reliable. Instead we check the returned signatures ++ * against a known list (the others will be empty or garbage) and ++ * only print the ones we know about. This is OK because if we add ++ * a new test in virt-what we can update the list. ++ * ++ * By searching backwards we only print the highest entry, thus ++ * ignoring Viridian for Xen (and Nutanix). If we ever encounter a ++ * hypervisor that has more than 2 entries we may need to revisit ++ * this. + */ +- if (max_entries > 3 && max_entries < 0x10000) { +- for (leaf = base + 0x100; leaf <= base + max_entries; leaf += 0x100) { +- memset (sig, 0, sizeof sig); +- cpuid (leaf, sig); ++ for (leaf = base + 0xff00; leaf >= base; leaf -= 0x100) { ++ memset (sig, 0, sizeof sig); ++ cpuid (leaf, sig); ++ if (known_signature (sig)) { + puts (sig); ++ break; + } + } + } +-- +2.23.0 + diff --git a/SOURCES/0019-Add-support-for-Nutanix-Acropolis-Hypervisor-AHV-RHB.patch b/SOURCES/0019-Add-support-for-Nutanix-Acropolis-Hypervisor-AHV-RHB.patch new file mode 100644 index 0000000..dee019e --- /dev/null +++ b/SOURCES/0019-Add-support-for-Nutanix-Acropolis-Hypervisor-AHV-RHB.patch @@ -0,0 +1,405 @@ +From 01ea13d9813df93e294b0d9776d4cefd54b1609b Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Fri, 4 Oct 2019 16:25:55 +0300 +Subject: [PATCH 19/21] Add support for Nutanix Acropolis Hypervisor (AHV) + (RHBZ#1756381). + +Thanks: Cristian Seres for providing access to a guest. +--- + configure.ac | 2 + + tests/nutanix-ahv/Makefile.am | 28 ++++ + tests/nutanix-ahv/proc/cpuinfo | 27 ++++ + tests/nutanix-ahv/proc/self/status | 55 ++++++++ + tests/nutanix-ahv/sbin/dmidecode | 123 ++++++++++++++++++ + tests/nutanix-ahv/sbin/uname | 2 + + tests/nutanix-ahv/sbin/virt-what-cpuid-helper | 2 + + tests/nutanix-ahv/test.sh | 32 +++++ + virt-what.in | 10 +- + virt-what.pod | 6 + + 10 files changed, 286 insertions(+), 1 deletion(-) + create mode 100644 tests/nutanix-ahv/Makefile.am + create mode 100644 tests/nutanix-ahv/proc/cpuinfo + create mode 100644 tests/nutanix-ahv/proc/self/status + create mode 100755 tests/nutanix-ahv/sbin/dmidecode + create mode 100755 tests/nutanix-ahv/sbin/uname + create mode 100755 tests/nutanix-ahv/sbin/virt-what-cpuid-helper + create mode 100755 tests/nutanix-ahv/test.sh + +diff --git a/configure.ac b/configure.ac +index 5e0d9c4..f246e34 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -51,6 +51,7 @@ tests="\ + lkvm-arm \ + lx86 \ + lxc \ ++ nutanix-ahv \ + parallels-desktop \ + ppc64-baremetal \ + ppc64-kvm \ +@@ -93,6 +94,7 @@ AC_CONFIG_FILES([Makefile + tests/lkvm-arm/Makefile + tests/lx86/Makefile + tests/lxc/Makefile ++ tests/nutanix-ahv/Makefile + tests/parallels-desktop/Makefile + tests/ppc64-baremetal/Makefile + tests/ppc64-kvm/Makefile +diff --git a/tests/nutanix-ahv/Makefile.am b/tests/nutanix-ahv/Makefile.am +new file mode 100644 +index 0000000..b748df8 +--- /dev/null ++++ b/tests/nutanix-ahv/Makefile.am +@@ -0,0 +1,28 @@ ++# Makefile for virt-what ++# Copyright (C) 2008-2011 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++CLEANFILES = *~ ++ ++TESTS = test.sh ++ ++EXTRA_DIST = \ ++ test.sh \ ++ proc/cpuinfo \ ++ proc/self/status \ ++ sbin/dmidecode \ ++ sbin/uname \ ++ sbin/virt-what-cpuid-helper +diff --git a/tests/nutanix-ahv/proc/cpuinfo b/tests/nutanix-ahv/proc/cpuinfo +new file mode 100644 +index 0000000..d7a1f68 +--- /dev/null ++++ b/tests/nutanix-ahv/proc/cpuinfo +@@ -0,0 +1,27 @@ ++processor : 0 ++vendor_id : GenuineIntel ++cpu family : 15 ++model : 6 ++model name : Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz ++stepping : 1 ++microcode : 0x1 ++cpu MHz : 2199.998 ++cache size : 16384 KB ++physical id : 0 ++siblings : 1 ++core id : 0 ++cpu cores : 1 ++apicid : 0 ++initial apicid : 0 ++fpu : yes ++fpu_exception : yes ++cpuid level : 13 ++wp : yes ++flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc nopl cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat md_clear ++bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs ++bogomips : 4399.99 ++clflush size : 64 ++cache_alignment : 128 ++address sizes : 46 bits physical, 48 bits virtual ++power management: ++ +diff --git a/tests/nutanix-ahv/proc/self/status b/tests/nutanix-ahv/proc/self/status +new file mode 100644 +index 0000000..7b4eed0 +--- /dev/null ++++ b/tests/nutanix-ahv/proc/self/status +@@ -0,0 +1,55 @@ ++Name: cat ++Umask: 0022 ++State: R (running) ++Tgid: 18508 ++Ngid: 0 ++Pid: 18508 ++PPid: 18506 ++TracerPid: 0 ++Uid: 0 0 0 0 ++Gid: 0 0 0 0 ++FDSize: 64 ++Groups: 0 ++NStgid: 18508 ++NSpid: 18508 ++NSpgid: 18506 ++NSsid: 1945 ++VmPeak: 5392 kB ++VmSize: 5392 kB ++VmLck: 0 kB ++VmPin: 0 kB ++VmHWM: 760 kB ++VmRSS: 760 kB ++RssAnon: 68 kB ++RssFile: 692 kB ++RssShmem: 0 kB ++VmData: 312 kB ++VmStk: 132 kB ++VmExe: 28 kB ++VmLib: 1456 kB ++VmPTE: 48 kB ++VmSwap: 0 kB ++HugetlbPages: 0 kB ++CoreDumping: 0 ++THP_enabled: 1 ++Threads: 1 ++SigQ: 3/7359 ++SigPnd: 0000000000000000 ++ShdPnd: 0000000000000000 ++SigBlk: 0000000000000000 ++SigIgn: 0000000000000000 ++SigCgt: 0000000000000000 ++CapInh: 0000000000000000 ++CapPrm: 0000003fffffffff ++CapEff: 0000003fffffffff ++CapBnd: 0000003fffffffff ++CapAmb: 0000000000000000 ++NoNewPrivs: 0 ++Seccomp: 0 ++Speculation_Store_Bypass: thread vulnerable ++Cpus_allowed: ffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff ++Cpus_allowed_list: 0-239 ++Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001 ++Mems_allowed_list: 0 ++voluntary_ctxt_switches: 0 ++nonvoluntary_ctxt_switches: 2 +diff --git a/tests/nutanix-ahv/sbin/dmidecode b/tests/nutanix-ahv/sbin/dmidecode +new file mode 100755 +index 0000000..3774819 +--- /dev/null ++++ b/tests/nutanix-ahv/sbin/dmidecode +@@ -0,0 +1,123 @@ ++#!/bin/sh - ++cat <<'EOF' ++i# dmidecode 3.2 ++Getting SMBIOS data from sysfs. ++SMBIOS 2.8 present. ++9 structures occupying 486 bytes. ++Table at 0x000F73C0. ++ ++Handle 0x0000, DMI type 0, 24 bytes ++BIOS Information ++ Vendor: SeaBIOS ++ Version: 1.9.1-5.el6 ++ Release Date: 04/01/2014 ++ Address: 0xE8000 ++ Runtime Size: 96 kB ++ ROM Size: 64 kB ++ Characteristics: ++ BIOS characteristics not supported ++ Targeted content distribution is supported ++ BIOS Revision: 0.0 ++ ++Handle 0x0100, DMI type 1, 27 bytes ++System Information ++ Manufacturer: Nutanix ++ Product Name: AHV ++ Version: RHEL 7.3.0 PC (i440FX + PIIX, 1996) ++ Serial Number: B913C223-EEDE-4DFC-BB43-BE1495F4388D ++ UUID: b913c223-eede-4dfc-bb43-be1495f4388d ++ Wake-up Type: Power Switch ++ SKU Number: Not Specified ++ Family: Red Hat Enterprise Linux ++ ++Handle 0x0300, DMI type 3, 21 bytes ++Chassis Information ++ Manufacturer: Red Hat ++ Type: Other ++ Lock: Not Present ++ Version: RHEL 7.3.0 PC (i440FX + PIIX, 1996) ++ Serial Number: Not Specified ++ Asset Tag: Not Specified ++ Boot-up State: Safe ++ Power Supply State: Safe ++ Thermal State: Safe ++ Security Status: Unknown ++ OEM Information: 0x00000000 ++ Height: Unspecified ++ Number Of Power Cords: Unspecified ++ Contained Elements: 0 ++ ++Handle 0x0400, DMI type 4, 42 bytes ++Processor Information ++ Socket Designation: CPU 0 ++ Type: Central Processor ++ Family: Other ++ Manufacturer: Red Hat ++ ID: 61 0F 00 00 FF FB 8B 0F ++ Version: RHEL 7.3.0 PC (i440FX + PIIX, 1996) ++ Voltage: Unknown ++ External Clock: Unknown ++ Max Speed: 2000 MHz ++ Current Speed: 2000 MHz ++ Status: Populated, Enabled ++ Upgrade: Other ++ L1 Cache Handle: Not Provided ++ L2 Cache Handle: Not Provided ++ L3 Cache Handle: Not Provided ++ Serial Number: Not Specified ++ Asset Tag: Not Specified ++ Part Number: Not Specified ++ Core Count: 1 ++ Core Enabled: 1 ++ Thread Count: 1 ++ Characteristics: None ++ ++Handle 0x1000, DMI type 16, 23 bytes ++Physical Memory Array ++ Location: Other ++ Use: System Memory ++ Error Correction Type: Multi-bit ECC ++ Maximum Capacity: 2 GB ++ Error Information Handle: Not Provided ++ Number Of Devices: 1 ++ ++Handle 0x1100, DMI type 17, 40 bytes ++Memory Device ++ Array Handle: 0x1000 ++ Error Information Handle: Not Provided ++ Total Width: Unknown ++ Data Width: Unknown ++ Size: 2048 MB ++ Form Factor: DIMM ++ Set: None ++ Locator: DIMM 0 ++ Bank Locator: Not Specified ++ Type: RAM ++ Type Detail: Other ++ Speed: Unknown ++ Manufacturer: Red Hat ++ Serial Number: Not Specified ++ Asset Tag: Not Specified ++ Part Number: Not Specified ++ Rank: Unknown ++ Configured Memory Speed: Unknown ++ Minimum Voltage: Unknown ++ Maximum Voltage: Unknown ++ Configured Voltage: Unknown ++ ++Handle 0x1300, DMI type 19, 31 bytes ++Memory Array Mapped Address ++ Starting Address: 0x00000000000 ++ Ending Address: 0x0007FFFFFFF ++ Range Size: 2 GB ++ Physical Array Handle: 0x1000 ++ Partition Width: 1 ++ ++Handle 0x2000, DMI type 32, 11 bytes ++System Boot Information ++ Status: No errors detected ++ ++Handle 0x7F00, DMI type 127, 4 bytes ++End Of Table ++ ++EOF +diff --git a/tests/nutanix-ahv/sbin/uname b/tests/nutanix-ahv/sbin/uname +new file mode 100755 +index 0000000..ab0ec89 +--- /dev/null ++++ b/tests/nutanix-ahv/sbin/uname +@@ -0,0 +1,2 @@ ++#!/bin/sh - ++echo x86_64 +diff --git a/tests/nutanix-ahv/sbin/virt-what-cpuid-helper b/tests/nutanix-ahv/sbin/virt-what-cpuid-helper +new file mode 100755 +index 0000000..f52a9d7 +--- /dev/null ++++ b/tests/nutanix-ahv/sbin/virt-what-cpuid-helper +@@ -0,0 +1,2 @@ ++#!/bin/sh - ++echo KVMKVMKVM +diff --git a/tests/nutanix-ahv/test.sh b/tests/nutanix-ahv/test.sh +new file mode 100755 +index 0000000..3d934b2 +--- /dev/null ++++ b/tests/nutanix-ahv/test.sh +@@ -0,0 +1,32 @@ ++# Test for Nutanix AHV ++# Copyright (C) 2019 Red Hat Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" ++expected="nutanix_ahv" ++ ++if [ "$output" != "$expected" ]; then ++ echo "$0: test failed because output did not match expected" ++ echo "Expected output was:" ++ echo "----------------------------------------" ++ echo "$expected" ++ echo "----------------------------------------" ++ echo "But the actual output of the program was:" ++ echo "----------------------------------------" ++ echo "$output" ++ echo "----------------------------------------" ++ exit 1 ++fi +diff --git a/virt-what.in b/virt-what.in +index f685461..9eafa05 100644 +--- a/virt-what.in ++++ b/virt-what.in +@@ -1,6 +1,6 @@ + #!/bin/sh - + # @configure_input@ +-# Copyright (C) 2008-2017 Red Hat Inc. ++# Copyright (C) 2008-2019 Red Hat Inc. + # + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by +@@ -220,6 +220,14 @@ if echo "$dmi" | grep -q 'Vendor: Parallels'; then + skip_qemu_kvm=true + fi + ++# Check for Nutanix AHV. ++# This is sufficiently different from KVM and has Viridian extensions, ++# so skip the KVM test. ++if echo "$dmi" | grep -q 'Manufacturer: Nutanix'; then ++ echo nutanix_ahv ++ skip_qemu_kvm=true ++fi ++ + # Check for oVirt/RHEV. + if echo "$dmi" | grep -q 'Manufacturer: oVirt'; then + echo ovirt +diff --git a/virt-what.pod b/virt-what.pod +index 5a0bdfc..ea5cb77 100644 +--- a/virt-what.pod ++++ b/virt-what.pod +@@ -177,6 +177,12 @@ is lkvm (a.k.a kvmtool). + + Status: contributed by Andrew Jones + ++=item B ++ ++The guest is running inside Nutanix Acropolis Hypervisor (AHV). ++ ++Status: confirmed by RWMJ. ++ + =item B + + The guest appears to be running inside an OpenVZ or Virtuozzo +-- +2.23.0 + diff --git a/SOURCES/0020-helper-Fix-KVM-signature.patch b/SOURCES/0020-helper-Fix-KVM-signature.patch new file mode 100644 index 0000000..19acbe6 --- /dev/null +++ b/SOURCES/0020-helper-Fix-KVM-signature.patch @@ -0,0 +1,38 @@ +From e0443f1fc78f2a79c073dbdf4133bec41c4c0591 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Fri, 4 Oct 2019 18:30:01 +0100 +Subject: [PATCH 20/21] helper: Fix KVM signature. + +Thanks: Paolo Bonzini. +--- + virt-what-cpuid-helper.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/virt-what-cpuid-helper.c b/virt-what-cpuid-helper.c +index 0cd4a6f..9c6cdb2 100644 +--- a/virt-what-cpuid-helper.c ++++ b/virt-what-cpuid-helper.c +@@ -28,15 +28,16 @@ + #if defined(__i386__) || defined(__x86_64__) + + /* Known x86 hypervisor signatures. Note that if you add a new test +- * to virt-what.in you may need to update this list. The signature is +- * always 12 bytes except in the case of KVM. ++ * to virt-what.in you may need to update this list. Note the ++ * signature is always 12 bytes long, plus we add \0 to the end to ++ * make it 13 bytes. + */ + static int +-known_signature (char *sig) ++known_signature (const char *sig) + { + return + strcmp (sig, "bhyve bhyve ") == 0 || +- strcmp (sig, "KVMKVMKVM") == 0 || ++ memcmp (sig, "KVMKVMKVM\0\0\0", 12) == 0 || + strcmp (sig, "LKVMLKVMLKVM") == 0 || + strcmp (sig, "Microsoft Hv") == 0 || + strcmp (sig, "OpenBSDVMM58") == 0 || +-- +2.23.0 + diff --git a/SOURCES/0021-Fix-incorrect-detection-of-MS-Surfacebook-2-as-a-vir.patch b/SOURCES/0021-Fix-incorrect-detection-of-MS-Surfacebook-2-as-a-vir.patch new file mode 100644 index 0000000..5a9474c --- /dev/null +++ b/SOURCES/0021-Fix-incorrect-detection-of-MS-Surfacebook-2-as-a-vir.patch @@ -0,0 +1,27 @@ +From 71ef45e9543278e9920e449b71e0da269662ebc9 Mon Sep 17 00:00:00 2001 +From: willem van de velde +Date: Tue, 22 Oct 2019 11:58:01 +0100 +Subject: [PATCH 21/21] Fix incorrect detection of MS Surfacebook 2 as a + virtual machine. + +--- + virt-what.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/virt-what.in b/virt-what.in +index 9eafa05..a61ce91 100644 +--- a/virt-what.in ++++ b/virt-what.in +@@ -132,7 +132,8 @@ fi + # The negative check for cpuid is to distinguish this from Hyper-V + # which also has the same manufacturer string in the SM-BIOS data. + if [ "$cpuid" != "Microsoft Hv" ] && +- echo "$dmi" | grep -q 'Manufacturer: Microsoft Corporation'; then ++ echo "$dmi" | grep -q 'Manufacturer: Microsoft Corporation' && ++ echo "$dmi" | grep -q 'Product Name: Virtual Machine'; then + echo virtualpc + fi + +-- +2.23.0 + diff --git a/SOURCES/gitignore b/SOURCES/gitignore new file mode 100644 index 0000000..f565f34 --- /dev/null +++ b/SOURCES/gitignore @@ -0,0 +1,28 @@ +*~ +*.log +*.trs +*.o + +/virt-what-*.tar.gz +/.deps +/Makefile +/Makefile.in +/aclocal.m4 +/autom4te.cache +/compile +/config.guess +/config.h +/config.h.in +/config.log +/config.status +/config.sub +/configure +/depcomp +/install-sh +/missing +/stamp-h1 +/test-driver +/virt-what +/virt-what-cpuid-helper +/virt-what.1 +/virt-what.txt diff --git a/SPECS/virt-what.spec b/SPECS/virt-what.spec index 960ca6e..aee253c 100644 --- a/SPECS/virt-what.spec +++ b/SPECS/virt-what.spec @@ -1,12 +1,17 @@ Name: virt-what Version: 1.18 -Release: 6%{?dist} +Release: 9%{?dist} Summary: Detect if we are running in a virtual machine License: GPLv2+ URL: http://people.redhat.com/~rjones/virt-what/ Source0: http://people.redhat.com/~rjones/virt-what/files/%{name}-%{version}.tar.gz +# Some of the patches below apply to .gitignore, but that file was not +# included in the tarball before v1.20. This is the version from +# v1.18 upstream allowing patching to go ahead. +Source1: gitignore + # Patches from upstream since 1.18 was released. Patch0001: 0001-Missing-have_cpuinfo-check.patch Patch0002: 0002-Remove-bashisms.patch @@ -21,6 +26,22 @@ Patch0009: 0009-tests-Fix-tests-when-run-on-AWS.patch Patch0010: 0010-aws-Add-regression-test-for-AWS-on-KVM-on-x86_64-arc.patch Patch0011: 0011-aws-Add-regression-test-for-AWS-on-baremetal-on-x86_.patch Patch0012: 0012-aws-Add-regression-test-for-AWS-on-Xen-on-x86_64-arc.patch +Patch0013: 0013-aws-Add-regression-test-for-AWS-on-KVM-on-ARM-archit.patch +# Refactor build and tests. +Patch0014: 0014-build-Remove-files-on-make-clean.patch +Patch0015: 0015-Arrange-tests-in-subdirectories.patch +Patch0016: 0016-build-Add-.gitignore-to-tarball.patch +Patch0017: 0017-maintainer-Add-rules-for-maintainers.patch +# Support for Nutanix AHV (RHBZ#1756381). +Patch0018: 0018-Fix-virt-what-cpuid-helper.patch +Patch0019: 0019-Add-support-for-Nutanix-Acropolis-Hypervisor-AHV-RHB.patch +Patch0020: 0020-helper-Fix-KVM-signature.patch +# Support for virtualized MS Surfacebook 2. +Patch0021: 0021-Fix-incorrect-detection-of-MS-Surfacebook-2-as-a-vir.patch + +# Fix crash on non-KVM platforms through incorrect use of CPUID in +# patch 0018 (https://bugzilla.redhat.com/show_bug.cgi?id=1756381#c15). +Patch0022: 0001-Simplify-and-fix-invocation-of-cpuid.patch # Patches touch Makefile.am: BuildRequires: autoconf, automake @@ -94,7 +115,18 @@ Current types of virtualization detected: %prep -%autosetup -S git +# We can go back to autosetup once we rebase to >= v1.20 which +# includes the .gitignore file in the tarball. +#autosetup -S git +# But until then ... +%setup -q -n %{name}-%{version} +cp %{SOURCE1} .gitignore +git init +git config user.email "noone@example.com" +git config user.name "no one" +git add . +git commit -a -q -m "%{version} baseline" +git am %{patches} - 1.18-9 +- Fix crash on non-KVM platforms through incorrect use of CPUID + related: rhbz#1756381 + +* Tue Dec 10 2019 Richard W.M. Jones - 1.18-8 +- Add support for Nutanix AHV + resolves: rhbz#1756381 +- Add all patches since 1.18 was released, up to 1.20 and beyond. + +* Thu Mar 21 2019 Richard W.M. Jones - 1.18-7 +- Add gating tests resolves: rhbz#1682785 + * Wed Oct 31 2018 Richard W.M. Jones - 1.18-6 - Add further patches to fix AWS support resolves: rhbz#1644497