mirror of https://gitee.com/openkylin/libvirt.git
tests: Add tests for CPU selection in qemu driver
This commit is contained in:
parent
9237e9558a
commit
6fda7ea537
|
@ -0,0 +1,64 @@
|
|||
#! /bin/sh
|
||||
|
||||
candidates="/usr/bin/qemu-kvm
|
||||
/usr/libexec/qemu-kvm
|
||||
/usr/bin/qemu-system-x86_64
|
||||
/usr/bin/qemu"
|
||||
qemu=
|
||||
for candidate in $candidates; do
|
||||
if test -x $candidate; then
|
||||
qemu=$candidate
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
real_qemu()
|
||||
{
|
||||
if test x$qemu != x; then
|
||||
exec $qemu "$@"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
faked_machine()
|
||||
{
|
||||
echo "pc"
|
||||
}
|
||||
|
||||
faked_cpu()
|
||||
{
|
||||
cat <<EOF
|
||||
x86 Opteron_G3
|
||||
x86 Opteron_G2
|
||||
x86 Opteron_G1
|
||||
x86 Nehalem
|
||||
x86 Penryn
|
||||
x86 Conroe
|
||||
x86 [n270]
|
||||
x86 [athlon]
|
||||
x86 [pentium3]
|
||||
x86 [pentium2]
|
||||
x86 [pentium]
|
||||
x86 [486]
|
||||
x86 [coreduo]
|
||||
x86 [qemu32]
|
||||
x86 [kvm64]
|
||||
x86 [core2duo]
|
||||
x86 [phenom]
|
||||
x86 [qemu64]
|
||||
x86 [host]
|
||||
EOF
|
||||
}
|
||||
|
||||
case $* in
|
||||
"-M ?")
|
||||
faked_machine
|
||||
;;
|
||||
"-cpu ?")
|
||||
faked_cpu
|
||||
;;
|
||||
*)
|
||||
real_qemu "$@"
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1 @@
|
|||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test ./qemu.sh -S -M pc -cpu qemu64,-svm,-lm,-nx,-syscall,-clflush,-pse36,-mca -m 214 -smp 6 -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -net none -serial none -parallel none -usb
|
|
@ -0,0 +1,28 @@
|
|||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory>219200</memory>
|
||||
<currentMemory>219200</currentMemory>
|
||||
<vcpu>6</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='network'/>
|
||||
</os>
|
||||
<cpu match='exact'>
|
||||
<model>qemu64</model>
|
||||
<feature policy='disable' name='svm'/>
|
||||
<feature policy='disable' name='lm'/>
|
||||
<feature policy='disable' name='nx'/>
|
||||
<feature policy='disable' name='syscall'/>
|
||||
<feature policy='disable' name='clflush'/>
|
||||
<feature policy='disable' name='pse36'/>
|
||||
<feature policy='disable' name='mca'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/./qemu.sh</emulator>
|
||||
</devices>
|
||||
</domain>
|
|
@ -0,0 +1 @@
|
|||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test ./qemu.sh -S -M pc -cpu core2duo,+lahf_lm,+3dnowext,+xtpr,+ds_cpl,+tm,+ht,+ds,-nx -m 214 -smp 6 -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -net none -serial none -parallel none -usb
|
|
@ -0,0 +1,35 @@
|
|||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory>219200</memory>
|
||||
<currentMemory>219200</currentMemory>
|
||||
<vcpu>6</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='network'/>
|
||||
</os>
|
||||
<cpu match='exact'>
|
||||
<model>core2duo</model>
|
||||
<feature name='lahf_lm' policy='require'/>
|
||||
<feature name='xtpr' policy='require'/>
|
||||
<feature name='cx16' policy='disable'/>
|
||||
<feature name='tm2' policy='disable'/>
|
||||
<feature name='ds_cpl' policy='require'/>
|
||||
<feature name='pbe' policy='disable'/>
|
||||
<feature name='tm' policy='optional'/>
|
||||
<feature name='ht' policy='require'/>
|
||||
<feature name='ss' policy='disable'/>
|
||||
<feature name='ds' policy='require'/>
|
||||
<feature name='nx' policy='disable'/>
|
||||
<feature name='3dnowext' policy='force'/>
|
||||
<feature name='sse4a' policy='optional'/>
|
||||
<feature name='wdt' policy='forbid'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/./qemu.sh</emulator>
|
||||
</devices>
|
||||
</domain>
|
|
@ -0,0 +1 @@
|
|||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test ./qemu.sh -S -M pc -cpu core2duo,+lahf_lm,+xtpr,+cx16,+tm2,+est,+vmx,+ds_cpl,+pbe,+tm,+ht,+ss,+acpi,+ds -m 214 -smp 6 -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -net none -serial none -parallel none -usb
|
|
@ -0,0 +1,21 @@
|
|||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory>219200</memory>
|
||||
<currentMemory>219200</currentMemory>
|
||||
<vcpu>6</vcpu>
|
||||
<os>
|
||||
<type arch='i686' machine='pc'>hvm</type>
|
||||
<boot dev='network'/>
|
||||
</os>
|
||||
<cpu match='minimum'>
|
||||
<model>486</model>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/./qemu.sh</emulator>
|
||||
</devices>
|
||||
</domain>
|
|
@ -0,0 +1 @@
|
|||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test ./qemu.sh -S -M pc -cpu core2duo,+lahf_lm,+xtpr,+cx16,+tm2,+est,+vmx,+ds_cpl,+pbe,+tm,+ht,+ss,+acpi,+ds,-lm,-nx,-syscall -m 214 -smp 6 -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -net none -serial none -parallel none -usb
|
|
@ -0,0 +1,25 @@
|
|||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory>219200</memory>
|
||||
<currentMemory>219200</currentMemory>
|
||||
<vcpu>6</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='network'/>
|
||||
</os>
|
||||
<cpu match='minimum'>
|
||||
<model>qemu64</model>
|
||||
<feature policy='disable' name='svm'/>
|
||||
<feature policy='disable' name='lm'/>
|
||||
<feature policy='disable' name='nx'/>
|
||||
<feature policy='disable' name='syscall'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/./qemu.sh</emulator>
|
||||
</devices>
|
||||
</domain>
|
|
@ -0,0 +1 @@
|
|||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test ./qemu.sh -S -M pc -cpu core2duo,+lahf_lm,+3dnowext,+xtpr,+est,+vmx,+ds_cpl,+tm,+ht,+acpi,+ds,-nx -m 214 -smp 6 -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -net none -serial none -parallel none -usb
|
|
@ -0,0 +1,38 @@
|
|||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory>219200</memory>
|
||||
<currentMemory>219200</currentMemory>
|
||||
<vcpu>6</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='network'/>
|
||||
</os>
|
||||
<cpu match='strict'>
|
||||
<model>core2duo</model>
|
||||
<feature name='lahf_lm' policy='require'/>
|
||||
<feature name='xtpr' policy='require'/>
|
||||
<feature name='cx16' policy='disable'/>
|
||||
<feature name='tm2' policy='disable'/>
|
||||
<feature name='est' policy='optional'/>
|
||||
<feature name='vmx' policy='optional'/>
|
||||
<feature name='ds_cpl' policy='require'/>
|
||||
<feature name='pbe' policy='disable'/>
|
||||
<feature name='tm' policy='optional'/>
|
||||
<feature name='ht' policy='require'/>
|
||||
<feature name='ss' policy='disable'/>
|
||||
<feature name='acpi' policy='optional'/>
|
||||
<feature name='ds' policy='require'/>
|
||||
<feature name='nx' policy='disable'/>
|
||||
<feature name='3dnowext' policy='force'/>
|
||||
<feature name='sse4a' policy='optional'/>
|
||||
<feature name='wdt' policy='forbid'/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/./qemu.sh</emulator>
|
||||
</devices>
|
||||
</domain>
|
|
@ -0,0 +1 @@
|
|||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test ./qemu.sh -S -M pc -m 214 -smp 6,sockets=3,cores=2,threads=1 -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -net none -serial none -parallel none -usb
|
|
@ -0,0 +1,21 @@
|
|||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory>219200</memory>
|
||||
<currentMemory>219200</currentMemory>
|
||||
<vcpu>6</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='network'/>
|
||||
</os>
|
||||
<cpu>
|
||||
<topology sockets="3" cores="2" threads="1"/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/./qemu.sh</emulator>
|
||||
</devices>
|
||||
</domain>
|
|
@ -0,0 +1 @@
|
|||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test ./qemu.sh -S -M pc -cpu core2duo -m 214 -smp 6,sockets=1,cores=2,threads=3 -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -net none -serial none -parallel none -usb
|
|
@ -0,0 +1,22 @@
|
|||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory>219200</memory>
|
||||
<currentMemory>219200</currentMemory>
|
||||
<vcpu>6</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='network'/>
|
||||
</os>
|
||||
<cpu match='exact'>
|
||||
<model>core2duo</model>
|
||||
<topology sockets="1" cores="2" threads="3"/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/./qemu.sh</emulator>
|
||||
</devices>
|
||||
</domain>
|
|
@ -0,0 +1 @@
|
|||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test ./qemu.sh -S -M pc -m 214 -smp 6 -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -net none -serial none -parallel none -usb
|
|
@ -0,0 +1,21 @@
|
|||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory>219200</memory>
|
||||
<currentMemory>219200</currentMemory>
|
||||
<vcpu>6</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='network'/>
|
||||
</os>
|
||||
<cpu>
|
||||
<topology sockets="3" cores="2" threads="1"/>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/./qemu.sh</emulator>
|
||||
</devices>
|
||||
</domain>
|
|
@ -15,11 +15,13 @@
|
|||
# include "testutils.h"
|
||||
# include "qemu/qemu_conf.h"
|
||||
# include "datatypes.h"
|
||||
# include "cpu/cpu_map.h"
|
||||
|
||||
# include "testutilsqemu.h"
|
||||
|
||||
static char *progname;
|
||||
static char *abs_srcdir;
|
||||
static const char *abs_top_srcdir;
|
||||
static struct qemud_driver driver;
|
||||
|
||||
# define MAX_FILE 4096
|
||||
|
@ -221,6 +223,7 @@ mymain(int argc, char **argv)
|
|||
{
|
||||
int ret = 0;
|
||||
char cwd[PATH_MAX];
|
||||
char map[PATH_MAX];
|
||||
|
||||
progname = argv[0];
|
||||
|
||||
|
@ -233,6 +236,10 @@ mymain(int argc, char **argv)
|
|||
if (!abs_srcdir)
|
||||
abs_srcdir = getcwd(cwd, sizeof(cwd));
|
||||
|
||||
abs_top_srcdir = getenv("abs_top_srcdir");
|
||||
if (!abs_top_srcdir)
|
||||
abs_top_srcdir = "..";
|
||||
|
||||
if ((driver.caps = testQemuCapsInit()) == NULL)
|
||||
return EXIT_FAILURE;
|
||||
if ((driver.stateDir = strdup("/nowhere")) == NULL)
|
||||
|
@ -247,6 +254,10 @@ mymain(int argc, char **argv)
|
|||
if (!(driver.spicePassword = strdup("123456")))
|
||||
return EXIT_FAILURE;
|
||||
|
||||
snprintf(map, PATH_MAX, "%s/src/cpu/cpu_map.xml", abs_top_srcdir);
|
||||
if (cpuMapOverride(map) < 0)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
# define DO_TEST_FULL(name, extraFlags, migrateFrom, expectError) \
|
||||
do { \
|
||||
const struct testInfo info = { \
|
||||
|
@ -452,6 +463,15 @@ mymain(int argc, char **argv)
|
|||
|
||||
DO_TEST("smp", QEMUD_CMD_FLAG_SMP_TOPOLOGY, false);
|
||||
|
||||
DO_TEST("cpu-topology1", QEMUD_CMD_FLAG_SMP_TOPOLOGY, false);
|
||||
DO_TEST("cpu-topology2", QEMUD_CMD_FLAG_SMP_TOPOLOGY, false);
|
||||
DO_TEST("cpu-topology3", 0, false);
|
||||
DO_TEST("cpu-minimum1", 0, false);
|
||||
DO_TEST("cpu-minimum2", 0, false);
|
||||
DO_TEST("cpu-exact1", 0, false);
|
||||
DO_TEST("cpu-exact2", 0, false);
|
||||
DO_TEST("cpu-strict1", 0, false);
|
||||
|
||||
free(driver.stateDir);
|
||||
virCapabilitiesFree(driver.caps);
|
||||
|
||||
|
|
Loading…
Reference in New Issue