diff options
author | Guido Günther <agx@sigxcpu.org> | 2014-08-01 08:12:37 +0200 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2014-08-01 08:12:37 +0200 |
commit | 16575d9886c474a5c35308e4900a7fcf0d57dea7 (patch) | |
tree | 9b396828329b529101e05f3694cbcceda56b6114 /tests | |
parent | ab710a4bc80b419b99089e71eb5b1a3e32adc7a5 (diff) |
New upstream version 1.2.7~rc2
Diffstat (limited to 'tests')
107 files changed, 2391 insertions, 400 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 025b847c8..3e710696a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -74,6 +74,8 @@ EXTRA_DIST = \ commanddata \ confdata \ cputestdata \ + domaincapsschemadata \ + domaincapsschematest \ domainconfdata \ domainschemadata \ domainschematest \ @@ -167,6 +169,7 @@ test_programs = virshtest sockettest \ virnetdevbandwidthtest \ virkmodtest \ vircapstest \ + domaincapstest \ domainconftest \ virhostdevtest \ vircaps2xmltest \ @@ -185,6 +188,7 @@ endif WITH_REMOTE if WITH_LINUX test_programs += fchosttest +test_programs += scsihosttest endif WITH_LINUX if WITH_LIBVIRTD @@ -318,6 +322,7 @@ test_scripts = \ networkschematest \ storagepoolschematest \ storagevolschematest \ + domaincapsschematest \ domainschematest \ nodedevschematest \ nwfilterschematest \ @@ -505,12 +510,11 @@ endif WITH_STORAGE if WITH_DTRACE_PROBES qemu_LDADDS += ../src/libvirt_qemu_probes.lo endif WITH_DTRACE_PROBES -qemu_LDADDS += $(LDADDS) qemuxml2argvtest_SOURCES = \ qemuxml2argvtest.c testutilsqemu.c testutilsqemu.h \ testutils.c testutils.h -qemuxml2argvtest_LDADD = $(qemu_LDADDS) $(LIBXML_LIBS) +qemuxml2argvtest_LDADD = $(qemu_LDADDS) $(LDADDS) $(LIBXML_LIBS) qemuxml2argvmock_la_SOURCES = \ qemuxml2argvmock.c @@ -521,62 +525,64 @@ qemuxml2argvmock_la_LDFLAGS = -module -avoid-version \ qemuxml2xmltest_SOURCES = \ qemuxml2xmltest.c testutilsqemu.c testutilsqemu.h \ testutils.c testutils.h -qemuxml2xmltest_LDADD = $(qemu_LDADDS) +qemuxml2xmltest_LDADD = $(qemu_LDADDS) $(LDADDS) qemuxmlnstest_SOURCES = \ qemuxmlnstest.c testutilsqemu.c testutilsqemu.h \ testutils.c testutils.h -qemuxmlnstest_LDADD = $(qemu_LDADDS) +qemuxmlnstest_LDADD = $(qemu_LDADDS) $(LDADDS) qemuargv2xmltest_SOURCES = \ qemuargv2xmltest.c testutilsqemu.c testutilsqemu.h \ testutils.c testutils.h -qemuargv2xmltest_LDADD = $(qemu_LDADDS) +qemuargv2xmltest_LDADD = $(qemu_LDADDS) $(LDADDS) qemuhelptest_SOURCES = qemuhelptest.c testutils.c testutils.h -qemuhelptest_LDADD = $(qemu_LDADDS) +qemuhelptest_LDADD = $(qemu_LDADDS) $(LDADDS) qemumonitortest_SOURCES = qemumonitortest.c testutils.c testutils.h -qemumonitortest_LDADD = $(qemu_LDADDS) +qemumonitortest_LDADD = $(qemu_LDADDS) $(LDADDS) qemumonitorjsontest_SOURCES = \ qemumonitorjsontest.c \ testutils.c testutils.h \ testutilsqemu.c testutilsqemu.h \ $(NULL) -qemumonitorjsontest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) +qemumonitorjsontest_LDADD = libqemumonitortestutils.la \ + $(qemu_LDADDS) $(LDADDS) qemucapabilitiestest_SOURCES = \ qemucapabilitiestest.c \ testutils.c testutils.h \ testutilsqemu.c testutilsqemu.h \ $(NULL) -qemucapabilitiestest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) +qemucapabilitiestest_LDADD = libqemumonitortestutils.la \ + $(qemu_LDADDS) $(LDADDS) qemucaps2xmltest_SOURCES = \ qemucaps2xmltest.c \ testutils.c testutils.h \ $(NULL) -qemucaps2xmltest_LDADD = $(qemu_LDADDS) +qemucaps2xmltest_LDADD = $(qemu_LDADDS) $(LDADDS) qemuagenttest_SOURCES = \ qemuagenttest.c \ testutils.c testutils.h \ testutilsqemu.c testutilsqemu.h \ $(NULL) -qemuagenttest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) +qemuagenttest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) $(LDADDS) qemuhotplugtest_SOURCES = \ qemuhotplugtest.c \ testutils.c testutils.h \ testutilsqemu.c testutilsqemu.h \ $(NULL) -qemuhotplugtest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) +qemuhotplugtest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) $(LDADDS) domainsnapshotxml2xmltest_SOURCES = \ domainsnapshotxml2xmltest.c testutilsqemu.c testutilsqemu.h \ testutils.c testutils.h -domainsnapshotxml2xmltest_LDADD = $(qemu_LDADDS) +domainsnapshotxml2xmltest_LDADD = $(qemu_LDADDS) $(LDADDS) else ! WITH_QEMU EXTRA_DIST += qemuxml2argvtest.c qemuxml2xmltest.c qemuargv2xmltest.c \ qemuxmlnstest.c qemuhelptest.c domainsnapshotxml2xmltest.c \ @@ -827,6 +833,15 @@ vircaps2xmltest_SOURCES = \ vircaps2xmltest.c testutils.h testutils.c vircaps2xmltest_LDADD = $(LDADDS) +domaincapstest_SOURCES = \ + domaincapstest.c testutils.h testutils.c +domaincapstest_LDADD = $(LDADDS) + +if WITH_QEMU +domaincapstest_SOURCES += testutilsqemu.c testutilsqemu.h +domaincapstest_LDADD += $(qemu_LDADDS) $(GNULIB_LIBS) +endif WITH_QEMU + if WITH_LIBVIRTD libvirtdconftest_SOURCES = \ libvirtdconftest.c testutils.h testutils.c \ @@ -1042,7 +1057,7 @@ if WITH_QEMU securityselinuxlabeltest_SOURCES = \ securityselinuxlabeltest.c testutils.h testutils.c \ testutilsqemu.h testutilsqemu.c -securityselinuxlabeltest_LDADD = $(qemu_LDADDS) $(SELINUX_LIBS) +securityselinuxlabeltest_LDADD = $(qemu_LDADDS) $(LDADDS) $(SELINUX_LIBS) securityselinuxlabeltest_DEPENDENCIES = libsecurityselinuxhelper.la \ ../src/libvirt.la endif WITH_QEMU @@ -1132,8 +1147,13 @@ fchosttest_SOURCES = \ fchosttest.c testutils.h testutils.c fchosttest_LDADD = $(LDADDS) +scsihosttest_SOURCES = \ + scsihosttest.c testutils.h testutils.c +scsihosttest_LDADD = $(LDADDS) + else ! WITH_LINUX EXTRA_DIST += fchosttest.c +EXTRA_DIST += scsihosttest.c endif ! WITH_LINUX if WITH_LINUX diff --git a/tests/Makefile.in b/tests/Makefile.in index cbf7d17cd..8a699fba1 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -89,7 +89,7 @@ host_triplet = @host@ @WITH_REMOTE_TRUE@ $(NULL) @WITH_GNUTLS_TRUE@@WITH_REMOTE_TRUE@am__append_4 = virnettlscontexttest virnettlssessiontest -@WITH_LINUX_TRUE@am__append_5 = fchosttest +@WITH_LINUX_TRUE@am__append_5 = fchosttest scsihosttest @WITH_LIBVIRTD_TRUE@am__append_6 = fdstreamtest @WITH_DBUS_TRUE@am__append_7 = virdbustest \ @WITH_DBUS_TRUE@ virsystemdtest @@ -209,24 +209,27 @@ TESTS = $(am__EXEEXT_28) $(am__EXEEXT_31) @WITH_NETWORK_FALSE@am__append_51 = networkxml2conftest.c @WITH_STORAGE_SHEEPDOG_FALSE@am__append_52 = storagebackendsheepdogtest.c @WITH_STORAGE_FALSE@am__append_53 = storagevolxml2argvtest.c -@WITH_LIBVIRTD_FALSE@am__append_54 = libvirtdconftest.c -@HAVE_LIBTASN1_TRUE@@WITH_GNUTLS_TRUE@am__append_55 = pkix_asn1_tab.c -@HAVE_LIBTASN1_TRUE@@WITH_GNUTLS_TRUE@am__append_56 = -ltasn1 +@WITH_QEMU_TRUE@am__append_54 = testutilsqemu.c testutilsqemu.h +@WITH_QEMU_TRUE@am__append_55 = $(qemu_LDADDS) $(GNULIB_LIBS) +@WITH_LIBVIRTD_FALSE@am__append_56 = libvirtdconftest.c @HAVE_LIBTASN1_TRUE@@WITH_GNUTLS_TRUE@am__append_57 = pkix_asn1_tab.c @HAVE_LIBTASN1_TRUE@@WITH_GNUTLS_TRUE@am__append_58 = -ltasn1 -@HAVE_LIBTASN1_FALSE@@WITH_GNUTLS_TRUE@am__append_59 = pkix_asn1_tab.c -@WITH_GNUTLS_FALSE@am__append_60 = \ +@HAVE_LIBTASN1_TRUE@@WITH_GNUTLS_TRUE@am__append_59 = pkix_asn1_tab.c +@HAVE_LIBTASN1_TRUE@@WITH_GNUTLS_TRUE@am__append_60 = -ltasn1 +@HAVE_LIBTASN1_FALSE@@WITH_GNUTLS_TRUE@am__append_61 = pkix_asn1_tab.c +@WITH_GNUTLS_FALSE@am__append_62 = \ @WITH_GNUTLS_FALSE@ virnettlscontexttest.c virnettlssessiontest.c \ @WITH_GNUTLS_FALSE@ virnettlshelpers.h virnettlshelpers.c \ @WITH_GNUTLS_FALSE@ testutils.h testutils.c pkix_asn1_tab.c @WITH_SELINUX_FALSE@viridentitytest_DEPENDENCIES = \ @WITH_SELINUX_FALSE@ $(am__DEPENDENCIES_2) -@WITH_DBUS_FALSE@am__append_61 = virdbustest.c virmockdbus.c virsystemdtest.c -@WITH_ATTR_TRUE@@WITH_SECDRIVER_SELINUX_TRUE@@WITH_TESTS_TRUE@am__append_62 = libsecurityselinuxhelper.la -@WITH_ATTR_TRUE@@WITH_SECDRIVER_SELINUX_TRUE@@WITH_TESTS_FALSE@am__append_63 = libsecurityselinuxhelper.la -@WITH_LINUX_FALSE@am__append_64 = fchosttest.c virscsitest.c -@WITH_CIL_FALSE@am__append_65 = objectlocking.ml +@WITH_DBUS_FALSE@am__append_63 = virdbustest.c virmockdbus.c virsystemdtest.c +@WITH_ATTR_TRUE@@WITH_SECDRIVER_SELINUX_TRUE@@WITH_TESTS_TRUE@am__append_64 = libsecurityselinuxhelper.la +@WITH_ATTR_TRUE@@WITH_SECDRIVER_SELINUX_TRUE@@WITH_TESTS_FALSE@am__append_65 = libsecurityselinuxhelper.la +@WITH_LINUX_FALSE@am__append_66 = fchosttest.c scsihosttest.c \ +@WITH_LINUX_FALSE@ virscsitest.c +@WITH_CIL_FALSE@am__append_67 = objectlocking.ml subdir = tests DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/mkinstalldirs \ @@ -520,7 +523,8 @@ virusbmock_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ @WITH_REMOTE_TRUE@ virnetserverclienttest$(EXEEXT) @WITH_GNUTLS_TRUE@@WITH_REMOTE_TRUE@am__EXEEXT_2 = virnettlscontexttest$(EXEEXT) \ @WITH_GNUTLS_TRUE@@WITH_REMOTE_TRUE@ virnettlssessiontest$(EXEEXT) -@WITH_LINUX_TRUE@am__EXEEXT_3 = fchosttest$(EXEEXT) +@WITH_LINUX_TRUE@am__EXEEXT_3 = fchosttest$(EXEEXT) \ +@WITH_LINUX_TRUE@ scsihosttest$(EXEEXT) @WITH_LIBVIRTD_TRUE@am__EXEEXT_4 = fdstreamtest$(EXEEXT) @WITH_DBUS_TRUE@am__EXEEXT_5 = virdbustest$(EXEEXT) \ @WITH_DBUS_TRUE@ virsystemdtest$(EXEEXT) @@ -582,14 +586,15 @@ am__EXEEXT_28 = virshtest$(EXEEXT) sockettest$(EXEEXT) \ virstringtest$(EXEEXT) virportallocatortest$(EXEEXT) \ sysinfotest$(EXEEXT) virnetdevbandwidthtest$(EXEEXT) \ virkmodtest$(EXEEXT) vircapstest$(EXEEXT) \ - domainconftest$(EXEEXT) virhostdevtest$(EXEEXT) \ - vircaps2xmltest$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \ - $(am__EXEEXT_3) $(am__EXEEXT_4) $(am__EXEEXT_5) \ - $(am__EXEEXT_6) $(am__EXEEXT_7) $(am__EXEEXT_8) \ - $(am__EXEEXT_9) $(am__EXEEXT_10) $(am__EXEEXT_11) \ - $(am__EXEEXT_12) $(am__EXEEXT_13) $(am__EXEEXT_14) \ - $(am__EXEEXT_15) $(am__EXEEXT_16) $(am__EXEEXT_17) \ - $(am__EXEEXT_18) $(am__EXEEXT_19) networkxml2xmltest$(EXEEXT) \ + domaincapstest$(EXEEXT) domainconftest$(EXEEXT) \ + virhostdevtest$(EXEEXT) vircaps2xmltest$(EXEEXT) \ + $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ + $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) \ + $(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \ + $(am__EXEEXT_10) $(am__EXEEXT_11) $(am__EXEEXT_12) \ + $(am__EXEEXT_13) $(am__EXEEXT_14) $(am__EXEEXT_15) \ + $(am__EXEEXT_16) $(am__EXEEXT_17) $(am__EXEEXT_18) \ + $(am__EXEEXT_19) networkxml2xmltest$(EXEEXT) \ networkxml2xmlupdatetest$(EXEEXT) $(am__EXEEXT_20) \ $(am__EXEEXT_21) nwfilterxml2xmltest$(EXEEXT) $(am__EXEEXT_22) \ $(am__EXEEXT_23) $(am__EXEEXT_24) $(am__EXEEXT_25) \ @@ -636,6 +641,13 @@ commandtest_DEPENDENCIES = $(am__DEPENDENCIES_2) am_cputest_OBJECTS = cputest.$(OBJEXT) testutils.$(OBJEXT) cputest_OBJECTS = $(am_cputest_OBJECTS) cputest_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) +am__domaincapstest_SOURCES_DIST = domaincapstest.c testutils.h \ + testutils.c testutilsqemu.c testutilsqemu.h +@WITH_QEMU_TRUE@am__objects_2 = testutilsqemu.$(OBJEXT) +am_domaincapstest_OBJECTS = domaincapstest.$(OBJEXT) \ + testutils.$(OBJEXT) $(am__objects_2) +domaincapstest_OBJECTS = $(am_domaincapstest_OBJECTS) +domaincapstest_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__append_55) am_domainconftest_OBJECTS = domainconftest.$(OBJEXT) \ testutils.$(OBJEXT) domainconftest_OBJECTS = $(am_domainconftest_OBJECTS) @@ -648,12 +660,8 @@ am__domainsnapshotxml2xmltest_SOURCES_DIST = \ @WITH_QEMU_TRUE@ testutilsqemu.$(OBJEXT) testutils.$(OBJEXT) domainsnapshotxml2xmltest_OBJECTS = \ $(am_domainsnapshotxml2xmltest_OBJECTS) -@WITH_QEMU_TRUE@am__DEPENDENCIES_4 = \ -@WITH_QEMU_TRUE@ ../src/libvirt_driver_qemu_impl.la \ -@WITH_QEMU_TRUE@ $(am__append_39) $(am__append_40) \ -@WITH_QEMU_TRUE@ $(am__append_41) $(am__DEPENDENCIES_2) @WITH_QEMU_TRUE@domainsnapshotxml2xmltest_DEPENDENCIES = \ -@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@ $(qemu_LDADDS) $(am__DEPENDENCIES_2) am__esxutilstest_SOURCES_DIST = esxutilstest.c testutils.c testutils.h @WITH_ESX_TRUE@am_esxutilstest_OBJECTS = esxutilstest.$(OBJEXT) \ @WITH_ESX_TRUE@ testutils.$(OBJEXT) @@ -693,15 +701,15 @@ am__lxcconf2xmltest_SOURCES_DIST = lxcconf2xmltest.c testutils.c \ @WITH_LXC_TRUE@am_lxcconf2xmltest_OBJECTS = lxcconf2xmltest.$(OBJEXT) \ @WITH_LXC_TRUE@ testutils.$(OBJEXT) lxcconf2xmltest_OBJECTS = $(am_lxcconf2xmltest_OBJECTS) -@WITH_LXC_TRUE@am__DEPENDENCIES_5 = ../src/libvirt_driver_lxc_impl.la \ +@WITH_LXC_TRUE@am__DEPENDENCIES_4 = ../src/libvirt_driver_lxc_impl.la \ @WITH_LXC_TRUE@ $(am__append_43) $(am__DEPENDENCIES_2) -@WITH_LXC_TRUE@lxcconf2xmltest_DEPENDENCIES = $(am__DEPENDENCIES_5) +@WITH_LXC_TRUE@lxcconf2xmltest_DEPENDENCIES = $(am__DEPENDENCIES_4) am__lxcxml2xmltest_SOURCES_DIST = lxcxml2xmltest.c testutilslxc.c \ testutilslxc.h testutils.c testutils.h @WITH_LXC_TRUE@am_lxcxml2xmltest_OBJECTS = lxcxml2xmltest.$(OBJEXT) \ @WITH_LXC_TRUE@ testutilslxc.$(OBJEXT) testutils.$(OBJEXT) lxcxml2xmltest_OBJECTS = $(am_lxcxml2xmltest_OBJECTS) -@WITH_LXC_TRUE@lxcxml2xmltest_DEPENDENCIES = $(am__DEPENDENCIES_5) +@WITH_LXC_TRUE@lxcxml2xmltest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_metadatatest_OBJECTS = metadatatest.$(OBJEXT) testutils.$(OBJEXT) metadatatest_OBJECTS = $(am_metadatatest_OBJECTS) metadatatest_DEPENDENCIES = $(am__DEPENDENCIES_2) \ @@ -786,15 +794,16 @@ am__qemuagenttest_SOURCES_DIST = qemuagenttest.c testutils.c \ @WITH_QEMU_TRUE@ testutils.$(OBJEXT) testutilsqemu.$(OBJEXT) qemuagenttest_OBJECTS = $(am_qemuagenttest_OBJECTS) @WITH_QEMU_TRUE@qemuagenttest_DEPENDENCIES = \ -@WITH_QEMU_TRUE@ libqemumonitortestutils.la \ -@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@ libqemumonitortestutils.la $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) am__qemuargv2xmltest_SOURCES_DIST = qemuargv2xmltest.c testutilsqemu.c \ testutilsqemu.h testutils.c testutils.h @WITH_QEMU_TRUE@am_qemuargv2xmltest_OBJECTS = \ @WITH_QEMU_TRUE@ qemuargv2xmltest.$(OBJEXT) \ @WITH_QEMU_TRUE@ testutilsqemu.$(OBJEXT) testutils.$(OBJEXT) qemuargv2xmltest_OBJECTS = $(am_qemuargv2xmltest_OBJECTS) -@WITH_QEMU_TRUE@qemuargv2xmltest_DEPENDENCIES = $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@qemuargv2xmltest_DEPENDENCIES = $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) am__qemucapabilitiestest_SOURCES_DIST = qemucapabilitiestest.c \ testutils.c testutils.h testutilsqemu.c testutilsqemu.h @WITH_QEMU_TRUE@am_qemucapabilitiestest_OBJECTS = \ @@ -802,19 +811,21 @@ am__qemucapabilitiestest_SOURCES_DIST = qemucapabilitiestest.c \ @WITH_QEMU_TRUE@ testutils.$(OBJEXT) testutilsqemu.$(OBJEXT) qemucapabilitiestest_OBJECTS = $(am_qemucapabilitiestest_OBJECTS) @WITH_QEMU_TRUE@qemucapabilitiestest_DEPENDENCIES = \ -@WITH_QEMU_TRUE@ libqemumonitortestutils.la \ -@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@ libqemumonitortestutils.la $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) am__qemucaps2xmltest_SOURCES_DIST = qemucaps2xmltest.c testutils.c \ testutils.h @WITH_QEMU_TRUE@am_qemucaps2xmltest_OBJECTS = \ @WITH_QEMU_TRUE@ qemucaps2xmltest.$(OBJEXT) testutils.$(OBJEXT) qemucaps2xmltest_OBJECTS = $(am_qemucaps2xmltest_OBJECTS) -@WITH_QEMU_TRUE@qemucaps2xmltest_DEPENDENCIES = $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@qemucaps2xmltest_DEPENDENCIES = $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) am__qemuhelptest_SOURCES_DIST = qemuhelptest.c testutils.c testutils.h @WITH_QEMU_TRUE@am_qemuhelptest_OBJECTS = qemuhelptest.$(OBJEXT) \ @WITH_QEMU_TRUE@ testutils.$(OBJEXT) qemuhelptest_OBJECTS = $(am_qemuhelptest_OBJECTS) -@WITH_QEMU_TRUE@qemuhelptest_DEPENDENCIES = $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@qemuhelptest_DEPENDENCIES = $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) am__qemuhotplugtest_SOURCES_DIST = qemuhotplugtest.c testutils.c \ testutils.h testutilsqemu.c testutilsqemu.h @WITH_QEMU_TRUE@am_qemuhotplugtest_OBJECTS = \ @@ -822,8 +833,8 @@ am__qemuhotplugtest_SOURCES_DIST = qemuhotplugtest.c testutils.c \ @WITH_QEMU_TRUE@ testutilsqemu.$(OBJEXT) qemuhotplugtest_OBJECTS = $(am_qemuhotplugtest_OBJECTS) @WITH_QEMU_TRUE@qemuhotplugtest_DEPENDENCIES = \ -@WITH_QEMU_TRUE@ libqemumonitortestutils.la \ -@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@ libqemumonitortestutils.la $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) am__qemumonitorjsontest_SOURCES_DIST = qemumonitorjsontest.c \ testutils.c testutils.h testutilsqemu.c testutilsqemu.h @WITH_QEMU_TRUE@am_qemumonitorjsontest_OBJECTS = \ @@ -831,40 +842,48 @@ am__qemumonitorjsontest_SOURCES_DIST = qemumonitorjsontest.c \ @WITH_QEMU_TRUE@ testutils.$(OBJEXT) testutilsqemu.$(OBJEXT) qemumonitorjsontest_OBJECTS = $(am_qemumonitorjsontest_OBJECTS) @WITH_QEMU_TRUE@qemumonitorjsontest_DEPENDENCIES = \ -@WITH_QEMU_TRUE@ libqemumonitortestutils.la \ -@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@ libqemumonitortestutils.la $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) am__qemumonitortest_SOURCES_DIST = qemumonitortest.c testutils.c \ testutils.h @WITH_QEMU_TRUE@am_qemumonitortest_OBJECTS = \ @WITH_QEMU_TRUE@ qemumonitortest.$(OBJEXT) testutils.$(OBJEXT) qemumonitortest_OBJECTS = $(am_qemumonitortest_OBJECTS) -@WITH_QEMU_TRUE@qemumonitortest_DEPENDENCIES = $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@qemumonitortest_DEPENDENCIES = $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) am__qemuxml2argvtest_SOURCES_DIST = qemuxml2argvtest.c testutilsqemu.c \ testutilsqemu.h testutils.c testutils.h @WITH_QEMU_TRUE@am_qemuxml2argvtest_OBJECTS = \ @WITH_QEMU_TRUE@ qemuxml2argvtest.$(OBJEXT) \ @WITH_QEMU_TRUE@ testutilsqemu.$(OBJEXT) testutils.$(OBJEXT) qemuxml2argvtest_OBJECTS = $(am_qemuxml2argvtest_OBJECTS) -@WITH_QEMU_TRUE@qemuxml2argvtest_DEPENDENCIES = $(am__DEPENDENCIES_4) \ -@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_1) +@WITH_QEMU_TRUE@qemuxml2argvtest_DEPENDENCIES = $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) am__qemuxml2xmltest_SOURCES_DIST = qemuxml2xmltest.c testutilsqemu.c \ testutilsqemu.h testutils.c testutils.h @WITH_QEMU_TRUE@am_qemuxml2xmltest_OBJECTS = \ @WITH_QEMU_TRUE@ qemuxml2xmltest.$(OBJEXT) \ @WITH_QEMU_TRUE@ testutilsqemu.$(OBJEXT) testutils.$(OBJEXT) qemuxml2xmltest_OBJECTS = $(am_qemuxml2xmltest_OBJECTS) -@WITH_QEMU_TRUE@qemuxml2xmltest_DEPENDENCIES = $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@qemuxml2xmltest_DEPENDENCIES = $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) am__qemuxmlnstest_SOURCES_DIST = qemuxmlnstest.c testutilsqemu.c \ testutilsqemu.h testutils.c testutils.h @WITH_QEMU_TRUE@am_qemuxmlnstest_OBJECTS = qemuxmlnstest.$(OBJEXT) \ @WITH_QEMU_TRUE@ testutilsqemu.$(OBJEXT) testutils.$(OBJEXT) qemuxmlnstest_OBJECTS = $(am_qemuxmlnstest_OBJECTS) -@WITH_QEMU_TRUE@qemuxmlnstest_DEPENDENCIES = $(am__DEPENDENCIES_4) +@WITH_QEMU_TRUE@qemuxmlnstest_DEPENDENCIES = $(qemu_LDADDS) \ +@WITH_QEMU_TRUE@ $(am__DEPENDENCIES_2) am__reconnect_SOURCES_DIST = reconnect.c testutils.h testutils.c @WITH_XEN_TRUE@am_reconnect_OBJECTS = reconnect.$(OBJEXT) \ @WITH_XEN_TRUE@ testutils.$(OBJEXT) reconnect_OBJECTS = $(am_reconnect_OBJECTS) @WITH_XEN_TRUE@reconnect_DEPENDENCIES = $(am__DEPENDENCIES_2) +am__scsihosttest_SOURCES_DIST = scsihosttest.c testutils.h testutils.c +@WITH_LINUX_TRUE@am_scsihosttest_OBJECTS = scsihosttest.$(OBJEXT) \ +@WITH_LINUX_TRUE@ testutils.$(OBJEXT) +scsihosttest_OBJECTS = $(am_scsihosttest_OBJECTS) +@WITH_LINUX_TRUE@scsihosttest_DEPENDENCIES = $(am__DEPENDENCIES_2) am_seclabeltest_OBJECTS = seclabeltest.$(OBJEXT) seclabeltest_OBJECTS = $(am_seclabeltest_OBJECTS) seclabeltest_DEPENDENCIES = $(am__DEPENDENCIES_2) @@ -890,9 +909,9 @@ am__sexpr2xmltest_SOURCES_DIST = sexpr2xmltest.c testutilsxen.c \ @WITH_XEN_TRUE@am_sexpr2xmltest_OBJECTS = sexpr2xmltest.$(OBJEXT) \ @WITH_XEN_TRUE@ testutilsxen.$(OBJEXT) testutils.$(OBJEXT) sexpr2xmltest_OBJECTS = $(am_sexpr2xmltest_OBJECTS) -@WITH_XEN_TRUE@am__DEPENDENCIES_6 = ../src/libvirt_driver_xen_impl.la \ +@WITH_XEN_TRUE@am__DEPENDENCIES_5 = ../src/libvirt_driver_xen_impl.la \ @WITH_XEN_TRUE@ $(am__DEPENDENCIES_2) -@WITH_XEN_TRUE@sexpr2xmltest_DEPENDENCIES = $(am__DEPENDENCIES_6) +@WITH_XEN_TRUE@sexpr2xmltest_DEPENDENCIES = $(am__DEPENDENCIES_5) am_shunloadtest_OBJECTS = shunloadtest.$(OBJEXT) shunloadtest_OBJECTS = $(am_shunloadtest_OBJECTS) am_sockettest_OBJECTS = sockettest.$(OBJEXT) testutils.$(OBJEXT) @@ -905,7 +924,7 @@ am__statstest_SOURCES_DIST = statstest.c testutils.h testutils.c @WITH_XEN_TRUE@am_statstest_OBJECTS = statstest.$(OBJEXT) \ @WITH_XEN_TRUE@ testutils.$(OBJEXT) statstest_OBJECTS = $(am_statstest_OBJECTS) -@WITH_XEN_TRUE@statstest_DEPENDENCIES = $(am__DEPENDENCIES_6) +@WITH_XEN_TRUE@statstest_DEPENDENCIES = $(am__DEPENDENCIES_5) am__storagebackendsheepdogtest_SOURCES_DIST = \ storagebackendsheepdogtest.c testutils.c testutils.h @WITH_STORAGE_SHEEPDOG_TRUE@am_storagebackendsheepdogtest_OBJECTS = storagebackendsheepdogtest.$(OBJEXT) \ @@ -1073,12 +1092,12 @@ virnetsockettest_DEPENDENCIES = $(am__DEPENDENCIES_2) am__virnettlscontexttest_SOURCES_DIST = virnettlscontexttest.c \ virnettlshelpers.h virnettlshelpers.c testutils.h testutils.c \ pkix_asn1_tab.c -@HAVE_LIBTASN1_TRUE@@WITH_GNUTLS_TRUE@am__objects_2 = \ +@HAVE_LIBTASN1_TRUE@@WITH_GNUTLS_TRUE@am__objects_3 = \ @HAVE_LIBTASN1_TRUE@@WITH_GNUTLS_TRUE@ pkix_asn1_tab.$(OBJEXT) @WITH_GNUTLS_TRUE@am_virnettlscontexttest_OBJECTS = \ @WITH_GNUTLS_TRUE@ virnettlscontexttest.$(OBJEXT) \ @WITH_GNUTLS_TRUE@ virnettlshelpers.$(OBJEXT) \ -@WITH_GNUTLS_TRUE@ testutils.$(OBJEXT) $(am__objects_2) +@WITH_GNUTLS_TRUE@ testutils.$(OBJEXT) $(am__objects_3) virnettlscontexttest_OBJECTS = $(am_virnettlscontexttest_OBJECTS) @WITH_GNUTLS_TRUE@virnettlscontexttest_DEPENDENCIES = \ @WITH_GNUTLS_TRUE@ $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ @@ -1089,7 +1108,7 @@ am__virnettlssessiontest_SOURCES_DIST = virnettlssessiontest.c \ @WITH_GNUTLS_TRUE@am_virnettlssessiontest_OBJECTS = \ @WITH_GNUTLS_TRUE@ virnettlssessiontest.$(OBJEXT) \ @WITH_GNUTLS_TRUE@ virnettlshelpers.$(OBJEXT) \ -@WITH_GNUTLS_TRUE@ testutils.$(OBJEXT) $(am__objects_2) +@WITH_GNUTLS_TRUE@ testutils.$(OBJEXT) $(am__objects_3) virnettlssessiontest_OBJECTS = $(am_virnettlssessiontest_OBJECTS) @WITH_GNUTLS_TRUE@virnettlssessiontest_DEPENDENCIES = \ @WITH_GNUTLS_TRUE@ $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ @@ -1156,19 +1175,19 @@ am__xencapstest_SOURCES_DIST = xencapstest.c testutils.h testutils.c @WITH_XEN_TRUE@am_xencapstest_OBJECTS = xencapstest.$(OBJEXT) \ @WITH_XEN_TRUE@ testutils.$(OBJEXT) xencapstest_OBJECTS = $(am_xencapstest_OBJECTS) -@WITH_XEN_TRUE@xencapstest_DEPENDENCIES = $(am__DEPENDENCIES_6) +@WITH_XEN_TRUE@xencapstest_DEPENDENCIES = $(am__DEPENDENCIES_5) am__xmconfigtest_SOURCES_DIST = xmconfigtest.c testutilsxen.c \ testutilsxen.h testutils.c testutils.h @WITH_XEN_TRUE@am_xmconfigtest_OBJECTS = xmconfigtest.$(OBJEXT) \ @WITH_XEN_TRUE@ testutilsxen.$(OBJEXT) testutils.$(OBJEXT) xmconfigtest_OBJECTS = $(am_xmconfigtest_OBJECTS) -@WITH_XEN_TRUE@xmconfigtest_DEPENDENCIES = $(am__DEPENDENCIES_6) +@WITH_XEN_TRUE@xmconfigtest_DEPENDENCIES = $(am__DEPENDENCIES_5) am__xml2sexprtest_SOURCES_DIST = xml2sexprtest.c testutilsxen.c \ testutilsxen.h testutils.c testutils.h @WITH_XEN_TRUE@am_xml2sexprtest_OBJECTS = xml2sexprtest.$(OBJEXT) \ @WITH_XEN_TRUE@ testutilsxen.$(OBJEXT) testutils.$(OBJEXT) xml2sexprtest_OBJECTS = $(am_xml2sexprtest_OBJECTS) -@WITH_XEN_TRUE@xml2sexprtest_DEPENDENCIES = $(am__DEPENDENCIES_6) +@WITH_XEN_TRUE@xml2sexprtest_DEPENDENCIES = $(am__DEPENDENCIES_5) am__xml2vmxtest_SOURCES_DIST = xml2vmxtest.c testutils.c testutils.h @WITH_VMX_TRUE@am_xml2vmxtest_OBJECTS = xml2vmxtest.$(OBJEXT) \ @WITH_VMX_TRUE@ testutils.$(OBJEXT) @@ -1218,13 +1237,14 @@ SOURCES = $(bhyvexml2argvmock_la_SOURCES) \ $(virpcimock_la_SOURCES) $(virusbmock_la_SOURCES) \ $(bhyvexml2argvtest_SOURCES) $(bhyvexml2xmltest_SOURCES) \ $(commandhelper_SOURCES) $(commandtest_SOURCES) \ - $(cputest_SOURCES) $(domainconftest_SOURCES) \ - $(domainsnapshotxml2xmltest_SOURCES) $(esxutilstest_SOURCES) \ - $(eventtest_SOURCES) $(fchosttest_SOURCES) \ - $(fdstreamtest_SOURCES) $(interfacexml2xmltest_SOURCES) \ - $(jsontest_SOURCES) $(libvirtdconftest_SOURCES) \ - $(lxcconf2xmltest_SOURCES) $(lxcxml2xmltest_SOURCES) \ - $(metadatatest_SOURCES) $(networkxml2conftest_SOURCES) \ + $(cputest_SOURCES) $(domaincapstest_SOURCES) \ + $(domainconftest_SOURCES) $(domainsnapshotxml2xmltest_SOURCES) \ + $(esxutilstest_SOURCES) $(eventtest_SOURCES) \ + $(fchosttest_SOURCES) $(fdstreamtest_SOURCES) \ + $(interfacexml2xmltest_SOURCES) $(jsontest_SOURCES) \ + $(libvirtdconftest_SOURCES) $(lxcconf2xmltest_SOURCES) \ + $(lxcxml2xmltest_SOURCES) $(metadatatest_SOURCES) \ + $(networkxml2conftest_SOURCES) \ $(networkxml2firewalltest_SOURCES) \ $(networkxml2xmltest_SOURCES) \ $(networkxml2xmlupdatetest_SOURCES) \ @@ -1239,7 +1259,8 @@ SOURCES = $(bhyvexml2argvmock_la_SOURCES) \ $(qemumonitorjsontest_SOURCES) $(qemumonitortest_SOURCES) \ $(qemuxml2argvtest_SOURCES) $(qemuxml2xmltest_SOURCES) \ $(qemuxmlnstest_SOURCES) $(reconnect_SOURCES) \ - $(seclabeltest_SOURCES) $(secretxml2xmltest_SOURCES) \ + $(scsihosttest_SOURCES) $(seclabeltest_SOURCES) \ + $(secretxml2xmltest_SOURCES) \ $(securityselinuxlabeltest_SOURCES) \ $(securityselinuxtest_SOURCES) $(sexpr2xmltest_SOURCES) \ $(shunloadtest_SOURCES) $(sockettest_SOURCES) $(ssh_SOURCES) \ @@ -1284,7 +1305,7 @@ DIST_SOURCES = $(am__bhyvexml2argvmock_la_SOURCES_DIST) \ $(am__bhyvexml2argvtest_SOURCES_DIST) \ $(am__bhyvexml2xmltest_SOURCES_DIST) $(commandhelper_SOURCES) \ $(commandtest_SOURCES) $(cputest_SOURCES) \ - $(domainconftest_SOURCES) \ + $(am__domaincapstest_SOURCES_DIST) $(domainconftest_SOURCES) \ $(am__domainsnapshotxml2xmltest_SOURCES_DIST) \ $(am__esxutilstest_SOURCES_DIST) $(am__eventtest_SOURCES_DIST) \ $(am__fchosttest_SOURCES_DIST) $(fdstreamtest_SOURCES) \ @@ -1313,8 +1334,8 @@ DIST_SOURCES = $(am__bhyvexml2argvmock_la_SOURCES_DIST) \ $(am__qemuxml2argvtest_SOURCES_DIST) \ $(am__qemuxml2xmltest_SOURCES_DIST) \ $(am__qemuxmlnstest_SOURCES_DIST) \ - $(am__reconnect_SOURCES_DIST) $(seclabeltest_SOURCES) \ - $(secretxml2xmltest_SOURCES) \ + $(am__reconnect_SOURCES_DIST) $(am__scsihosttest_SOURCES_DIST) \ + $(seclabeltest_SOURCES) $(secretxml2xmltest_SOURCES) \ $(am__securityselinuxlabeltest_SOURCES_DIST) \ $(am__securityselinuxtest_SOURCES_DIST) \ $(am__sexpr2xmltest_SOURCES_DIST) $(shunloadtest_SOURCES) \ @@ -1570,9 +1591,9 @@ AM_RECURSIVE_TARGETS = check recheck @WITH_LIBVIRTD_TRUE@ virsh-synopsis virsh-undefine am__EXEEXT_31 = capabilityschematest interfaceschematest \ networkschematest storagepoolschematest storagevolschematest \ - domainschematest nodedevschematest nwfilterschematest \ - domainsnapshotschematest secretschematest $(am__EXEEXT_30) \ - $(am__append_32) + domaincapsschematest domainschematest nodedevschematest \ + nwfilterschematest domainsnapshotschematest secretschematest \ + $(am__EXEEXT_30) $(am__append_32) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver @@ -3068,7 +3089,8 @@ LDADDS = \ EXTRA_DIST = bhyvexml2argvdata bhyvexml2xmloutdata \ capabilityschemadata capabilityschematest commanddata confdata \ - cputestdata domainconfdata domainschemadata domainschematest \ + cputestdata domaincapsschemadata domaincapsschematest \ + domainconfdata domainschemadata domainschematest \ domainsnapshotschematest domainsnapshotxml2xmlin \ domainsnapshotxml2xmlout fchostdata interfaceschemadata \ lxcconf2xmldata lxcxml2xmldata lxcxml2xmloutdata \ @@ -3095,10 +3117,10 @@ EXTRA_DIST = bhyvexml2argvdata bhyvexml2xmloutdata \ $(am__append_45) openvzutilstest.conf $(am__append_46) \ $(am__append_47) $(am__append_48) $(am__append_49) \ $(am__append_50) $(am__append_51) $(am__append_52) \ - $(am__append_53) $(am__append_54) $(am__append_59) \ - $(am__append_60) $(am__append_61) securityselinuxtest.c \ + $(am__append_53) $(am__append_56) $(am__append_61) \ + $(am__append_62) $(am__append_63) securityselinuxtest.c \ securityselinuxlabeltest.c securityselinuxhelper.c \ - $(am__append_64) $(am__append_65) + $(am__append_66) $(am__append_67) test_helpers = commandhelper ssh test_conf test_programs = virshtest sockettest nodeinfotest virbuftest \ commandtest seclabeltest virhashtest viratomictest utiltest \ @@ -3107,16 +3129,16 @@ test_programs = virshtest sockettest nodeinfotest virbuftest \ vircryptotest virpcitest virendiantest virfiletest \ virfirewalltest viriscsitest virkeycodetest virlockspacetest \ virlogtest virstringtest virportallocatortest sysinfotest \ - virnetdevbandwidthtest virkmodtest vircapstest domainconftest \ - virhostdevtest vircaps2xmltest $(NULL) $(am__append_3) \ - $(am__append_4) $(am__append_5) $(am__append_6) \ - $(am__append_7) $(am__append_8) $(am__append_9) \ - $(am__append_10) $(am__append_11) $(am__append_12) \ - $(am__append_13) $(am__append_14) $(am__append_15) \ - $(am__append_16) $(am__append_17) $(am__append_18) \ - $(am__append_19) $(am__append_20) $(am__append_21) \ - networkxml2xmltest networkxml2xmlupdatetest $(NULL) \ - $(am__append_22) $(am__append_23) nwfilterxml2xmltest \ + virnetdevbandwidthtest virkmodtest vircapstest domaincapstest \ + domainconftest virhostdevtest vircaps2xmltest $(NULL) \ + $(am__append_3) $(am__append_4) $(am__append_5) \ + $(am__append_6) $(am__append_7) $(am__append_8) \ + $(am__append_9) $(am__append_10) $(am__append_11) \ + $(am__append_12) $(am__append_13) $(am__append_14) \ + $(am__append_15) $(am__append_16) $(am__append_17) \ + $(am__append_18) $(am__append_19) $(am__append_20) \ + $(am__append_21) networkxml2xmltest networkxml2xmlupdatetest \ + $(NULL) $(am__append_22) $(am__append_23) nwfilterxml2xmltest \ $(am__append_24) $(am__append_25) $(am__append_26) \ $(am__append_27) storagevolxml2xmltest storagepoolxml2xmltest \ nodedevxml2xmltest interfacexml2xmltest cputest metadatatest \ @@ -3128,17 +3150,17 @@ ssh_SOURCES = ssh.c ssh_LDADD = $(COVERAGE_LDFLAGS) test_scripts = capabilityschematest interfaceschematest \ networkschematest storagepoolschematest storagevolschematest \ - domainschematest nodedevschematest nwfilterschematest \ - domainsnapshotschematest secretschematest $(am__append_29) \ - $(am__append_32) + domaincapsschematest domainschematest nodedevschematest \ + nwfilterschematest domainsnapshotschematest secretschematest \ + $(am__append_29) $(am__append_32) test_libraries = libshunload.la libvirportallocatormock.la \ virnetserverclientmock.la vircgroupmock.la virpcimock.la \ $(NULL) $(am__append_34) $(am__append_35) $(am__append_36) \ $(am__append_37) @WITH_TESTS_TRUE@noinst_LTLIBRARIES = $(test_libraries) \ -@WITH_TESTS_TRUE@ $(am__append_62) +@WITH_TESTS_TRUE@ $(am__append_64) @WITH_TESTS_FALSE@check_LTLIBRARIES = $(test_libraries) \ -@WITH_TESTS_FALSE@ $(am__append_63) +@WITH_TESTS_FALSE@ $(am__append_65) # NB, automake < 1.10 does not provide the real # abs_top_{src/build}dir or builddir variables, so don't rely @@ -3208,12 +3230,12 @@ QEMUMONITORTESTUTILS_SOURCES = \ @WITH_QEMU_TRUE@libqemumonitortestutils_la_SOURCES = $(QEMUMONITORTESTUTILS_SOURCES) @WITH_QEMU_TRUE@qemu_LDADDS = ../src/libvirt_driver_qemu_impl.la \ @WITH_QEMU_TRUE@ $(am__append_39) $(am__append_40) \ -@WITH_QEMU_TRUE@ $(am__append_41) $(LDADDS) +@WITH_QEMU_TRUE@ $(am__append_41) @WITH_QEMU_TRUE@qemuxml2argvtest_SOURCES = \ @WITH_QEMU_TRUE@ qemuxml2argvtest.c testutilsqemu.c testutilsqemu.h \ @WITH_QEMU_TRUE@ testutils.c testutils.h -@WITH_QEMU_TRUE@qemuxml2argvtest_LDADD = $(qemu_LDADDS) $(LIBXML_LIBS) +@WITH_QEMU_TRUE@qemuxml2argvtest_LDADD = $(qemu_LDADDS) $(LDADDS) $(LIBXML_LIBS) @WITH_QEMU_TRUE@qemuxml2argvmock_la_SOURCES = \ @WITH_QEMU_TRUE@ qemuxml2argvmock.c @@ -3225,60 +3247,64 @@ QEMUMONITORTESTUTILS_SOURCES = \ @WITH_QEMU_TRUE@ qemuxml2xmltest.c testutilsqemu.c testutilsqemu.h \ @WITH_QEMU_TRUE@ testutils.c testutils.h -@WITH_QEMU_TRUE@qemuxml2xmltest_LDADD = $(qemu_LDADDS) +@WITH_QEMU_TRUE@qemuxml2xmltest_LDADD = $(qemu_LDADDS) $(LDADDS) @WITH_QEMU_TRUE@qemuxmlnstest_SOURCES = \ @WITH_QEMU_TRUE@ qemuxmlnstest.c testutilsqemu.c testutilsqemu.h \ @WITH_QEMU_TRUE@ testutils.c testutils.h -@WITH_QEMU_TRUE@qemuxmlnstest_LDADD = $(qemu_LDADDS) +@WITH_QEMU_TRUE@qemuxmlnstest_LDADD = $(qemu_LDADDS) $(LDADDS) @WITH_QEMU_TRUE@qemuargv2xmltest_SOURCES = \ @WITH_QEMU_TRUE@ qemuargv2xmltest.c testutilsqemu.c testutilsqemu.h \ @WITH_QEMU_TRUE@ testutils.c testutils.h -@WITH_QEMU_TRUE@qemuargv2xmltest_LDADD = $(qemu_LDADDS) +@WITH_QEMU_TRUE@qemuargv2xmltest_LDADD = $(qemu_LDADDS) $(LDADDS) @WITH_QEMU_TRUE@qemuhelptest_SOURCES = qemuhelptest.c testutils.c testutils.h -@WITH_QEMU_TRUE@qemuhelptest_LDADD = $(qemu_LDADDS) +@WITH_QEMU_TRUE@qemuhelptest_LDADD = $(qemu_LDADDS) $(LDADDS) @WITH_QEMU_TRUE@qemumonitortest_SOURCES = qemumonitortest.c testutils.c testutils.h -@WITH_QEMU_TRUE@qemumonitortest_LDADD = $(qemu_LDADDS) +@WITH_QEMU_TRUE@qemumonitortest_LDADD = $(qemu_LDADDS) $(LDADDS) @WITH_QEMU_TRUE@qemumonitorjsontest_SOURCES = \ @WITH_QEMU_TRUE@ qemumonitorjsontest.c \ @WITH_QEMU_TRUE@ testutils.c testutils.h \ @WITH_QEMU_TRUE@ testutilsqemu.c testutilsqemu.h \ @WITH_QEMU_TRUE@ $(NULL) -@WITH_QEMU_TRUE@qemumonitorjsontest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) +@WITH_QEMU_TRUE@qemumonitorjsontest_LDADD = libqemumonitortestutils.la \ +@WITH_QEMU_TRUE@ $(qemu_LDADDS) $(LDADDS) + @WITH_QEMU_TRUE@qemucapabilitiestest_SOURCES = \ @WITH_QEMU_TRUE@ qemucapabilitiestest.c \ @WITH_QEMU_TRUE@ testutils.c testutils.h \ @WITH_QEMU_TRUE@ testutilsqemu.c testutilsqemu.h \ @WITH_QEMU_TRUE@ $(NULL) -@WITH_QEMU_TRUE@qemucapabilitiestest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) +@WITH_QEMU_TRUE@qemucapabilitiestest_LDADD = libqemumonitortestutils.la \ +@WITH_QEMU_TRUE@ $(qemu_LDADDS) $(LDADDS) + @WITH_QEMU_TRUE@qemucaps2xmltest_SOURCES = \ @WITH_QEMU_TRUE@ qemucaps2xmltest.c \ @WITH_QEMU_TRUE@ testutils.c testutils.h \ @WITH_QEMU_TRUE@ $(NULL) -@WITH_QEMU_TRUE@qemucaps2xmltest_LDADD = $(qemu_LDADDS) +@WITH_QEMU_TRUE@qemucaps2xmltest_LDADD = $(qemu_LDADDS) $(LDADDS) @WITH_QEMU_TRUE@qemuagenttest_SOURCES = \ @WITH_QEMU_TRUE@ qemuagenttest.c \ @WITH_QEMU_TRUE@ testutils.c testutils.h \ @WITH_QEMU_TRUE@ testutilsqemu.c testutilsqemu.h \ @WITH_QEMU_TRUE@ $(NULL) -@WITH_QEMU_TRUE@qemuagenttest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) +@WITH_QEMU_TRUE@qemuagenttest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) $(LDADDS) @WITH_QEMU_TRUE@qemuhotplugtest_SOURCES = \ @WITH_QEMU_TRUE@ qemuhotplugtest.c \ @WITH_QEMU_TRUE@ testutils.c testutils.h \ @WITH_QEMU_TRUE@ testutilsqemu.c testutilsqemu.h \ @WITH_QEMU_TRUE@ $(NULL) -@WITH_QEMU_TRUE@qemuhotplugtest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) +@WITH_QEMU_TRUE@qemuhotplugtest_LDADD = libqemumonitortestutils.la $(qemu_LDADDS) $(LDADDS) @WITH_QEMU_TRUE@domainsnapshotxml2xmltest_SOURCES = \ @WITH_QEMU_TRUE@ domainsnapshotxml2xmltest.c testutilsqemu.c testutilsqemu.h \ @WITH_QEMU_TRUE@ testutils.c testutils.h -@WITH_QEMU_TRUE@domainsnapshotxml2xmltest_LDADD = $(qemu_LDADDS) +@WITH_QEMU_TRUE@domainsnapshotxml2xmltest_LDADD = $(qemu_LDADDS) $(LDADDS) @WITH_LXC_TRUE@lxc_LDADDS = ../src/libvirt_driver_lxc_impl.la \ @WITH_LXC_TRUE@ $(am__append_43) $(LDADDS) @WITH_LXC_TRUE@lxcxml2xmltest_SOURCES = \ @@ -3472,6 +3498,9 @@ vircaps2xmltest_SOURCES = \ vircaps2xmltest.c testutils.h testutils.c vircaps2xmltest_LDADD = $(LDADDS) +domaincapstest_SOURCES = domaincapstest.c testutils.h testutils.c \ + $(am__append_54) +domaincapstest_LDADD = $(LDADDS) $(am__append_55) @WITH_LIBVIRTD_TRUE@libvirtdconftest_SOURCES = \ @WITH_LIBVIRTD_TRUE@ libvirtdconftest.c testutils.h testutils.c \ @WITH_LIBVIRTD_TRUE@ $(NULL) @@ -3502,15 +3531,15 @@ virnetserverclientmock_la_LDFLAGS = -module -avoid-version \ @WITH_GNUTLS_TRUE@virnettlscontexttest_SOURCES = \ @WITH_GNUTLS_TRUE@ virnettlscontexttest.c virnettlshelpers.h \ @WITH_GNUTLS_TRUE@ virnettlshelpers.c testutils.h testutils.c \ -@WITH_GNUTLS_TRUE@ $(am__append_55) +@WITH_GNUTLS_TRUE@ $(am__append_57) @WITH_GNUTLS_TRUE@virnettlscontexttest_LDADD = $(LDADDS) \ -@WITH_GNUTLS_TRUE@ $(GNUTLS_LIBS) $(am__append_56) +@WITH_GNUTLS_TRUE@ $(GNUTLS_LIBS) $(am__append_58) @WITH_GNUTLS_TRUE@virnettlssessiontest_SOURCES = \ @WITH_GNUTLS_TRUE@ virnettlssessiontest.c virnettlshelpers.h \ @WITH_GNUTLS_TRUE@ virnettlshelpers.c testutils.h testutils.c \ -@WITH_GNUTLS_TRUE@ $(am__append_57) +@WITH_GNUTLS_TRUE@ $(am__append_59) @WITH_GNUTLS_TRUE@virnettlssessiontest_LDADD = $(LDADDS) \ -@WITH_GNUTLS_TRUE@ $(GNUTLS_LIBS) $(am__append_58) +@WITH_GNUTLS_TRUE@ $(GNUTLS_LIBS) $(am__append_60) virtimetest_SOURCES = \ virtimetest.c testutils.h testutils.c @@ -3660,7 +3689,7 @@ seclabeltest_LDADD = $(LDADDS) @WITH_ATTR_TRUE@@WITH_QEMU_TRUE@@WITH_SECDRIVER_SELINUX_TRUE@ securityselinuxlabeltest.c testutils.h testutils.c \ @WITH_ATTR_TRUE@@WITH_QEMU_TRUE@@WITH_SECDRIVER_SELINUX_TRUE@ testutilsqemu.h testutilsqemu.c -@WITH_ATTR_TRUE@@WITH_QEMU_TRUE@@WITH_SECDRIVER_SELINUX_TRUE@securityselinuxlabeltest_LDADD = $(qemu_LDADDS) $(SELINUX_LIBS) +@WITH_ATTR_TRUE@@WITH_QEMU_TRUE@@WITH_SECDRIVER_SELINUX_TRUE@securityselinuxlabeltest_LDADD = $(qemu_LDADDS) $(LDADDS) $(SELINUX_LIBS) @WITH_ATTR_TRUE@@WITH_QEMU_TRUE@@WITH_SECDRIVER_SELINUX_TRUE@securityselinuxlabeltest_DEPENDENCIES = libsecurityselinuxhelper.la \ @WITH_ATTR_TRUE@@WITH_QEMU_TRUE@@WITH_SECDRIVER_SELINUX_TRUE@ ../src/libvirt.la @@ -3740,6 +3769,10 @@ objecteventtest_LDADD = $(LDADDS) @WITH_LINUX_TRUE@ fchosttest.c testutils.h testutils.c @WITH_LINUX_TRUE@fchosttest_LDADD = $(LDADDS) +@WITH_LINUX_TRUE@scsihosttest_SOURCES = \ +@WITH_LINUX_TRUE@ scsihosttest.c testutils.h testutils.c + +@WITH_LINUX_TRUE@scsihosttest_LDADD = $(LDADDS) @WITH_LINUX_TRUE@virscsitest_SOURCES = \ @WITH_LINUX_TRUE@ virscsitest.c testutils.h testutils.c @@ -3880,6 +3913,10 @@ cputest$(EXEEXT): $(cputest_OBJECTS) $(cputest_DEPENDENCIES) $(EXTRA_cputest_DEP @rm -f cputest$(EXEEXT) $(AM_V_CCLD)$(LINK) $(cputest_OBJECTS) $(cputest_LDADD) $(LIBS) +domaincapstest$(EXEEXT): $(domaincapstest_OBJECTS) $(domaincapstest_DEPENDENCIES) $(EXTRA_domaincapstest_DEPENDENCIES) + @rm -f domaincapstest$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(domaincapstest_OBJECTS) $(domaincapstest_LDADD) $(LIBS) + domainconftest$(EXEEXT): $(domainconftest_OBJECTS) $(domainconftest_DEPENDENCIES) $(EXTRA_domainconftest_DEPENDENCIES) @rm -f domainconftest$(EXEEXT) $(AM_V_CCLD)$(LINK) $(domainconftest_OBJECTS) $(domainconftest_LDADD) $(LIBS) @@ -4024,6 +4061,10 @@ reconnect$(EXEEXT): $(reconnect_OBJECTS) $(reconnect_DEPENDENCIES) $(EXTRA_recon @rm -f reconnect$(EXEEXT) $(AM_V_CCLD)$(LINK) $(reconnect_OBJECTS) $(reconnect_LDADD) $(LIBS) +scsihosttest$(EXEEXT): $(scsihosttest_OBJECTS) $(scsihosttest_DEPENDENCIES) $(EXTRA_scsihosttest_DEPENDENCIES) + @rm -f scsihosttest$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(scsihosttest_OBJECTS) $(scsihosttest_LDADD) $(LIBS) + seclabeltest$(EXEEXT): $(seclabeltest_OBJECTS) $(seclabeltest_DEPENDENCIES) $(EXTRA_seclabeltest_DEPENDENCIES) @rm -f seclabeltest$(EXEEXT) $(AM_V_CCLD)$(LINK) $(seclabeltest_OBJECTS) $(seclabeltest_LDADD) $(LIBS) @@ -4284,6 +4325,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commandhelper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commandtest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cputest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/domaincapstest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/domainconftest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/domainsnapshotxml2xmltest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/esxutilstest.Po@am__quote@ @@ -4323,6 +4365,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qemuxml2xmltest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qemuxmlnstest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reconnect.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scsihosttest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seclabeltest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secretxml2xmltest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/securityselinuxhelper.Plo@am__quote@ @@ -5046,6 +5089,13 @@ vircapstest.log: vircapstest$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +domaincapstest.log: domaincapstest$(EXEEXT) + @p='domaincapstest$(EXEEXT)'; \ + b='domaincapstest'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) domainconftest.log: domainconftest$(EXEEXT) @p='domainconftest$(EXEEXT)'; \ b='domainconftest'; \ @@ -5109,6 +5159,13 @@ fchosttest.log: fchosttest$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +scsihosttest.log: scsihosttest$(EXEEXT) + @p='scsihosttest$(EXEEXT)'; \ + b='scsihosttest'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) fdstreamtest.log: fdstreamtest$(EXEEXT) @p='fdstreamtest$(EXEEXT)'; \ b='fdstreamtest'; \ @@ -5557,6 +5614,13 @@ storagevolschematest.log: storagevolschematest --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +domaincapsschematest.log: domaincapsschematest + @p='domaincapsschematest'; \ + b='domaincapsschematest'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) domainschematest.log: domainschematest @p='domainschematest'; \ b='domainschematest'; \ diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.args b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.args new file mode 100644 index 000000000..eb38969e1 --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.args @@ -0,0 +1,3 @@ +/usr/sbin/bhyve -c 1 -m 214 -H -P -s 0:0,hostbridge \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ +-s 2:0,ahci-cd,/tmp/cdrom.iso bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.xml b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.xml new file mode 100644 index 000000000..d70219c19 --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.xml @@ -0,0 +1,22 @@ +<domain type='bhyve'> + <name>bhyve</name> + <uuid>df3be7e7-a104-11e3-aeb0-50e5492bd3dc</uuid> + <memory>219136</memory> + <vcpu>1</vcpu> + <os> + <type>hvm</type> + </os> + <devices> + <disk type='file' device='cdrom'> + <driver name='file' type='raw'/> + <source file='/tmp/cdrom.iso'/> + <target dev='hdc' bus='sata'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </disk> + <interface type='bridge'> + <model type='virtio'/> + <source bridge="virbr0"/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> + </interface> + </devices> +</domain> diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c index f6f2bc4c6..408c73aa0 100644 --- a/tests/bhyvexml2argvtest.c +++ b/tests/bhyvexml2argvtest.c @@ -104,6 +104,7 @@ mymain(void) DO_TEST("base"); DO_TEST("acpiapic"); + DO_TEST("disk-cdrom"); DO_TEST("disk-virtio"); DO_TEST("macaddr"); DO_TEST("serial"); diff --git a/tests/domaincapsschemadata/domaincaps-basic.xml b/tests/domaincapsschemadata/domaincaps-basic.xml new file mode 100644 index 000000000..99635199b --- /dev/null +++ b/tests/domaincapsschemadata/domaincaps-basic.xml @@ -0,0 +1,10 @@ +<domainCapabilities> + <path>/bin/emulatorbin</path> + <domain>uml</domain> + <machine>my-machine-type</machine> + <arch>x86_64</arch> + <devices> + <disk supported='no'/> + <hostdev supported='no'/> + </devices> +</domainCapabilities> diff --git a/tests/domaincapsschemadata/domaincaps-full.xml b/tests/domaincapsschemadata/domaincaps-full.xml new file mode 100644 index 000000000..58dd4cbdb --- /dev/null +++ b/tests/domaincapsschemadata/domaincaps-full.xml @@ -0,0 +1,56 @@ +<domainCapabilities> + <path>/bin/emulatorbin</path> + <domain>kvm</domain> + <machine>my-machine-type</machine> + <arch>x86_64</arch> + <vcpu max='255'/> + <devices> + <disk supported='yes'> + <enum name='diskDevice'> + <value>disk</value> + <value>cdrom</value> + <value>floppy</value> + <value>lun</value> + </enum> + <enum name='bus'> + <value>ide</value> + <value>fdc</value> + <value>scsi</value> + <value>virtio</value> + <value>xen</value> + <value>usb</value> + <value>uml</value> + <value>sata</value> + <value>sd</value> + </enum> + </disk> + <hostdev supported='yes'> + <enum name='mode'> + <value>subsystem</value> + <value>capabilities</value> + </enum> + <enum name='startupPolicy'> + <value>default</value> + <value>mandatory</value> + <value>requisite</value> + <value>optional</value> + </enum> + <enum name='subsysType'> + <value>usb</value> + <value>pci</value> + <value>scsi</value> + </enum> + <enum name='capsType'> + <value>storage</value> + <value>misc</value> + <value>net</value> + </enum> + <enum name='pciBackend'> + <value>default</value> + <value>kvm</value> + <value>vfio</value> + <value>xen</value> + </enum> + </hostdev> + </devices> +</domainCapabilities> diff --git a/tests/domaincapsschemadata/domaincaps-qemu_1.6.50-1.xml b/tests/domaincapsschemadata/domaincaps-qemu_1.6.50-1.xml new file mode 100644 index 000000000..8b63993e5 --- /dev/null +++ b/tests/domaincapsschemadata/domaincaps-qemu_1.6.50-1.xml @@ -0,0 +1,45 @@ +<domainCapabilities> + <path>/usr/bin/qemu-system-x86_64</path> + <domain>kvm</domain> + <machine>pc-1.2</machine> + <arch>x86_64</arch> + <devices> + <disk supported='yes'> + <enum name='diskDevice'> + <value>disk</value> + <value>cdrom</value> + <value>floppy</value> + <value>lun</value> + </enum> + <enum name='bus'> + <value>ide</value> + <value>fdc</value> + <value>scsi</value> + <value>virtio</value> + <value>usb</value> + </enum> + </disk> + <hostdev supported='yes'> + <enum name='mode'> + <value>subsystem</value> + </enum> + <enum name='startupPolicy'> + <value>default</value> + <value>mandatory</value> + <value>requisite</value> + <value>optional</value> + </enum> + <enum name='subsysType'> + <value>usb</value> + <value>pci</value> + <value>scsi</value> + </enum> + <enum name='capsType'/> + <enum name='pciBackend'> + <value>default</value> + <value>kvm</value> + <value>vfio</value> + </enum> + </hostdev> + </devices> +</domainCapabilities> diff --git a/tests/domaincapsschematest b/tests/domaincapsschematest new file mode 100755 index 000000000..9baf44a47 --- /dev/null +++ b/tests/domaincapsschematest @@ -0,0 +1,11 @@ +#!/bin/sh + +: ${srcdir=.} +. $srcdir/test-lib.sh +. $abs_srcdir/schematestutils.sh + +DIRS="" +DIRS="$DIRS domaincapsschemadata" +SCHEMA="domaincaps.rng" + +check_schema "$DIRS" "$SCHEMA" diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c new file mode 100644 index 000000000..78197e235 --- /dev/null +++ b/tests/domaincapstest.c @@ -0,0 +1,194 @@ +/* + * Copyright (C) Red Hat, Inc. 2014 + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * <http://www.gnu.org/licenses/>. + * + * Authors: + * Michal Privoznik <mprivozn@redhat.com> + */ + +#include <config.h> +#include <stdlib.h> + +#include "testutils.h" +#include "domain_capabilities.h" + + +#define VIR_FROM_THIS VIR_FROM_NONE + +typedef void (*virDomainCapsFill)(virDomainCapsPtr domCaps, + void *opaque); + +#define SET_ALL_BITS(x) \ + memset(&(x.values), 0xff, sizeof(x.values)) + +static void +fillAll(virDomainCapsPtr domCaps, + void *opaque ATTRIBUTE_UNUSED) +{ + virDomainCapsDeviceDiskPtr disk = &domCaps->disk; + virDomainCapsDeviceHostdevPtr hostdev = &domCaps->hostdev; + domCaps->maxvcpus = 255; + + disk->device.supported = true; + SET_ALL_BITS(disk->diskDevice); + SET_ALL_BITS(disk->bus); + + hostdev->device.supported = true; + SET_ALL_BITS(hostdev->mode); + SET_ALL_BITS(hostdev->startupPolicy); + SET_ALL_BITS(hostdev->subsysType); + SET_ALL_BITS(hostdev->capsType); + SET_ALL_BITS(hostdev->pciBackend); +} + + +#ifdef WITH_QEMU +# include "testutilsqemu.h" +static void +fillQemuCaps(virDomainCapsPtr domCaps, + void *opaque) +{ + virQEMUCapsPtr qemuCaps = (virQEMUCapsPtr) opaque; + + virQEMUCapsFillDomainCaps(domCaps, qemuCaps); + + /* The function above tries to query host's KVM & VFIO capabilities by + * calling qemuHostdevHostSupportsPassthroughLegacy() and + * qemuHostdevHostSupportsPassthroughVFIO() which, however, can't be + * successfully mocked as they are not exposed as internal APIs. Therefore, + * instead of mocking set the expected values here by hand. */ + VIR_DOMAIN_CAPS_ENUM_SET(domCaps->hostdev.pciBackend, + VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT, + VIR_DOMAIN_HOSTDEV_PCI_BACKEND_KVM, + VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO); +} +#endif /* WITH_QEMU */ + + +static virDomainCapsPtr +buildVirDomainCaps(const char *emulatorbin, + const char *machine, + virArch arch, + virDomainVirtType type, + virDomainCapsFill fillFunc, + void *opaque) +{ + virDomainCapsPtr domCaps; + + if (!(domCaps = virDomainCapsNew(emulatorbin, machine, arch, type))) + goto cleanup; + + if (fillFunc) + fillFunc(domCaps, opaque); + + cleanup: + return domCaps; +} + +struct test_virDomainCapsFormatData { + const char *filename; + const char *emulatorbin; + const char *machine; + virArch arch; + virDomainVirtType type; + virDomainCapsFill fillFunc; + void *opaque; +}; + +static int +test_virDomainCapsFormat(const void *opaque) +{ + struct test_virDomainCapsFormatData *data = + (struct test_virDomainCapsFormatData *) opaque; + virDomainCapsPtr domCaps = NULL; + char *path = NULL; + char *domCapsXML = NULL; + char *domCapsFromFile = NULL; + int ret = -1; + + if (virAsprintf(&path, "%s/domaincapsschemadata/domaincaps-%s.xml", + abs_srcdir, data->filename) < 0) + goto cleanup; + + if (virFileReadAll(path, 8192, &domCapsFromFile) < 0) + goto cleanup; + + if (!(domCaps = buildVirDomainCaps(data->emulatorbin, data->machine, + data->arch, data->type, + data->fillFunc, data->opaque))) + goto cleanup; + + if (!(domCapsXML = virDomainCapsFormat(domCaps))) + goto cleanup; + + if (STRNEQ(domCapsFromFile, domCapsXML)) { + virtTestDifference(stderr, domCapsFromFile, domCapsXML); + goto cleanup; + } + + ret = 0; + cleanup: + VIR_FREE(domCapsFromFile); + VIR_FREE(domCapsXML); + VIR_FREE(path); + virObjectUnref(domCaps); + return ret; +} + +static int +mymain(void) +{ + int ret = 0; + +#define DO_TEST(Filename, Emulatorbin, Machine, Arch, Type, ...) \ + do { \ + struct test_virDomainCapsFormatData data = {.filename = Filename, \ + .emulatorbin = Emulatorbin, .machine = Machine, .arch = Arch, \ + .type = Type, __VA_ARGS__}; \ + if (virtTestRun(Filename, test_virDomainCapsFormat, &data) < 0) \ + ret = -1; \ + } while (0) + + DO_TEST("basic", "/bin/emulatorbin", "my-machine-type", + VIR_ARCH_X86_64, VIR_DOMAIN_VIRT_UML); + DO_TEST("full", "/bin/emulatorbin", "my-machine-type", + VIR_ARCH_X86_64, VIR_DOMAIN_VIRT_KVM, .fillFunc = fillAll); + +#ifdef WITH_QEMU + +# define DO_TEST_QEMU(Filename, QemuCapsFile, Emulatorbin, Machine, Arch, Type, ...) \ + do { \ + const char *capsPath = abs_srcdir "/qemucapabilitiesdata/" QemuCapsFile ".caps"; \ + virQEMUCapsPtr qemuCaps = qemuTestParseCapabilities(capsPath); \ + struct test_virDomainCapsFormatData data = {.filename = Filename, \ + .emulatorbin = Emulatorbin, .machine = Machine, .arch = Arch, \ + .type = Type, .fillFunc = fillQemuCaps, .opaque = qemuCaps}; \ + if (!qemuCaps) { \ + fprintf(stderr, "Unable to build qemu caps from %s\n", capsPath); \ + ret = -1; \ + } else if (virtTestRun(Filename, test_virDomainCapsFormat, &data) < 0) \ + ret = -1; \ + } while (0) + + DO_TEST_QEMU("qemu_1.6.50-1", "caps_1.6.50-1", "/usr/bin/qemu-system-x86_64", + "pc-1.2", VIR_ARCH_X86_64, VIR_DOMAIN_VIRT_KVM); + +#endif /* WITH_QEMU */ + + return ret; +} + +VIRT_TEST_MAIN(mymain) diff --git a/tests/domainschemadata/domain-caps-features.xml b/tests/domainschemadata/domain-caps-features.xml new file mode 100644 index 000000000..4f118b227 --- /dev/null +++ b/tests/domainschemadata/domain-caps-features.xml @@ -0,0 +1,28 @@ +<domain type='lxc'> + <name>demo</name> + <uuid>8369f1ac-7e46-e869-4ca5-759d51478066</uuid> + <os> + <type>exe</type> + <init>/sh</init> + </os> + <features> + <capabilities policy="deny"> + <mknod state="on"/> + </capabilities> + </features> + <resource> + <partition>/virtualmachines</partition> + </resource> + <memory unit='KiB'>500000</memory> + <devices> + <filesystem type='mount'> + <source dir='/root/container'/> + <target dir='/'/> + </filesystem> + <filesystem type='mount'> + <source dir='/home'/> + <target dir='/home'/> + </filesystem> + <console type='pty'/> + </devices> +</domain> diff --git a/tests/domainschematest b/tests/domainschematest index 9ebf0b9a5..ba9018091 100755 --- a/tests/domainschematest +++ b/tests/domainschematest @@ -6,8 +6,9 @@ DIRS="" DIRS="$DIRS domainschemadata qemuxml2argvdata sexpr2xmldata" -DIRS="$DIRS xmconfigdata xml2sexprdata qemuxml2xmloutdata " +DIRS="$DIRS xmconfigdata xml2sexprdata qemuxml2xmloutdata" DIRS="$DIRS lxcxml2xmldata lxcxml2xmloutdata" +DIRS="$DIRS bhyvexml2argvdata" SCHEMA="domain.rng" check_schema "$DIRS" "$SCHEMA" diff --git a/tests/domainsnapshotxml2xmltest.c b/tests/domainsnapshotxml2xmltest.c index 6d201818d..1b3a28f77 100644 --- a/tests/domainsnapshotxml2xmltest.c +++ b/tests/domainsnapshotxml2xmltest.c @@ -58,10 +58,8 @@ testFilterXML(char *xml) virBufferStrcat(&buf, *xmlLine, "\n", NULL); } - if (virBufferError(&buf)) { - virReportOOMError(); + if (virBufferCheckError(&buf) < 0) goto cleanup; - } ret = virBufferContentAndReset(&buf); diff --git a/tests/lxcconf2xmldata/lxcconf2xml-blkiotune.xml b/tests/lxcconf2xmldata/lxcconf2xml-blkiotune.xml index 36b8e52f2..c9c046969 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-blkiotune.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-blkiotune.xml @@ -25,6 +25,8 @@ </os> <features> <privnet/> + <capabilities policy='allow'> + </capabilities> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-cpusettune.xml b/tests/lxcconf2xmldata/lxcconf2xml-cpusettune.xml index 932ab6168..e7863fa13 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-cpusettune.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-cpusettune.xml @@ -13,6 +13,8 @@ </os> <features> <privnet/> + <capabilities policy='allow'> + </capabilities> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-cputune.xml b/tests/lxcconf2xmldata/lxcconf2xml-cputune.xml index 1bab1c65a..50c5358ab 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-cputune.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-cputune.xml @@ -15,6 +15,8 @@ </os> <features> <privnet/> + <capabilities policy='allow'> + </capabilities> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-idmap.xml b/tests/lxcconf2xmldata/lxcconf2xml-idmap.xml index 050ccd6f7..80a83ff78 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-idmap.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-idmap.xml @@ -14,6 +14,8 @@ </idmap> <features> <privnet/> + <capabilities policy='allow'> + </capabilities> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork.xml b/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork.xml index 996c0f749..3105b8cef 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork.xml @@ -8,6 +8,10 @@ <type>exe</type> <init>/sbin/init</init> </os> + <features> + <capabilities policy='allow'> + </capabilities> + </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-memtune.xml b/tests/lxcconf2xmldata/lxcconf2xml-memtune.xml index b7c919e7a..7df1ef0e9 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-memtune.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-memtune.xml @@ -15,6 +15,8 @@ </os> <features> <privnet/> + <capabilities policy='allow'> + </capabilities> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork.xml b/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork.xml index 6d9e16de4..e002b99a6 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork.xml @@ -8,6 +8,10 @@ <type>exe</type> <init>/sbin/init</init> </os> + <features> + <capabilities policy='allow'> + </capabilities> + </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-nonetwork.xml b/tests/lxcconf2xmldata/lxcconf2xml-nonetwork.xml index 101324ad1..dc9d6350f 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-nonetwork.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-nonetwork.xml @@ -10,6 +10,8 @@ </os> <features> <privnet/> + <capabilities policy='allow'> + </capabilities> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.config b/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.config index 63a4aa1e3..ed196e1e8 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.config +++ b/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.config @@ -1,5 +1,6 @@ lxc.network.type = phys lxc.network.link = eth0 +lxc.network.name = eth1 lxc.rootfs = /var/lib/lxc/migrate_test/rootfs lxc.utsname = migrate_test diff --git a/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.xml b/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.xml index 5fe1b03b3..cfaceb520 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.xml @@ -8,6 +8,10 @@ <type>exe</type> <init>/sbin/init</init> </os> + <features> + <capabilities policy='allow'> + </capabilities> + </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-simple.xml b/tests/lxcconf2xmldata/lxcconf2xml-simple.xml index b3c3659c1..10428ec61 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-simple.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-simple.xml @@ -8,6 +8,14 @@ <type arch='i686'>exe</type> <init>/sbin/init</init> </os> + <features> + <capabilities policy='allow'> + <mac_admin state='off'/> + <mac_override state='off'/> + <mknod state='off'/> + <sys_module state='off'/> + </capabilities> + </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> @@ -29,6 +37,7 @@ <interface type='bridge'> <mac address='02:00:15:8f:05:c1'/> <source bridge='virbr0'/> + <guest dev='eth0'/> <link state='up'/> </interface> <console type='pty'> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork.xml b/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork.xml index 45348ed15..712be3e1e 100644 --- a/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork.xml +++ b/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork.xml @@ -8,6 +8,10 @@ <type>exe</type> <init>/sbin/init</init> </os> + <features> + <capabilities policy='allow'> + </capabilities> + </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> diff --git a/tests/lxcxml2xmldata/lxc-capabilities.xml b/tests/lxcxml2xmldata/lxc-capabilities.xml new file mode 100644 index 000000000..04d64e3e4 --- /dev/null +++ b/tests/lxcxml2xmldata/lxc-capabilities.xml @@ -0,0 +1,34 @@ +<domain type='lxc'> + <name>jessie</name> + <uuid>e21987a5-e98e-9c99-0e35-803e4d9ad1fe</uuid> + <memory unit='KiB'>1048576</memory> + <currentMemory unit='KiB'>1048576</currentMemory> + <vcpu placement='static'>1</vcpu> + <resource> + <partition>/machine</partition> + </resource> + <os> + <type arch='x86_64'>exe</type> + <init>/sbin/init</init> + </os> + <features> + <capabilities policy='default'> + <mknod state='on'/> + </capabilities> + </features> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <emulator>/usr/libexec/libvirt_lxc</emulator> + <filesystem type='mount' accessmode='passthrough'> + <source dir='/mach/jessie'/> + <target dir='/'/> + </filesystem> + <console type='pty'> + <target type='lxc' port='0'/> + </console> + </devices> + <seclabel type='none'/> +</domain> diff --git a/tests/lxcxml2xmldata/lxc-idmap.xml b/tests/lxcxml2xmldata/lxc-idmap.xml index 3cced2107..946d36357 100644 --- a/tests/lxcxml2xmldata/lxc-idmap.xml +++ b/tests/lxcxml2xmldata/lxc-idmap.xml @@ -29,6 +29,7 @@ <mac address='00:16:3e:0f:ef:8a'/> <source bridge='bri0'/> <target dev='veth0'/> + <guest dev='eth2'/> </interface> <console type='pty'> <target type='lxc' port='0'/> diff --git a/tests/lxcxml2xmltest.c b/tests/lxcxml2xmltest.c index 814498966..6dce070db 100644 --- a/tests/lxcxml2xmltest.c +++ b/tests/lxcxml2xmltest.c @@ -144,6 +144,7 @@ mymain(void) DO_TEST_DIFFERENT("filesystem-ram"); DO_TEST("filesystem-root"); DO_TEST("idmap"); + DO_TEST("capabilities"); virObjectUnref(caps); virObjectUnref(xmlopt); diff --git a/tests/metadatatest.c b/tests/metadatatest.c index 91fc94472..a8d8f10be 100644 --- a/tests/metadatatest.c +++ b/tests/metadatatest.c @@ -167,6 +167,10 @@ verifyMetadata(virDomainPtr dom, struct metadataTest { virConnectPtr conn; virDomainPtr dom; + + const char *data; + int type; + bool fail; }; @@ -216,6 +220,52 @@ testEraseMetadata(const void *data) } static int +testTextMetadata(const void *data) +{ + const struct metadataTest *test = data; + char *actual = NULL; + int ret = -1; + + if (virDomainSetMetadata(test->dom, test->type, test->data, NULL, NULL, 0) < 0) { + if (test->fail) + return 0; + return -1; + } + + actual = virDomainGetMetadata(test->dom, test->type, NULL, 0); + + if (STRNEQ_NULLABLE(test->data, actual)) { + virReportError(VIR_ERR_INTERNAL_ERROR, + "expected metadata doesn't match actual: " + "expected:'%s'\ngot: '%s'", + NULLSTR(test->data), NULLSTR(actual)); + goto cleanup; + } + + ret = 0; + + cleanup: + VIR_FREE(actual); + + return ret; +} + +#define TEST_TEXT_METADATA(INDEX, TYPE, DATA, FAIL) \ + do { \ + test.type = VIR_DOMAIN_METADATA_ ## TYPE; \ + test.data = DATA; \ + test.fail = FAIL; \ + \ + if (virtTestRun("text metadata: " #TYPE " " INDEX " ", \ + testTextMetadata, &test) < 0) \ + ret = EXIT_FAILURE; \ + } while (0) + +#define TEST_TITLE(INDEX, DATA) TEST_TEXT_METADATA(INDEX, TITLE, DATA, false) +#define TEST_TITLE_FAIL(INDEX, DATA) TEST_TEXT_METADATA(INDEX, TITLE, DATA, true) +#define TEST_DESCR(INDEX, DATA) TEST_TEXT_METADATA(INDEX, DESCRIPTION, DATA, false) + +static int mymain(void) { struct metadataTest test; @@ -238,6 +288,20 @@ mymain(void) if (virtTestRun("Erase metadata ", testEraseMetadata, &test) < 0) ret = EXIT_FAILURE; + TEST_TITLE("1", "qwert"); + TEST_TITLE("2", NULL); + TEST_TITLE("3", "blah"); + TEST_TITLE_FAIL("4", "qwe\nrt"); + TEST_TITLE("5", ""); + TEST_TITLE_FAIL("6", "qwert\n"); + TEST_TITLE_FAIL("7", "\n"); + + TEST_DESCR("1", "qwert\nqwert"); + TEST_DESCR("2", NULL); + TEST_DESCR("3", "qwert"); + TEST_DESCR("4", "\n"); + TEST_DESCR("5", ""); + virDomainFree(test.dom); virConnectClose(test.conn); diff --git a/tests/nodedevschemadata/pci_8086_27c5_scsi_host_0_unique_id.xml b/tests/nodedevschemadata/pci_8086_27c5_scsi_host_0_unique_id.xml new file mode 100644 index 000000000..5428f59d1 --- /dev/null +++ b/tests/nodedevschemadata/pci_8086_27c5_scsi_host_0_unique_id.xml @@ -0,0 +1,8 @@ +<device> + <name>pci_8086_27c5_scsi_host_0</name> + <parent>pci_8086_27c5</parent> + <capability type='scsi_host'> + <host>1</host> + <unique_id>2</unique_id> + </capability> +</device> diff --git a/tests/nodedevxml2xmltest.c b/tests/nodedevxml2xmltest.c index fe1fd8823..a37d7290c 100644 --- a/tests/nodedevxml2xmltest.c +++ b/tests/nodedevxml2xmltest.c @@ -82,6 +82,7 @@ mymain(void) DO_TEST("pci_1002_71c4"); DO_TEST("pci_8086_10c9_sriov_pf"); DO_TEST("pci_8086_27c5_scsi_host_0"); + DO_TEST("pci_8086_27c5_scsi_host_0_unique_id"); DO_TEST("pci_8086_27c5_scsi_host_scsi_device_lun0"); DO_TEST("pci_8086_27c5_scsi_host_scsi_host"); DO_TEST("pci_8086_27c5_scsi_host"); diff --git a/tests/qemuargv2xmltest.c b/tests/qemuargv2xmltest.c index 2cbbe3d7f..6bad7d6d1 100644 --- a/tests/qemuargv2xmltest.c +++ b/tests/qemuargv2xmltest.c @@ -26,6 +26,7 @@ static int blankProblemElements(char *data) if (virtTestClearLineRegex("<name>[[:alnum:]]+</name>", data) < 0 || virtTestClearLineRegex("<uuid>([[:alnum:]]|-)+</uuid>", data) < 0 || virtTestClearLineRegex("<memory.*>[[:digit:]]+</memory>", data) < 0 || + virtTestClearLineRegex("<secret.*>", data) < 0 || virtTestClearLineRegex("<currentMemory.*>[[:digit:]]+</currentMemory>", data) < 0 || virtTestClearLineRegex("<readonly/>", data) < 0 || @@ -226,8 +227,10 @@ mymain(void) DO_TEST("disk-drive-network-nbd-ipv6-export"); DO_TEST("disk-drive-network-nbd-unix"); DO_TEST("disk-drive-network-iscsi"); + DO_TEST("disk-drive-network-iscsi-auth"); DO_TEST("disk-drive-network-gluster"); DO_TEST("disk-drive-network-rbd"); + DO_TEST("disk-drive-network-rbd-auth"); DO_TEST("disk-drive-network-rbd-ipv6"); /* older format using CEPH_ARGS env var */ DO_TEST("disk-drive-network-rbd-ceph-env"); diff --git a/tests/qemucapabilitiesdata/caps_1.3.1-1.replies b/tests/qemucapabilitiesdata/caps_1.3.1-1.replies index 63c18da88..04d21410b 100644 --- a/tests/qemucapabilitiesdata/caps_1.3.1-1.replies +++ b/tests/qemucapabilitiesdata/caps_1.3.1-1.replies @@ -308,6 +308,14 @@ } { + "id": "libvirt-6", + "error": { + "class": "GenericError", + "desc": "Parameter 'top' is missing" + } +} + +{ "return": [ { "name": "SPICE_MIGRATE_COMPLETED" @@ -382,7 +390,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-6" + "id": "libvirt-7" } { @@ -871,7 +879,7 @@ "name": "VGA" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -973,7 +981,7 @@ "type": "hex32" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1111,11 +1119,11 @@ "type": "on/off" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { - "id": "libvirt-10", + "id": "libvirt-11", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1123,7 +1131,7 @@ } { - "id": "libvirt-11", + "id": "libvirt-12", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1131,7 +1139,7 @@ } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1139,7 +1147,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1147,7 +1155,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1197,7 +1205,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-15" + "id": "libvirt-16" } { @@ -1231,7 +1239,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-16" + "id": "libvirt-17" } { @@ -1305,7 +1313,7 @@ "type": "drive" } ], - "id": "libvirt-17" + "id": "libvirt-18" } { @@ -1359,7 +1367,7 @@ "type": "drive" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1401,11 +1409,11 @@ "type": "uint32" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { - "id": "libvirt-20", + "id": "libvirt-21", "error": { "class": "DeviceNotFound", "desc": "Device 'usb-redir' not found" @@ -1455,7 +1463,7 @@ "type": "uint32" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -1481,13 +1489,13 @@ "type": "drive" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { "return": [ ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1497,7 +1505,7 @@ "type": "uint64" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -1547,7 +1555,7 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -1561,7 +1569,7 @@ "type": "hex32" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -1615,7 +1623,7 @@ "name": "none" } ], - "id": "libvirt-26" + "id": "libvirt-28" } { @@ -1693,7 +1701,7 @@ "name": "Opteron_G5" } ], - "id": "libvirt-27" + "id": "libvirt-29" } { @@ -1701,11 +1709,11 @@ "enabled": false, "present": true }, - "id": "libvirt-28" + "id": "libvirt-30" } { - "id": "libvirt-29", + "id": "libvirt-31", "error": { "class": "CommandNotFound", "desc": "The command query-tpm-models has not been found" @@ -1713,7 +1721,7 @@ } { - "id": "libvirt-30", + "id": "libvirt-32", "error": { "class": "CommandNotFound", "desc": "The command query-tpm-types has not been found" @@ -1721,7 +1729,7 @@ } { - "id": "libvirt-31", + "id": "libvirt-33", "error": { "class": "CommandNotFound", "desc": "The command query-command-line-options has not been found" diff --git a/tests/qemucapabilitiesdata/caps_1.4.2-1.replies b/tests/qemucapabilitiesdata/caps_1.4.2-1.replies index 4fb406175..aef359c0f 100644 --- a/tests/qemucapabilitiesdata/caps_1.4.2-1.replies +++ b/tests/qemucapabilitiesdata/caps_1.4.2-1.replies @@ -320,6 +320,14 @@ } { + "id": "libvirt-6", + "error": { + "class": "GenericError", + "desc": "Parameter 'top' is missing" + } +} + +{ "return": [ { "name": "SPICE_MIGRATE_COMPLETED" @@ -394,7 +402,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-6" + "id": "libvirt-7" } { @@ -910,7 +918,7 @@ "name": "VGA" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1012,7 +1020,7 @@ "type": "hex32" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1158,11 +1166,11 @@ "type": "on/off" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { - "id": "libvirt-10", + "id": "libvirt-11", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1170,7 +1178,7 @@ } { - "id": "libvirt-11", + "id": "libvirt-12", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1178,7 +1186,7 @@ } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1186,7 +1194,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1194,7 +1202,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1244,7 +1252,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-15" + "id": "libvirt-16" } { @@ -1278,7 +1286,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-16" + "id": "libvirt-17" } { @@ -1352,7 +1360,7 @@ "type": "drive" } ], - "id": "libvirt-17" + "id": "libvirt-18" } { @@ -1406,7 +1414,7 @@ "type": "drive" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1448,11 +1456,11 @@ "type": "uint32" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { - "id": "libvirt-20", + "id": "libvirt-21", "error": { "class": "DeviceNotFound", "desc": "Device 'usb-redir' not found" @@ -1502,7 +1510,7 @@ "type": "uint32" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -1528,13 +1536,13 @@ "type": "drive" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { "return": [ ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1544,7 +1552,7 @@ "type": "uint64" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -1594,7 +1602,7 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -1608,7 +1616,7 @@ "type": "hex32" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -1665,7 +1673,7 @@ "name": "none" } ], - "id": "libvirt-26" + "id": "libvirt-28" } { @@ -1743,7 +1751,7 @@ "name": "qemu64" } ], - "id": "libvirt-27" + "id": "libvirt-29" } { @@ -1751,11 +1759,11 @@ "enabled": false, "present": true }, - "id": "libvirt-28" + "id": "libvirt-30" } { - "id": "libvirt-29", + "id": "libvirt-31", "error": { "class": "CommandNotFound", "desc": "The command query-tpm-models has not been found" @@ -1763,7 +1771,7 @@ } { - "id": "libvirt-30", + "id": "libvirt-32", "error": { "class": "CommandNotFound", "desc": "The command query-tpm-types has not been found" @@ -1771,7 +1779,7 @@ } { - "id": "libvirt-31", + "id": "libvirt-33", "error": { "class": "CommandNotFound", "desc": "The command query-command-line-options has not been found" diff --git a/tests/qemucapabilitiesdata/caps_1.5.3-1.replies b/tests/qemucapabilitiesdata/caps_1.5.3-1.replies index 686fa3ecd..1f84bb655 100644 --- a/tests/qemucapabilitiesdata/caps_1.5.3-1.replies +++ b/tests/qemucapabilitiesdata/caps_1.5.3-1.replies @@ -335,6 +335,14 @@ } { + "id": "libvirt-6", + "error": { + "class": "GenericError", + "desc": "Parameter 'top' is missing" + } +} + +{ "return": [ { "name": "GUEST_PANICKED" @@ -415,7 +423,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-6" + "id": "libvirt-7" } { @@ -976,7 +984,7 @@ "name": "VGA" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1078,7 +1086,7 @@ "type": "hex32" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1224,11 +1232,11 @@ "type": "on/off" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { - "id": "libvirt-10", + "id": "libvirt-11", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1236,7 +1244,7 @@ } { - "id": "libvirt-11", + "id": "libvirt-12", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1244,7 +1252,7 @@ } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1252,7 +1260,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1260,7 +1268,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1310,7 +1318,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-15" + "id": "libvirt-16" } { @@ -1352,7 +1360,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-16" + "id": "libvirt-17" } { @@ -1426,7 +1434,7 @@ "type": "drive" } ], - "id": "libvirt-17" + "id": "libvirt-18" } { @@ -1480,7 +1488,7 @@ "type": "drive" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1522,11 +1530,11 @@ "type": "uint32" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { - "id": "libvirt-20", + "id": "libvirt-21", "error": { "class": "DeviceNotFound", "desc": "Device 'usb-redir' not found" @@ -1576,7 +1584,7 @@ "type": "uint32" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -1602,13 +1610,13 @@ "type": "drive" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { "return": [ ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1618,7 +1626,7 @@ "type": "uint64" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -1668,7 +1676,7 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -1682,7 +1690,7 @@ "type": "hex32" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -1755,7 +1763,7 @@ "cpu-max": 1 } ], - "id": "libvirt-26" + "id": "libvirt-28" } { @@ -1833,7 +1841,7 @@ "name": "qemu64" } ], - "id": "libvirt-27" + "id": "libvirt-29" } { @@ -1841,19 +1849,19 @@ "enabled": false, "present": true }, - "id": "libvirt-28" + "id": "libvirt-30" } { "return": [ ], - "id": "libvirt-29" + "id": "libvirt-31" } { "return": [ ], - "id": "libvirt-30" + "id": "libvirt-32" } { @@ -2529,5 +2537,5 @@ "option": "drive" } ], - "id": "libvirt-31" + "id": "libvirt-33" } diff --git a/tests/qemucapabilitiesdata/caps_1.6.0-1.replies b/tests/qemucapabilitiesdata/caps_1.6.0-1.replies index 95e0c37df..c9dc29b10 100644 --- a/tests/qemucapabilitiesdata/caps_1.6.0-1.replies +++ b/tests/qemucapabilitiesdata/caps_1.6.0-1.replies @@ -341,6 +341,14 @@ } { + "id": "libvirt-6", + "error": { + "class": "GenericError", + "desc": "Parameter 'top' is missing" + } +} + +{ "return": [ { "name": "GUEST_PANICKED" @@ -424,7 +432,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-6" + "id": "libvirt-7" } { @@ -1018,7 +1026,7 @@ "name": "VGA" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1120,7 +1128,7 @@ "type": "hex32" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1274,11 +1282,11 @@ "type": "on/off" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { - "id": "libvirt-10", + "id": "libvirt-11", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1286,7 +1294,7 @@ } { - "id": "libvirt-11", + "id": "libvirt-12", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1294,7 +1302,7 @@ } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1302,7 +1310,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1310,7 +1318,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1360,7 +1368,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-15" + "id": "libvirt-16" } { @@ -1402,7 +1410,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-16" + "id": "libvirt-17" } { @@ -1476,7 +1484,7 @@ "type": "drive" } ], - "id": "libvirt-17" + "id": "libvirt-18" } { @@ -1530,7 +1538,7 @@ "type": "drive" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1572,11 +1580,11 @@ "type": "uint32" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { - "id": "libvirt-20", + "id": "libvirt-21", "error": { "class": "DeviceNotFound", "desc": "Device 'usb-redir' not found" @@ -1630,7 +1638,7 @@ "type": "uint32" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -1656,7 +1664,7 @@ "type": "drive" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -1666,7 +1674,7 @@ "type": "size" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1680,7 +1688,7 @@ "type": "uint64" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -1730,7 +1738,7 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -1744,7 +1752,7 @@ "type": "hex32" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -1833,7 +1841,7 @@ "cpu-max": 1 } ], - "id": "libvirt-26" + "id": "libvirt-28" } { @@ -1911,7 +1919,7 @@ "name": "qemu64" } ], - "id": "libvirt-27" + "id": "libvirt-29" } { @@ -1919,19 +1927,19 @@ "enabled": false, "present": true }, - "id": "libvirt-28" + "id": "libvirt-30" } { "return": [ ], - "id": "libvirt-29" + "id": "libvirt-31" } { "return": [ ], - "id": "libvirt-30" + "id": "libvirt-32" } { @@ -2509,5 +2517,5 @@ "option": "drive" } ], - "id": "libvirt-31" + "id": "libvirt-33" } diff --git a/tests/qemucapabilitiesdata/caps_1.6.50-1.caps b/tests/qemucapabilitiesdata/caps_1.6.50-1.caps index 32bccdbbe..4b9f693d7 100644 --- a/tests/qemucapabilitiesdata/caps_1.6.50-1.caps +++ b/tests/qemucapabilitiesdata/caps_1.6.50-1.caps @@ -142,4 +142,5 @@ <flag name='usb-kbd'/> <flag name='host-pci-multidomain'/> <flag name='msg-timestamp'/> + <flag name='numa'/> </qemuCaps> diff --git a/tests/qemucapabilitiesdata/caps_1.6.50-1.replies b/tests/qemucapabilitiesdata/caps_1.6.50-1.replies index 3ecf18594..ec7451f52 100644 --- a/tests/qemucapabilitiesdata/caps_1.6.50-1.replies +++ b/tests/qemucapabilitiesdata/caps_1.6.50-1.replies @@ -347,6 +347,14 @@ } { + "id": "libvirt-6", + "error": { + "class": "GenericError", + "desc": "Parameter 'top' is missing" + } +} + +{ "return": [ { "name": "BLOCK_IMAGE_CORRUPTED" @@ -433,7 +441,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-6" + "id": "libvirt-7" } { @@ -1024,7 +1032,7 @@ "name": "VGA" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1126,7 +1134,7 @@ "type": "hex32" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1280,11 +1288,11 @@ "type": "on/off" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { - "id": "libvirt-10", + "id": "libvirt-11", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1292,7 +1300,7 @@ } { - "id": "libvirt-11", + "id": "libvirt-12", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1300,7 +1308,7 @@ } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1308,7 +1316,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1316,7 +1324,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1366,7 +1374,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-15" + "id": "libvirt-16" } { @@ -1408,7 +1416,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-16" + "id": "libvirt-17" } { @@ -1482,7 +1490,7 @@ "type": "drive" } ], - "id": "libvirt-17" + "id": "libvirt-18" } { @@ -1536,7 +1544,7 @@ "type": "drive" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1578,11 +1586,11 @@ "type": "uint32" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { - "id": "libvirt-20", + "id": "libvirt-21", "error": { "class": "DeviceNotFound", "desc": "Device 'usb-redir' not found" @@ -1590,7 +1598,7 @@ } { - "id": "libvirt-21", + "id": "libvirt-22", "error": { "class": "DeviceNotFound", "desc": "Device 'usb-host' not found" @@ -1620,7 +1628,7 @@ "type": "drive" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -1630,7 +1638,7 @@ "type": "size" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1644,7 +1652,7 @@ "type": "uint64" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -1694,7 +1702,7 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -1708,7 +1716,7 @@ "type": "hex32" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -1805,7 +1813,7 @@ "cpu-max": 1 } ], - "id": "libvirt-26" + "id": "libvirt-28" } { @@ -1883,7 +1891,7 @@ "name": "qemu64" } ], - "id": "libvirt-27" + "id": "libvirt-29" } { @@ -1891,19 +1899,19 @@ "enabled": false, "present": true }, - "id": "libvirt-28" + "id": "libvirt-30" } { "return": [ ], - "id": "libvirt-29" + "id": "libvirt-31" } { "return": [ ], - "id": "libvirt-30" + "id": "libvirt-32" } { @@ -2381,6 +2389,11 @@ { "parameters": [ ], + "option": "numa" + }, + { + "parameters": [ + ], "option": "device" }, { @@ -2486,5 +2499,5 @@ "option": "drive" } ], - "id": "libvirt-31" + "id": "libvirt-33" } diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c index a2914606f..4e5f9e529 100644 --- a/tests/qemucapabilitiestest.c +++ b/tests/qemucapabilitiestest.c @@ -85,55 +85,6 @@ testQemuFeedMonitor(char *replies, return NULL; } -static virQEMUCapsPtr -testQemuGetCaps(char *caps) -{ - virQEMUCapsPtr qemuCaps = NULL; - xmlDocPtr xml; - xmlXPathContextPtr ctxt = NULL; - ssize_t i, n; - xmlNodePtr *nodes = NULL; - - if (!(xml = virXMLParseStringCtxt(caps, "(test caps)", &ctxt))) - goto error; - - if ((n = virXPathNodeSet("/qemuCaps/flag", ctxt, &nodes)) < 0) { - fprintf(stderr, "failed to parse qemu capabilities flags"); - goto error; - } - - if (n > 0) { - if (!(qemuCaps = virQEMUCapsNew())) - goto error; - - for (i = 0; i < n; i++) { - char *str = virXMLPropString(nodes[i], "name"); - if (str) { - int flag = virQEMUCapsTypeFromString(str); - if (flag < 0) { - fprintf(stderr, "Unknown qemu capabilities flag %s", str); - VIR_FREE(str); - goto error; - } - VIR_FREE(str); - virQEMUCapsSet(qemuCaps, flag); - } - } - } - - VIR_FREE(nodes); - xmlFreeDoc(xml); - xmlXPathFreeContext(ctxt); - return qemuCaps; - - error: - VIR_FREE(nodes); - virObjectUnref(qemuCaps); - xmlFreeDoc(xml); - xmlXPathFreeContext(ctxt); - return NULL; -} - static int testQemuCapsCompare(virQEMUCapsPtr capsProvided, virQEMUCapsPtr capsComputed) @@ -166,7 +117,7 @@ testQemuCaps(const void *opaque) int ret = -1; const testQemuData *data = opaque; char *repliesFile = NULL, *capsFile = NULL; - char *replies = NULL, *caps = NULL; + char *replies = NULL; qemuMonitorTestPtr mon = NULL; virQEMUCapsPtr capsProvided = NULL, capsComputed = NULL; @@ -176,14 +127,13 @@ testQemuCaps(const void *opaque) abs_srcdir, data->base) < 0) goto cleanup; - if (virtTestLoadFile(repliesFile, &replies) < 0 || - virtTestLoadFile(capsFile, &caps) < 0) + if (virtTestLoadFile(repliesFile, &replies) < 0) goto cleanup; if (!(mon = testQemuFeedMonitor(replies, data->xmlopt))) goto cleanup; - if (!(capsProvided = testQemuGetCaps(caps))) + if (!(capsProvided = qemuTestParseCapabilities(capsFile))) goto cleanup; if (!(capsComputed = virQEMUCapsNew())) @@ -207,7 +157,6 @@ testQemuCaps(const void *opaque) VIR_FREE(repliesFile); VIR_FREE(capsFile); VIR_FREE(replies); - VIR_FREE(caps); qemuMonitorTestFree(mon); virObjectUnref(capsProvided); virObjectUnref(capsComputed); diff --git a/tests/qemucaps2xmltest.c b/tests/qemucaps2xmltest.c index cef57354e..3529acb7d 100644 --- a/tests/qemucaps2xmltest.c +++ b/tests/qemucaps2xmltest.c @@ -110,7 +110,7 @@ testGetCaps(char *capsData, const testQemuData *data) goto error; } - if ((caps = virCapabilitiesNew(data->guestarch, 0, 0)) == NULL) { + if ((caps = virCapabilitiesNew(data->guestarch, false, false)) == NULL) { fprintf(stderr, "failed to create the fake capabilities"); goto error; } diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index 2099dc874..baee80a7a 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -583,6 +583,7 @@ testQemuMonitorJSONGetCommandLineOptionParameters(const void *data) int ret = -1; char **params = NULL; int nparams = 0; + bool found = false; if (!test) return -1; @@ -604,7 +605,8 @@ testQemuMonitorJSONGetCommandLineOptionParameters(const void *data) /* present with params */ if ((nparams = qemuMonitorGetCommandLineOptionParameters(qemuMonitorTestGetMonitor(test), "option-rom", - ¶ms)) < 0) + ¶ms, + NULL)) < 0) goto cleanup; if (nparams != 2) { @@ -634,7 +636,8 @@ testQemuMonitorJSONGetCommandLineOptionParameters(const void *data) /* present but empty */ if ((nparams = qemuMonitorGetCommandLineOptionParameters(qemuMonitorTestGetMonitor(test), "acpi", - ¶ms)) < 0) + ¶ms, + &found)) < 0) goto cleanup; if (nparams != 0) { @@ -642,6 +645,11 @@ testQemuMonitorJSONGetCommandLineOptionParameters(const void *data) "nparams was %d, expected 0", nparams); goto cleanup; } + if (!found) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + "found was false, expected true"); + goto cleanup; + } if (params && params[0]) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", "unexpected array contents"); @@ -654,7 +662,8 @@ testQemuMonitorJSONGetCommandLineOptionParameters(const void *data) /* no such option */ if ((nparams = qemuMonitorGetCommandLineOptionParameters(qemuMonitorTestGetMonitor(test), "foobar", - ¶ms)) < 0) + ¶ms, + &found)) < 0) goto cleanup; if (nparams != 0) { @@ -662,6 +671,11 @@ testQemuMonitorJSONGetCommandLineOptionParameters(const void *data) "nparams was %d, expected 0", nparams); goto cleanup; } + if (found) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + "found was true, expected false"); + goto cleanup; + } if (params && params[0]) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", "unexpected array contents"); @@ -1164,7 +1178,7 @@ GEN_TEST_FUNC(qemuMonitorJSONAddDevice, "some_dummy_devicestr") GEN_TEST_FUNC(qemuMonitorJSONSetDrivePassphrase, "vda", "secret_passhprase") GEN_TEST_FUNC(qemuMonitorJSONDriveMirror, "vdb", "/foo/bar", NULL, 1024, VIR_DOMAIN_BLOCK_REBASE_SHALLOW | VIR_DOMAIN_BLOCK_REBASE_REUSE_EXT) -GEN_TEST_FUNC(qemuMonitorJSONBlockCommit, "vdb", "/foo/bar1", "/foo/bar2", 1024) +GEN_TEST_FUNC(qemuMonitorJSONBlockCommit, "vdb", "/foo/bar1", "/foo/bar2", NULL, 1024) GEN_TEST_FUNC(qemuMonitorJSONDrivePivot, "vdb", NULL, NULL) GEN_TEST_FUNC(qemuMonitorJSONScreendump, "/foo/bar") GEN_TEST_FUNC(qemuMonitorJSONOpenGraphics, "spice", "spicefd", false) @@ -1992,6 +2006,52 @@ testQemuMonitorJSONqemuMonitorJSONSendKeyHoldtime(const void *data) } static int +testQemuMonitorJSONqemuMonitorSupportsActiveCommit(const void *data) +{ + virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data; + qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt); + int ret = -1; + const char *error1 = + "{" + " \"error\": {" + " \"class\": \"DeviceNotFound\"," + " \"desc\": \"Device 'bogus' not found\"" + " }" + "}"; + const char *error2 = + "{" + " \"error\": {" + " \"class\": \"GenericError\"," + " \"desc\": \"Parameter 'top' is missing\"" + " }" + "}"; + + if (!test) + return -1; + + if (qemuMonitorTestAddItemParams(test, "block-commit", error1, + "device", "\"bogus\"", + NULL, NULL) < 0) + goto cleanup; + + if (!qemuMonitorSupportsActiveCommit(qemuMonitorTestGetMonitor(test))) + goto cleanup; + + if (qemuMonitorTestAddItemParams(test, "block-commit", error2, + "device", "\"bogus\"", + NULL, NULL) < 0) + goto cleanup; + + if (qemuMonitorSupportsActiveCommit(qemuMonitorTestGetMonitor(test))) + goto cleanup; + + ret = 0; + cleanup: + qemuMonitorTestFree(test); + return ret; +} + +static int testQemuMonitorJSONqemuMonitorJSONGetDumpGuestMemoryCapability(const void *data) { virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data; @@ -2263,6 +2323,7 @@ mymain(void) DO_TEST(qemuMonitorJSONSendKey); DO_TEST(qemuMonitorJSONGetDumpGuestMemoryCapability); DO_TEST(qemuMonitorJSONSendKeyHoldtime); + DO_TEST(qemuMonitorSupportsActiveCommit); DO_TEST_CPU_DATA("host"); DO_TEST_CPU_DATA("full"); diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa-disjoint.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa-disjoint.args new file mode 100644 index 000000000..073e84b4d --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa-disjoint.args @@ -0,0 +1,6 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu -S -M pc \ +-m 214 -smp 16 -numa node,nodeid=0,cpus=0-3,cpus=8-11,mem=107 \ +-numa node,nodeid=1,cpus=4-7,cpus=12-15,mem=107 -nographic -monitor \ +unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -usb -net none -serial none \ +-parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa-disjoint.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa-disjoint.xml new file mode 100644 index 000000000..474a23881 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa-disjoint.xml @@ -0,0 +1,28 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>16</vcpu> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu> + <topology sockets='2' cores='4' threads='2'/> + <numa> + <cell id='0' cpus='0-3,8-11' memory='109550'/> + <cell id='1' cpus='4-7,12-15' memory='109550'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa1.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa1.xml index ee402c8f7..0543f7f79 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa1.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa1.xml @@ -9,10 +9,10 @@ <boot dev='network'/> </os> <cpu> - <topology sockets="2" cores="4" threads="2"/> + <topology sockets='2' cores='4' threads='2'/> <numa> - <cell cpus="0-7" memory="109550"/> - <cell cpus="8-15" memory="109550"/> + <cell cpus='0-7' memory='109550'/> + <cell cpus='8-15' memory='109550'/> </numa> </cpu> <clock offset='utc'/> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa2.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa2.xml index ee402c8f7..0a5f9fcd1 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa2.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa2.xml @@ -9,10 +9,10 @@ <boot dev='network'/> </os> <cpu> - <topology sockets="2" cores="4" threads="2"/> + <topology sockets='2' cores='4' threads='2'/> <numa> - <cell cpus="0-7" memory="109550"/> - <cell cpus="8-15" memory="109550"/> + <cell id='1' cpus='8-15' memory='109550'/> + <cell id='0' cpus='0-7' memory='109550'/> </numa> </cpu> <clock offset='utc'/> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa3.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa3.xml new file mode 100644 index 000000000..fa3070df2 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa3.xml @@ -0,0 +1,25 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>16</vcpu> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu> + <topology sockets='2' cores='4' threads='2'/> + <numa> + <cell id='1' cpus='0-7' memory='109550'/> + <cell id='2' cpus='8-15' memory='109550'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-active-commit.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-active-commit.xml new file mode 100644 index 000000000..6ba572473 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-active-commit.xml @@ -0,0 +1,37 @@ +<domain type='qemu' id='1'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219136</memory> + <currentMemory unit='KiB'>219136</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='file' device='disk'> + <driver name='qemu' type='qcow2'/> + <source file='/tmp/HostVG/QEMUGuest1-snap'/> + <backingStore type='block' index='1'> + <format type='raw'/> + <source dev='/dev/HostVG/QEMUGuest1'/> + <backingStore/> + </backingStore> + <mirror type='block' job='active-commit'> + <format type='raw'/> + <source dev='/dev/HostVG/QEMUGuest1'/> + </mirror> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth.args index dd8fee4b1..4c5e1bebe 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth.args +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth.args @@ -3,5 +3,7 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ -M pc -m 214 -smp 1 -nographic -monitor unix:/tmp/test-monitor,server,nowait \ -no-acpi -boot c -usb \ -drive file=iscsi://myname:AQCVn5hO6HzFAhAAq0NCv8jtJcIcE+HOBlMQ1A@example.org\ -/iqn.1992-01.com.example,if=virtio,format=raw \ +:6000/iqn.1992-01.com.example,if=virtio,format=raw \ +-drive file=iscsi://example.org:6000/iqn.1992-01.com.example/1,if=virtio,\ +format=raw \ -net none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth.xml index ee87bdfbc..45df27066 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth.xml @@ -20,13 +20,19 @@ <secret type='iscsi' usage='mycluster_myname'/> </auth> <source protocol='iscsi' name='iqn.1992-01.com.example'> - <host name='example.org'/> + <host name='example.org' port='6000'/> </source> <target dev='vda' bus='virtio'/> </disk> + <disk type='network' device='disk'> + <driver name='qemu' type='raw'/> + <source protocol='iscsi' name='iqn.1992-01.com.example/1'> + <host name='example.org' port='6000'/> + </source> + <target dev='vdb' bus='virtio'/> + </disk> <controller type='usb' index='0'/> - <controller type='ide' index='0'/> <controller type='pci' index='0' model='pci-root'/> - <memballoon model='virtio'/> + <memballoon model='none'/> </devices> </domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-auth.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-auth.xml index 189ce6bec..72923ea21 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-auth.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-auth.xml @@ -15,6 +15,7 @@ <devices> <emulator>/usr/bin/qemu</emulator> <disk type='block' device='disk'> + <driver name='qemu' type='raw'/> <source dev='/dev/HostVG/QEMUGuest1'/> <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> @@ -33,6 +34,7 @@ </disk> <controller type='usb' index='0'/> <controller type='ide' index='0'/> - <memballoon model='virtio'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='none'/> </devices> </domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-mirror.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-mirror.xml index 72b03c96b..46f2a3eef 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-mirror.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-mirror.xml @@ -17,7 +17,7 @@ <disk type='block' device='disk'> <source dev='/dev/HostVG/QEMUGuest1'/> <backingStore/> - <mirror type='file' file='/dev/HostVG/QEMUGuest1Copy' ready='yes'> + <mirror type='file' file='/dev/HostVG/QEMUGuest1Copy' job='copy' ready='yes'> <source file='/dev/HostVG/QEMUGuest1Copy'/> </mirror> <target dev='hda' bus='ide'/> @@ -33,7 +33,7 @@ <disk type='file' device='disk'> <source file='/tmp/data.img'/> <backingStore/> - <mirror type='file' file='/tmp/copy.img' format='qcow2'> + <mirror type='file' file='/tmp/copy.img' format='qcow2' job='copy'> <format type='qcow2'/> <source file='/tmp/copy.img'/> </mirror> @@ -42,6 +42,10 @@ <disk type='file' device='disk'> <source file='/tmp/logs.img'/> <backingStore/> + <mirror type='file' file='/tmp/logcopy.img' format='qcow2' job='copy' ready='abort'> + <format type='qcow2'/> + <source file='/tmp/logcopy.img'/> + </mirror> <target dev='vdb' bus='virtio'/> </disk> <controller type='usb' index='0'/> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-cmd_per_lun.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-cmd_per_lun.args new file mode 100644 index 000000000..2c757905b --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-cmd_per_lun.args @@ -0,0 +1,9 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu -S -M pc -m 214 -smp 8 -nographic -nodefconfig -nodefaults \ +-monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c \ +-device virtio-scsi-pci,id=scsi0,cmd_per_lun=50,bus=pci.0,addr=0x3 \ +-usb \ +-drive file=/dev/HostVG/QEMUGuest1,if=none,id=drive-scsi0-0-0-0 \ +-device scsi-disk,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\ +drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-cmd_per_lun.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-cmd_per_lun.xml new file mode 100644 index 000000000..615a7f5ba --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-cmd_per_lun.xml @@ -0,0 +1,29 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219136</memory> + <currentMemory unit='KiB'>219136</currentMemory> + <vcpu placement='static'>8</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='sdb' bus='scsi'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='scsi' index='0' model='virtio-scsi'> + <driver cmd_per_lun='50'/> + </controller> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-max_sectors.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-max_sectors.args new file mode 100644 index 000000000..895f37992 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-max_sectors.args @@ -0,0 +1,9 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu -S -M pc -m 214 -smp 8 -nographic -nodefconfig -nodefaults \ +-monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c \ +-device virtio-scsi-pci,id=scsi0,max_sectors=512,bus=pci.0,addr=0x3 \ +-usb \ +-drive file=/dev/HostVG/QEMUGuest1,if=none,id=drive-scsi0-0-0-0 \ +-device scsi-disk,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\ +drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-max_sectors.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-max_sectors.xml new file mode 100644 index 000000000..cd7d4a7de --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-max_sectors.xml @@ -0,0 +1,29 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219136</memory> + <currentMemory unit='KiB'>219136</currentMemory> + <vcpu placement='static'>8</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='sdb' bus='scsi'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='scsi' index='0' model='virtio-scsi'> + <driver max_sectors='512'/> + </controller> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages.args b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages.args new file mode 100644 index 000000000..042683acf --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages.args @@ -0,0 +1,16 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu -S -M pc -m 4096 -smp 4 \ +-object memory-backend-file,prealloc=yes,mem-path=/dev/hugepages1G/libvirt/qemu,\ +size=1024M,id=ram-node0,host-nodes=0-3,policy=bind \ +-numa node,nodeid=0,cpus=0,memdev=ram-node0 \ +-object memory-backend-file,prealloc=yes,mem-path=/dev/hugepages2M/libvirt/qemu,\ +size=1024M,id=ram-node1,host-nodes=0-3,policy=bind \ +-numa node,nodeid=1,cpus=1,memdev=ram-node1 \ +-object memory-backend-file,prealloc=yes,mem-path=/dev/hugepages1G/libvirt/qemu,\ +size=1024M,id=ram-node2,host-nodes=0-3,policy=bind \ +-numa node,nodeid=2,cpus=2,memdev=ram-node2 \ +-object memory-backend-file,prealloc=yes,mem-path=/dev/hugepages1G/libvirt/qemu,\ +size=1024M,id=ram-node3,host-nodes=3,policy=bind \ +-numa node,nodeid=3,cpus=3,memdev=ram-node3 \ +-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \ +-hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages.xml b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages.xml new file mode 100644 index 000000000..5ad069573 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages.xml @@ -0,0 +1,45 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>4194304</memory> + <currentMemory unit='KiB'>4194304</currentMemory> + <memoryBacking> + <hugepages> + <page size='2048' unit='KiB' nodeset='1'/> + <page size='1048576' unit='KiB' nodeset='0,2-3'/> + </hugepages> + </memoryBacking> + <vcpu placement='static'>4</vcpu> + <numatune> + <memory mode='strict' nodeset='0-3'/> + <memnode cellid='3' mode='strict' nodeset='3'/> + </numatune> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <cpu> + <numa> + <cell id='0' cpus='0' memory='1048576'/> + <cell id='1' cpus='1' memory='1048576'/> + <cell id='2' cpus='2' memory='1048576'/> + <cell id='3' cpus='3' memory='1048576'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages2.args b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages2.args new file mode 100644 index 000000000..9211bc64b --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages2.args @@ -0,0 +1,10 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu -S -M pc -m 1024 -smp 2 \ +-object memory-backend-file,prealloc=yes,\ +mem-path=/dev/hugepages2M/libvirt/qemu,size=256M,id=ram-node0 \ +-numa node,nodeid=0,cpus=0,memdev=ram-node0 \ +-object memory-backend-file,prealloc=yes,\ +mem-path=/dev/hugepages2M/libvirt/qemu,size=768M,id=ram-node1 \ +-numa node,nodeid=1,cpus=1,memdev=ram-node1 \ +-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c \ +-usb -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages2.xml b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages2.xml new file mode 100644 index 000000000..3df870b6a --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages2.xml @@ -0,0 +1,38 @@ +<domain type='qemu'> + <name>SomeDummyHugepagesGuest</name> + <uuid>ef1bdff4-27f3-4e85-a807-5fb4d58463cc</uuid> + <memory unit='KiB'>1048576</memory> + <currentMemory unit='KiB'>1048576</currentMemory> + <memoryBacking> + <hugepages> + <page size='2048' unit='KiB'/> + </hugepages> + </memoryBacking> + <vcpu placement='static'>2</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <cpu> + <numa> + <cell id='0' cpus='0' memory='262144'/> + <cell id='1' cpus='1' memory='786432'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages3.args b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages3.args new file mode 100644 index 000000000..27b3f8ef4 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages3.args @@ -0,0 +1,9 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu -S -M pc -m 1024 -smp 2 \ +-object memory-backend-ram,size=256M,id=ram-node0 \ +-numa node,nodeid=0,cpus=0,memdev=ram-node0 \ +-object memory-backend-file,prealloc=yes,\ +mem-path=/dev/hugepages1G/libvirt/qemu,size=768M,id=ram-node1 \ +-numa node,nodeid=1,cpus=1,memdev=ram-node1 \ +-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \ +-hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages3.xml b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages3.xml new file mode 100644 index 000000000..35aa2cf94 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages3.xml @@ -0,0 +1,38 @@ +<domain type='qemu'> + <name>SomeDummyHugepagesGuest</name> + <uuid>ef1bdff4-27f3-4e85-a807-5fb4d58463cc</uuid> + <memory unit='KiB'>1048576</memory> + <currentMemory unit='KiB'>1048576</currentMemory> + <memoryBacking> + <hugepages> + <page size='1048576' unit='KiB' nodeset='1'/> + </hugepages> + </memoryBacking> + <vcpu placement='static'>2</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <cpu> + <numa> + <cell id='0' cpus='0' memory='262144'/> + <cell id='1' cpus='1' memory='786432'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hugepages.args b/tests/qemuxml2argvdata/qemuxml2argv-hugepages.args index d42d9fc50..51c5d623a 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-hugepages.args +++ b/tests/qemuxml2argvdata/qemuxml2argv-hugepages.args @@ -1,5 +1,5 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ /usr/bin/qemu -S -M \ -pc -m 214 -mem-prealloc -mem-path /dev/hugepages/libvirt/qemu -smp 1 \ +pc -m 214 -mem-prealloc -mem-path /dev/hugepages2M/libvirt/qemu -smp 1 \ -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb -hda \ /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.args b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.args new file mode 100644 index 000000000..cc66ec3ff --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.args @@ -0,0 +1,7 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu -S -M \ +pc -m 214 -smp 1 -nographic -nodefaults -monitor unix:/tmp/test-monitor,server,nowait \ +-no-acpi -boot c -usb -hda /dev/HostVG/QEMUGuest1 \ +-chardev socket,id=charnet0,path=/tmp/vhost.sock,server \ +-netdev type=vhost-user,id=hostnet0,chardev=charnet0 \ +-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:ee:96:6b,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.xml new file mode 100644 index 000000000..b49d48ef9 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.xml @@ -0,0 +1,33 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219136</memory> + <currentMemory unit='KiB'>219136</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='block' device='disk'> + <driver name='qemu' type='raw'/> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <interface type='vhostuser'> + <mac address='52:54:00:ee:96:6b'/> + <source type='unix' path='/tmp/vhost.sock' mode='server'/> + <model type='virtio'/> + </interface> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-prefer.xml b/tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-prefer.xml new file mode 100644 index 000000000..63f0d1fa3 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-prefer.xml @@ -0,0 +1,29 @@ +<domain type='qemu'> + <name>QEMUGuest</name> + <uuid>9f4b6512-e73a-4a25-93e8-5307802821ce</uuid> + <memory unit='KiB'>65536</memory> + <currentMemory unit='KiB'>65536</currentMemory> + <vcpu placement='auto'>1</vcpu> + <numatune> + <memory mode='preferred'/> + </numatune> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <cpu> + <numa> + <cell id='0' cpus='0' memory='65536'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/kvm</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode-no-memory.args b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode-no-memory.args new file mode 100644 index 000000000..b0e274ca0 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode-no-memory.args @@ -0,0 +1,8 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/kvm -S -M pc -m 64 -smp 2 \ +-object memory-backend-ram,size=32M,id=ram-node0,host-nodes=3,policy=preferred \ +-numa node,nodeid=0,cpus=0,memdev=ram-node0 \ +-object memory-backend-ram,size=32M,id=ram-node1 \ +-numa node,nodeid=1,cpus=1,memdev=ram-node1 \ +-nographic -monitor unix:/tmp/test-monitor,server,nowait \ +-no-acpi -boot c -usb -net none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode-no-memory.xml b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode-no-memory.xml new file mode 100644 index 000000000..4b2efa210 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode-no-memory.xml @@ -0,0 +1,30 @@ +<domain type='qemu'> + <name>QEMUGuest</name> + <uuid>9f4b6512-e73a-4a25-93e8-5307802821ce</uuid> + <memory unit='KiB'>65536</memory> + <currentMemory unit='KiB'>65536</currentMemory> + <vcpu placement='static'>2</vcpu> + <numatune> + <memnode cellid='0' mode='preferred' nodeset='3'/> + </numatune> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <cpu> + <numa> + <cell id='0' cpus='0' memory='32768'/> + <cell id='1' cpus='1' memory='32768'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/kvm</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode-nocpu.xml b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode-nocpu.xml new file mode 100644 index 000000000..7b0e2483a --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode-nocpu.xml @@ -0,0 +1,25 @@ +<domain type='kvm'> + <name>QEMUGuest</name> + <uuid>9f4b6512-e73a-4a25-93e8-5307802821ce</uuid> + <memory unit='KiB'>65536</memory> + <currentMemory unit='KiB'>65536</currentMemory> + <vcpu placement='static'>1</vcpu> + <numatune> + <memory mode='strict' nodeset='0,2'/> + <memnode cellid='0' mode='interleave' nodeset='3'/> + </numatune> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/kvm</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode.args b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode.args new file mode 100644 index 000000000..e4beb9808 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode.args @@ -0,0 +1,11 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/kvm -S -M pc -m 24104 -smp 32 \ +-object memory-backend-ram,size=20M,id=ram-node0,host-nodes=3,policy=preferred \ +-numa node,nodeid=0,cpus=0,memdev=ram-node0 \ +-object memory-backend-ram,size=645M,id=ram-node1,host-nodes=0-7,policy=bind \ +-numa node,nodeid=1,cpus=1-27,cpus=29,memdev=ram-node1 \ +-object memory-backend-ram,size=23440M,id=ram-node2,\ +host-nodes=1-2,host-nodes=5,host-nodes=7,policy=bind \ +-numa node,nodeid=2,cpus=28,cpus=30-31,memdev=ram-node2 \ +-nographic -monitor unix:/tmp/test-monitor,server,nowait \ +-no-acpi -boot c -usb -net none -serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode.xml b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode.xml new file mode 100644 index 000000000..440413bfc --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode.xml @@ -0,0 +1,33 @@ +<domain type='qemu'> + <name>QEMUGuest</name> + <uuid>9f4b6512-e73a-4a25-93e8-5307802821ce</uuid> + <memory unit='KiB'>24682468</memory> + <currentMemory unit='KiB'>24682468</currentMemory> + <vcpu placement='static'>32</vcpu> + <numatune> + <memnode cellid='0' mode='preferred' nodeset='3'/> + <memory mode='strict' nodeset='0-7'/> + <memnode cellid='2' mode='strict' nodeset='1-2,5-7,^6'/> + </numatune> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <cpu> + <numa> + <cell id='0' cpus='0' memory='20002'/> + <cell id='1' cpus='1-27,29' memory='660066'/> + <cell id='2' cpus='28-31,^29' memory='24002400'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/kvm</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnodes-problematic.xml b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnodes-problematic.xml new file mode 100644 index 000000000..bb4e4af04 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-numatune-memnodes-problematic.xml @@ -0,0 +1,31 @@ +<domain type='qemu'> + <name>QEMUGuest</name> + <uuid>9f4b6512-e73a-4a25-93e8-5307802821ce</uuid> + <memory unit='KiB'>65536</memory> + <currentMemory unit='KiB'>65536</currentMemory> + <vcpu placement='auto'>2</vcpu> + <numatune> + <memory placement='auto'/> + <memnode cellid='0' mode='strict' nodeset='3'/> + </numatune> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <cpu> + <numa> + <cell id='0' cpus='0' memory='32768'/> + <cell id='1' cpus='1' memory='32768'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/kvm</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-none.xml b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-none.xml new file mode 100644 index 000000000..cec59f8bf --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-none.xml @@ -0,0 +1,28 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static' cpuset='1-4,8-20,525'>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> + <seclabel type='none' model='none'/> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-multiple.xml b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-multiple.xml new file mode 100644 index 000000000..bd6fd15e9 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-multiple.xml @@ -0,0 +1,40 @@ +<domain type='qemu' id='1'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static' cpuset='1-4,8-20,525'>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'> + <seclabel model='selinux' labelskip='yes'/> + </source> + <backingStore/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> + <seclabel type='none' relabel='no'/> + <seclabel type='dynamic' model='dac' relabel='yes'/> + <seclabel type='static' model='selinux' relabel='yes'> + <label>system_u:system_r:svirt_custom_t:s0:c192,c392</label> + <imagelabel>system_u:system_r:svirt_custom_t:s0:c192,c392</imagelabel> + </seclabel> + <seclabel type='static' model='selinux' relabel='yes'> + <label>system_u:system_r:svirt_custom_t:s0:c192,c393</label> + <imagelabel>system_u:system_r:svirt_custom_t:s0:c192,c393</imagelabel> + </seclabel> +</domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args index 4ae6257f7..58cc47326 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args +++ b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args @@ -3,5 +3,5 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ -S -M pc -m 214 -smp 1 -nographic -nodefaults \ -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ --object rng-random,id=rng0 \ +-object rng-random,id=rng0,filename=/dev/random \ -device virtio-rng-pci,rng=rng0,bus=pci.0,addr=0x7 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-multiple.args b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-multiple.args new file mode 100644 index 000000000..d1faf09e2 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-multiple.args @@ -0,0 +1,10 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu -S \ +-M pc -m 214 -smp 1 -nographic -nodefaults \ +-monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ +-object rng-random,id=rng0,filename=/dev/random \ +-device virtio-rng-pci,rng=rng0,bus=pci.0,addr=0x7 \ +-chardev socket,id=charrng1,host=1.2.3.4,port=1234 \ +-object rng-egd,chardev=charrng1,id=rng1 \ +-device virtio-rng-pci,rng=rng1,bus=pci.0,addr=0x4 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-multiple.xml b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-multiple.xml new file mode 100644 index 000000000..31269d0a8 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-multiple.xml @@ -0,0 +1,31 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static' cpuset='1-4,8-20,525'>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + <rng model='virtio'> + <backend model='random'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> + </rng> + <rng model='virtio'> + <backend model='egd' type='tcp'> + <source mode='connect' host='1.2.3.4' service='1234'/> + <protocol type='raw'/> + </backend> + </rng> + </devices> +</domain> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 4ff13281d..12ecabcff 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -524,12 +524,16 @@ mymain(void) VIR_FREE(driver.config->stateDir); if (VIR_STRDUP_QUIET(driver.config->stateDir, "/nowhere") < 0) return EXIT_FAILURE; - VIR_FREE(driver.config->hugetlbfsMount); - if (VIR_STRDUP_QUIET(driver.config->hugetlbfsMount, "/dev/hugepages") < 0) + VIR_FREE(driver.config->hugetlbfs); + if (VIR_ALLOC_N(driver.config->hugetlbfs, 2) < 0) return EXIT_FAILURE; - VIR_FREE(driver.config->hugepagePath); - if (VIR_STRDUP_QUIET(driver.config->hugepagePath, "/dev/hugepages/libvirt/qemu") < 0) + driver.config->nhugetlbfs = 2; + if (VIR_STRDUP(driver.config->hugetlbfs[0].mnt_dir, "/dev/hugepages2M") < 0 || + VIR_STRDUP(driver.config->hugetlbfs[1].mnt_dir, "/dev/hugepages1G") < 0) return EXIT_FAILURE; + driver.config->hugetlbfs[0].size = 2048; + driver.config->hugetlbfs[0].deflt = true; + driver.config->hugetlbfs[1].size = 1048576; driver.config->spiceTLS = 1; if (VIR_STRDUP_QUIET(driver.config->spicePassword, "123456") < 0) return EXIT_FAILURE; @@ -663,6 +667,12 @@ mymain(void) DO_TEST("hyperv-off", NONE); DO_TEST("hugepages", QEMU_CAPS_MEM_PATH); + DO_TEST("hugepages-pages", QEMU_CAPS_MEM_PATH, QEMU_CAPS_OBJECT_MEMORY_RAM, + QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-pages2", QEMU_CAPS_MEM_PATH, QEMU_CAPS_OBJECT_MEMORY_RAM, + QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-pages3", QEMU_CAPS_MEM_PATH, QEMU_CAPS_OBJECT_MEMORY_RAM, + QEMU_CAPS_OBJECT_MEMORY_FILE); DO_TEST("nosharepages", QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_MEM_MERGE); DO_TEST("disk-cdrom", NONE); DO_TEST("disk-cdrom-network-http", QEMU_CAPS_KVM, QEMU_CAPS_DEVICE, @@ -809,6 +819,12 @@ mymain(void) DO_TEST("disk-virtio-scsi-num_queues", QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_VIRTIO_SCSI); + DO_TEST("disk-virtio-scsi-cmd_per_lun", + QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, + QEMU_CAPS_VIRTIO_SCSI); + DO_TEST("disk-virtio-scsi-max_sectors", + QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, + QEMU_CAPS_VIRTIO_SCSI); DO_TEST("disk-scsi-megasas", QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_SCSI_MEGASAS); @@ -927,6 +943,7 @@ mymain(void) DO_TEST_FAILURE("misc-enable-s4", NONE); DO_TEST("misc-no-reboot", NONE); DO_TEST("misc-uuid", QEMU_CAPS_NAME, QEMU_CAPS_UUID); + DO_TEST("net-vhostuser", QEMU_CAPS_DEVICE, QEMU_CAPS_NETDEV); DO_TEST("net-user", NONE); DO_TEST("net-virtio", NONE); DO_TEST("net-virtio-device", @@ -1171,6 +1188,9 @@ mymain(void) DO_TEST("cpu-strict1", NONE); DO_TEST("cpu-numa1", NONE); DO_TEST("cpu-numa2", QEMU_CAPS_SMP_TOPOLOGY); + DO_TEST_PARSE_ERROR("cpu-numa3", NONE); + DO_TEST_FAILURE("cpu-numa-disjoint", NONE); + DO_TEST("cpu-numa-disjoint", QEMU_CAPS_NUMA); DO_TEST("cpu-host-model", NONE); skipLegacyCPUs = true; DO_TEST("cpu-host-model-fallback", NONE); @@ -1187,8 +1207,17 @@ mymain(void) DO_TEST("blkiotune-device", QEMU_CAPS_NAME); DO_TEST("cputune", QEMU_CAPS_NAME); DO_TEST("cputune-zero-shares", QEMU_CAPS_NAME); + DO_TEST("numatune-memory", NONE); + DO_TEST("numatune-memnode", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST_FAILURE("numatune-memnode", NONE); + + DO_TEST("numatune-memnode-no-memory", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST_FAILURE("numatune-memnode-no-memory", NONE); + DO_TEST("numatune-auto-nodeset-invalid", NONE); + DO_TEST_PARSE_ERROR("numatune-memnode-nocpu", NONE); + DO_TEST_PARSE_ERROR("numatune-memnodes-problematic", NONE); DO_TEST("numad", NONE); DO_TEST("numad-auto-vcpu-static-numatune", NONE); DO_TEST("numad-auto-memory-vcpu-cpuset", NONE); @@ -1217,6 +1246,7 @@ mymain(void) DO_TEST("seclabel-static-labelskip", QEMU_CAPS_NAME); DO_TEST("seclabel-none", QEMU_CAPS_NAME); DO_TEST("seclabel-dac-none", QEMU_CAPS_NAME); + DO_TEST_PARSE_ERROR("seclabel-multiple", QEMU_CAPS_NAME); DO_TEST("pseries-basic", QEMU_CAPS_CHARDEV, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG); @@ -1263,6 +1293,8 @@ mymain(void) QEMU_CAPS_OBJECT_RNG_RANDOM); DO_TEST("virtio-rng-egd", QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_EGD); + DO_TEST("virtio-rng-multiple", QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_VIRTIO_RNG, + QEMU_CAPS_OBJECT_RNG_EGD, QEMU_CAPS_OBJECT_RNG_RANDOM); DO_TEST_PARSE_ERROR("virtio-rng-egd-crash", QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_EGD); DO_TEST("virtio-rng-ccw", diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-numa1.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-numa1.xml new file mode 100644 index 000000000..227bf1cd0 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-numa1.xml @@ -0,0 +1,28 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>16</vcpu> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu> + <topology sockets='2' cores='4' threads='2'/> + <numa> + <cell id='0' cpus='0-7' memory='109550'/> + <cell id='1' cpus='8-15' memory='109550'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-numa2.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-numa2.xml new file mode 100644 index 000000000..227bf1cd0 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-numa2.xml @@ -0,0 +1,28 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>16</vcpu> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu> + <topology sockets='2' cores='4' threads='2'/> + <numa> + <cell id='0' cpus='0-7' memory='109550'/> + <cell id='1' cpus='8-15' memory='109550'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml index 72b03c96b..abec1806e 100644 --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml @@ -17,7 +17,7 @@ <disk type='block' device='disk'> <source dev='/dev/HostVG/QEMUGuest1'/> <backingStore/> - <mirror type='file' file='/dev/HostVG/QEMUGuest1Copy' ready='yes'> + <mirror type='file' file='/dev/HostVG/QEMUGuest1Copy' job='copy' ready='yes'> <source file='/dev/HostVG/QEMUGuest1Copy'/> </mirror> <target dev='hda' bus='ide'/> @@ -33,7 +33,7 @@ <disk type='file' device='disk'> <source file='/tmp/data.img'/> <backingStore/> - <mirror type='file' file='/tmp/copy.img' format='qcow2'> + <mirror type='file' file='/tmp/copy.img' format='qcow2' job='copy'> <format type='qcow2'/> <source file='/tmp/copy.img'/> </mirror> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-numatune-auto-prefer.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-numatune-auto-prefer.xml new file mode 100644 index 000000000..19761b42d --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-numatune-auto-prefer.xml @@ -0,0 +1,29 @@ +<domain type='qemu'> + <name>QEMUGuest</name> + <uuid>9f4b6512-e73a-4a25-93e8-5307802821ce</uuid> + <memory unit='KiB'>65536</memory> + <currentMemory unit='KiB'>65536</currentMemory> + <vcpu placement='auto'>1</vcpu> + <numatune> + <memory mode='preferred' placement='auto'/> + </numatune> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <cpu> + <numa> + <cell id='0' cpus='0' memory='65536'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/kvm</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-numatune-memnode.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-numatune-memnode.xml new file mode 100644 index 000000000..82b5f6187 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-numatune-memnode.xml @@ -0,0 +1,33 @@ +<domain type='qemu'> + <name>QEMUGuest</name> + <uuid>9f4b6512-e73a-4a25-93e8-5307802821ce</uuid> + <memory unit='KiB'>24682468</memory> + <currentMemory unit='KiB'>24682468</currentMemory> + <vcpu placement='static'>32</vcpu> + <numatune> + <memory mode='strict' nodeset='0-7'/> + <memnode cellid='0' mode='preferred' nodeset='3'/> + <memnode cellid='2' mode='strict' nodeset='1-2,5,7'/> + </numatune> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <cpu> + <numa> + <cell id='0' cpus='0' memory='20002'/> + <cell id='1' cpus='1-27,29' memory='660066'/> + <cell id='2' cpus='28-31,^29' memory='24002400'/> + </numa> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/kvm</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 43cd02224..451dedcff 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -197,6 +197,9 @@ mymain(void) DO_TEST("hyperv-off"); DO_TEST("hugepages"); + DO_TEST("hugepages-pages"); + DO_TEST("hugepages-pages2"); + DO_TEST("hugepages-pages3"); DO_TEST("nosharepages"); DO_TEST("disk-aio"); DO_TEST("disk-cdrom"); @@ -223,10 +226,13 @@ mymain(void) DO_TEST("disk-scsi-vscsi"); DO_TEST("disk-scsi-virtio-scsi"); DO_TEST("disk-virtio-scsi-num_queues"); + DO_TEST("disk-virtio-scsi-cmd_per_lun"); + DO_TEST("disk-virtio-scsi-max_sectors"); DO_TEST("disk-scsi-megasas"); DO_TEST_DIFFERENT("disk-mirror-old"); DO_TEST_FULL("disk-mirror", false, WHEN_ACTIVE); DO_TEST_FULL("disk-mirror", true, WHEN_INACTIVE); + DO_TEST_FULL("disk-active-commit", false, WHEN_ACTIVE); DO_TEST("graphics-listen-network"); DO_TEST("graphics-vnc"); DO_TEST("graphics-vnc-websocket"); @@ -245,6 +251,7 @@ mymain(void) DO_TEST("misc-disable-suspends"); DO_TEST("misc-enable-s4"); DO_TEST("misc-no-reboot"); + DO_TEST("net-vhostuser"); DO_TEST("net-user"); DO_TEST("net-virtio"); DO_TEST("net-virtio-device"); @@ -305,6 +312,7 @@ mymain(void) DO_TEST_FULL("seclabel-static-labelskip", false, WHEN_ACTIVE); DO_TEST("seclabel-none"); DO_TEST("seclabel-dac-none"); + DO_TEST("seclabel-dynamic-none"); DO_TEST("numad-static-vcpu-no-numatune"); DO_TEST("disk-scsi-lun-passthrough-sgio"); @@ -366,6 +374,14 @@ mymain(void) DO_TEST("chardev-label"); + DO_TEST_DIFFERENT("cpu-numa1"); + DO_TEST_DIFFERENT("cpu-numa2"); + DO_TEST("cpu-numa-disjoint"); + + DO_TEST_DIFFERENT("numatune-auto-prefer"); + DO_TEST_DIFFERENT("numatune-memnode"); + DO_TEST("numatune-memnode-no-memory"); + virObjectUnref(driver.caps); virObjectUnref(driver.xmlopt); diff --git a/tests/scsihosttest.c b/tests/scsihosttest.c new file mode 100644 index 000000000..eecb1c3ad --- /dev/null +++ b/tests/scsihosttest.c @@ -0,0 +1,308 @@ +/* + * Copyright (C) 2014 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * <http://www.gnu.org/licenses/>. + * + */ + +#include <config.h> + +#include "testutils.h" + +#ifdef __linux__ + +# include <fcntl.h> +# include <sys/stat.h> +# include "virstring.h" +# include "virutil.h" +# include "virerror.h" +# include "virlog.h" + +# define VIR_FROM_THIS VIR_FROM_NONE + +VIR_LOG_INIT("tests.scsihosttest"); + +char *scsihost_class_path; +# define TEST_SCSIHOST_CLASS_PATH scsihost_class_path + +/* + * Initialized/create a mock sysfs environment with 4 scsi_host devices + * located on "0000:00:1f.1" and "0000:00:1f.2". Each directory will + * contain 4 unique_id files having the same value. + * + * The environment is: + * + * 4 files: + * + * sys/devices/pci0000:00/0000:00:1f.1/ata1/host0/scsi_host/host0/unique_id + * sys/devices/pci0000:00/0000:00:1f.1/ata2/host1/scsi_host/host1/unique_id + * sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/unique_id + * sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/scsi_host/host1/unique_id + * + * 4 symlinks: + * + * sys/class/scsi_host/host0 -> link to 1f.1 host 0 + * sys/class/scsi_host/host1 -> link to 1f.1 host 1 + * sys/class/scsi_host/host2 -> link to 1f.2 host 0 + * sys/class/scsi_host/host3 -> link to 1f.2 host 1 + * + * The unique_id's for host0 and host2 are set to "1" + * The unique_id's for host1 and host3 are set to "2" + */ + +static int +create_scsihost(const char *fakesysfsdir, const char *devicepath, + const char *unique_id, const char *hostname) +{ + char *unique_id_path = NULL; + char *link_path = NULL; + char *spot; + int ret = -1; + int fd = -1; + + if (virAsprintfQuiet(&unique_id_path, "%s/devices/pci0000:00/%s/unique_id", + fakesysfsdir, devicepath) < 0 || + virAsprintfQuiet(&link_path, "%s/class/scsi_host/%s", + fakesysfsdir, hostname) < 0) { + fprintf(stderr, "Out of memory\n"); + goto cleanup; + } + + /* Rather than create path & file, temporarily snip off the file to + * create the path + */ + if (!(spot = strstr(unique_id_path, "unique_id"))) { + fprintf(stderr, "Did not find unique_id in path\n"); + goto cleanup; + } + spot--; + *spot = '\0'; + if (virFileMakePathWithMode(unique_id_path, 0755) < 0) { + fprintf(stderr, "Unable to make path to '%s'\n", unique_id_path); + goto cleanup; + } + *spot = '/'; + + /* Rather than create path & file, temporarily snip off the file to + * create the path + */ + if (!(spot = strstr(link_path, hostname))) { + fprintf(stderr, "Did not find hostname in path\n"); + goto cleanup; + } + spot--; + *spot = '\0'; + if (virFileMakePathWithMode(link_path, 0755) < 0) { + fprintf(stderr, "Unable to make path to '%s'\n", link_path); + goto cleanup; + } + *spot = '/'; + + if ((fd = open(unique_id_path, O_CREAT|O_WRONLY, 0444)) < 0) { + fprintf(stderr, "Unable to create '%s'\n", unique_id_path); + goto cleanup; + } + + if (safewrite(fd, unique_id, 1) != 1) { + fprintf(stderr, "Unable to write '%s'\n", unique_id); + goto cleanup; + } + VIR_DEBUG("Created unique_id '%s'", unique_id_path); + + /* The link is to the path not the file - so remove the file */ + if (!(spot = strstr(unique_id_path, "unique_id"))) { + fprintf(stderr, "Did not find unique_id in path\n"); + goto cleanup; + } + spot--; + *spot = '\0'; + if (symlink(unique_id_path, link_path) < 0) { + fprintf(stderr, "Unable to create symlink '%s' to '%s'\n", + link_path, unique_id_path); + goto cleanup; + } + VIR_DEBUG("Created symlink '%s'", link_path); + + ret = 0; + + cleanup: + VIR_FORCE_CLOSE(fd); + VIR_FREE(unique_id_path); + VIR_FREE(link_path); + return ret; +} + +static int +init_scsihost_sysfs(const char *fakesysfsdir) +{ + int ret = 0; + + if (create_scsihost(fakesysfsdir, + "0000:00:1f.1/ata1/host0/scsi_host/host0", + "1", "host0") < 0 || + create_scsihost(fakesysfsdir, + "0000:00:1f.1/ata2/host1/scsi_host/host1", + "2", "host1") < 0 || + create_scsihost(fakesysfsdir, + "0000:00:1f.2/ata1/host0/scsi_host/host0", + "1", "host2") < 0 || + create_scsihost(fakesysfsdir, + "0000:00:1f.2/ata2/host1/scsi_host/host1", + "2", "host3") < 0) + ret = -1; + + return ret; +} + +/* Test virReadSCSIUniqueId */ +static int +testVirReadSCSIUniqueId(const void *data ATTRIBUTE_UNUSED) +{ + int hostnum, unique_id; + + for (hostnum = 0; hostnum < 4; hostnum++) { + if (virReadSCSIUniqueId(TEST_SCSIHOST_CLASS_PATH, + hostnum, &unique_id) < 0) { + fprintf(stderr, "Failed to read hostnum=%d unique_id\n", hostnum); + return -1; + } + + /* host0 and host2 have unique_id == 1 + * host1 and host3 have unique_id == 2 + */ + if ((hostnum == 0 || hostnum == 2) && unique_id != 1) { + fprintf(stderr, "The unique_id='%d' for hostnum=%d is wrong\n", + unique_id, hostnum); + return -1; + } else if ((hostnum == 1 || hostnum == 3) && unique_id != 2) { + fprintf(stderr, "The unique_id='%d' for hostnum=%d is wrong\n", + unique_id, hostnum); + return -1; + } + } + + return 0; +} + +/* Test virFindSCSIHostByPCI */ +static int +testVirFindSCSIHostByPCI(const void *data ATTRIBUTE_UNUSED) +{ + unsigned int unique_id1 = 1; + unsigned int unique_id2 = 2; + const char *pci_addr1 = "0000:00:1f.1"; + const char *pci_addr2 = "0000:00:1f.2"; + char *path_addr = NULL; + char *ret_host = NULL; + int ret = -1; + + if (virAsprintf(&path_addr, "%s/%s", abs_srcdir, + "sysfs/class/scsi_host") < 0) + goto cleanup; + + if (!(ret_host = virFindSCSIHostByPCI(TEST_SCSIHOST_CLASS_PATH, + pci_addr1, unique_id1)) || + STRNEQ(ret_host, "host0")) + goto cleanup; + VIR_FREE(ret_host); + + if (!(ret_host = virFindSCSIHostByPCI(TEST_SCSIHOST_CLASS_PATH, + pci_addr1, unique_id2)) || + STRNEQ(ret_host, "host1")) + goto cleanup; + VIR_FREE(ret_host); + + if (!(ret_host = virFindSCSIHostByPCI(TEST_SCSIHOST_CLASS_PATH, + pci_addr2, unique_id1)) || + STRNEQ(ret_host, "host2")) + goto cleanup; + VIR_FREE(ret_host); + + if (!(ret_host = virFindSCSIHostByPCI(TEST_SCSIHOST_CLASS_PATH, + pci_addr2, unique_id2)) || + STRNEQ(ret_host, "host3")) + goto cleanup; + VIR_FREE(ret_host); + + ret = 0; + + cleanup: + VIR_FREE(ret_host); + VIR_FREE(path_addr); + return ret; +} + +# define FAKESYSFSDIRTEMPLATE abs_builddir "/fakesysfsdir-XXXXXX" + +static int +mymain(void) +{ + int ret = -1; + char *fakesysfsdir = NULL; + + if (VIR_STRDUP_QUIET(fakesysfsdir, FAKESYSFSDIRTEMPLATE) < 0) { + fprintf(stderr, "Out of memory\n"); + goto cleanup; + } + + if (!mkdtemp(fakesysfsdir)) { + fprintf(stderr, "Cannot create fakesysfsdir"); + goto cleanup; + } + + setenv("LIBVIRT_FAKE_SYSFS_DIR", fakesysfsdir, 1); + + if (init_scsihost_sysfs(fakesysfsdir) < 0) { + fprintf(stderr, "Failed to create fakesysfs='%s'\n", fakesysfsdir); + goto cleanup; + } + + if (virAsprintfQuiet(&scsihost_class_path, "%s/class/scsi_host", + fakesysfsdir) < 0) { + fprintf(stderr, "Out of memory\n"); + goto cleanup; + } + VIR_DEBUG("Reading from '%s'", scsihost_class_path); + + if (virtTestRun("testVirReadSCSIUniqueId", + testVirReadSCSIUniqueId, NULL) < 0) { + ret = -1; + goto cleanup; + } + + if (virtTestRun("testVirFindSCSIHostByPCI", + testVirFindSCSIHostByPCI, NULL) < 0) { + ret = -1; + goto cleanup; + } + + ret = 0; + + cleanup: + if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL) + virFileDeleteTree(fakesysfsdir); + VIR_FREE(fakesysfsdir); + VIR_FREE(scsihost_class_path); + return ret; +} + +VIRT_TEST_MAIN(mymain) +#else +int +main(void) +{ + return EXIT_AM_SKIP; +} +#endif diff --git a/tests/statstest.c b/tests/statstest.c index ce1567cf1..f9b45738d 100644 --- a/tests/statstest.c +++ b/tests/statstest.c @@ -5,7 +5,7 @@ #include <string.h> #include <sys/utsname.h> -#include "virstatslinux.h" +#include "virstats.h" #include "internal.h" #include "xen/block_stats.h" #include "testutils.h" diff --git a/tests/storagepoolxml2xmlin/pool-netfs-gluster-without-slash.xml b/tests/storagepoolxml2xmlin/pool-netfs-gluster-without-slash.xml new file mode 100644 index 000000000..69a2c6d2d --- /dev/null +++ b/tests/storagepoolxml2xmlin/pool-netfs-gluster-without-slash.xml @@ -0,0 +1,12 @@ +<pool type='netfs'> + <source> + <host name='example.com'/> + <format type='glusterfs'/> + <dir path='volume'/> + </source> + <name>netfs-gluster</name> + <uuid>d5609ced-94b1-489e-b218-eff35c30336a</uuid> + <target> + <path>/mnt/gluster</path> + </target> +</pool> diff --git a/tests/storagepoolxml2xmlin/pool-scsi-type-scsi-host-stable.xml b/tests/storagepoolxml2xmlin/pool-scsi-type-scsi-host-stable.xml new file mode 100644 index 000000000..db13cd05a --- /dev/null +++ b/tests/storagepoolxml2xmlin/pool-scsi-type-scsi-host-stable.xml @@ -0,0 +1,19 @@ +<pool type="scsi"> + <name>hba0</name> + <uuid>e9392370-2917-565e-692b-d057f46512d6</uuid> + <source> + <adapter type='scsi_host'> + <parentaddr unique_id='5'> + <address domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> + </parentaddr> + </adapter> + </source> + <target> + <path>/dev/disk/by-path</path> + <permissions> + <mode>0700</mode> + <owner>0</owner> + <group>0</group> + </permissions> + </target> +</pool> diff --git a/tests/storagepoolxml2xmlout/pool-scsi-type-scsi-host-stable.xml b/tests/storagepoolxml2xmlout/pool-scsi-type-scsi-host-stable.xml new file mode 100644 index 000000000..dd3d87db5 --- /dev/null +++ b/tests/storagepoolxml2xmlout/pool-scsi-type-scsi-host-stable.xml @@ -0,0 +1,22 @@ +<pool type='scsi'> + <name>hba0</name> + <uuid>e9392370-2917-565e-692b-d057f46512d6</uuid> + <capacity unit='bytes'>0</capacity> + <allocation unit='bytes'>0</allocation> + <available unit='bytes'>0</available> + <source> + <adapter type='scsi_host'> + <parentaddr unique_id='5'> + <address domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> + </parentaddr> + </adapter> + </source> + <target> + <path>/dev/disk/by-path</path> + <permissions> + <mode>0700</mode> + <owner>0</owner> + <group>0</group> + </permissions> + </target> +</pool> diff --git a/tests/storagepoolxml2xmltest.c b/tests/storagepoolxml2xmltest.c index 971fe3bb0..d7ae10b41 100644 --- a/tests/storagepoolxml2xmltest.c +++ b/tests/storagepoolxml2xmltest.c @@ -104,6 +104,7 @@ mymain(void) DO_TEST("pool-sheepdog"); DO_TEST("pool-gluster"); DO_TEST("pool-gluster-sub"); + DO_TEST("pool-scsi-type-scsi-host-stable"); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv b/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv new file mode 100644 index 000000000..d5a754701 --- /dev/null +++ b/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv @@ -0,0 +1,3 @@ +qemu-img create -f qcow2 -b /dev/null \ +-o backing_fmt=raw,encryption=on,nocow=on,compat=0.10 \ +/var/lib/libvirt/images/OtherDemo.img 5242880K diff --git a/tests/storagevolxml2argvdata/qcow2-nocow.argv b/tests/storagevolxml2argvdata/qcow2-nocow.argv new file mode 100644 index 000000000..e54801c78 --- /dev/null +++ b/tests/storagevolxml2argvdata/qcow2-nocow.argv @@ -0,0 +1,3 @@ +qemu-img create -f qcow2 -b /dev/null \ +-o backing_fmt=raw,encryption=on,nocow=on \ +/var/lib/libvirt/images/OtherDemo.img 5242880K diff --git a/tests/storagevolxml2argvtest.c b/tests/storagevolxml2argvtest.c index 11d70e12a..2a45f6f3c 100644 --- a/tests/storagevolxml2argvtest.c +++ b/tests/storagevolxml2argvtest.c @@ -296,6 +296,12 @@ mymain(void) DO_TEST("pool-logical", "vol-logical", "pool-dir", "vol-qcow2-nobacking", "logical-from-qcow2", 0, FMT_COMPAT); + DO_TEST("pool-dir", "vol-qcow2-nocow", + NULL, NULL, + "qcow2-nocow", 0, FMT_OPTIONS); + DO_TEST("pool-dir", "vol-qcow2-nocow", + NULL, NULL, + "qcow2-nocow-compat", 0, FMT_COMPAT); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/tests/storagevolxml2xmlin/vol-qcow2-nocow.xml b/tests/storagevolxml2xmlin/vol-qcow2-nocow.xml new file mode 100644 index 000000000..661475be7 --- /dev/null +++ b/tests/storagevolxml2xmlin/vol-qcow2-nocow.xml @@ -0,0 +1,32 @@ +<volume> + <name>OtherDemo.img</name> + <key>/var/lib/libvirt/images/OtherDemo.img</key> + <source> + </source> + <capacity unit="G">5</capacity> + <allocation>294912</allocation> + <target> + <path>/var/lib/libvirt/images/OtherDemo.img</path> + <format type='qcow2'/> + <permissions> + <mode>0644</mode> + <owner>0</owner> + <group>0</group> + <label>unconfined_u:object_r:virt_image_t:s0</label> + </permissions> + <encryption format='qcow'> + <secret type='passphrase' uuid='e78d4b51-a2af-485f-b0f5-afca709a80f4'/> + </encryption> + <nocow/> + </target> + <backingStore> + <path>/dev/null</path> + <format type='raw'/> + <permissions> + <mode>0644</mode> + <owner>0</owner> + <group>0</group> + <label>unconfined_u:object_r:virt_image_t:s0</label> + </permissions> + </backingStore> +</volume> diff --git a/tests/storagevolxml2xmlout/vol-qcow2-nocow.xml b/tests/storagevolxml2xmlout/vol-qcow2-nocow.xml new file mode 100644 index 000000000..31dc57873 --- /dev/null +++ b/tests/storagevolxml2xmlout/vol-qcow2-nocow.xml @@ -0,0 +1,31 @@ +<volume type='file'> + <name>OtherDemo.img</name> + <key>/var/lib/libvirt/images/OtherDemo.img</key> + <source> + </source> + <capacity unit='bytes'>5368709120</capacity> + <allocation unit='bytes'>294912</allocation> + <target> + <path>/var/lib/libvirt/images/OtherDemo.img</path> + <format type='qcow2'/> + <permissions> + <mode>0644</mode> + <owner>0</owner> + <group>0</group> + <label>unconfined_u:object_r:virt_image_t:s0</label> + </permissions> + <encryption format='qcow'> + <secret type='passphrase' uuid='e78d4b51-a2af-485f-b0f5-afca709a80f4'/> + </encryption> + </target> + <backingStore> + <path>/dev/null</path> + <format type='raw'/> + <permissions> + <mode>0644</mode> + <owner>0</owner> + <group>0</group> + <label>unconfined_u:object_r:virt_image_t:s0</label> + </permissions> + </backingStore> +</volume> diff --git a/tests/testutils.c b/tests/testutils.c index dbe4773f1..5bdfcc5e0 100644 --- a/tests/testutils.c +++ b/tests/testutils.c @@ -912,7 +912,7 @@ virCapsPtr virTestGenericCapsInit(void) virCapsGuestPtr guest; if ((caps = virCapabilitiesNew(VIR_ARCH_X86_64, - 0, 0)) == NULL) + false, false)) == NULL) return NULL; if ((guest = virCapabilitiesAddGuest(caps, "hvm", VIR_ARCH_I686, diff --git a/tests/testutilslxc.c b/tests/testutilslxc.c index 968d8d0b2..09dfd02b1 100644 --- a/tests/testutilslxc.c +++ b/tests/testutilslxc.c @@ -14,7 +14,7 @@ virCapsPtr testLXCCapsInit(void) virCapsGuestPtr guest; if ((caps = virCapabilitiesNew(VIR_ARCH_X86_64, - 0, 0)) == NULL) + false, false)) == NULL) return NULL; if ((guest = virCapabilitiesAddGuest(caps, "exe", VIR_ARCH_I686, diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index 7e24909be..52abb8c47 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -249,7 +249,7 @@ virCapsPtr testQemuCapsInit(void) }; if ((caps = virCapabilitiesNew(host_cpu.arch, - 0, 0)) == NULL) + false, false)) == NULL) return NULL; if ((caps->host.cpu = virCPUDefCopy(&host_cpu)) == NULL || @@ -259,7 +259,7 @@ virCapsPtr testQemuCapsInit(void) if ((guest = virCapabilitiesAddGuest(caps, "hvm", VIR_ARCH_I686, "/usr/bin/qemu", NULL, nmachines, machines)) == NULL || - !virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)) + !virCapabilitiesAddGuestFeature(guest, "cpuselection", true, false)) goto cleanup; machines = NULL; @@ -277,7 +277,7 @@ virCapsPtr testQemuCapsInit(void) if ((guest = virCapabilitiesAddGuest(caps, "hvm", VIR_ARCH_X86_64, "/usr/bin/qemu-system-x86_64", NULL, nmachines, machines)) == NULL || - !virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)) + !virCapabilitiesAddGuestFeature(guest, "cpuselection", true, false)) goto cleanup; machines = NULL; @@ -373,4 +373,53 @@ testSCSIDeviceGetSgName(const char *sysfs_prefix ATTRIBUTE_UNUSED, qemuBuildCommandLineCallbacks testCallbacks = { .qemuGetSCSIDeviceSgName = testSCSIDeviceGetSgName, }; + +virQEMUCapsPtr +qemuTestParseCapabilities(const char *capsFile) +{ + virQEMUCapsPtr qemuCaps = NULL; + xmlDocPtr xml; + xmlXPathContextPtr ctxt = NULL; + ssize_t i, n; + xmlNodePtr *nodes = NULL; + + if (!(xml = virXMLParseFileCtxt(capsFile, &ctxt))) + goto error; + + if ((n = virXPathNodeSet("/qemuCaps/flag", ctxt, &nodes)) < 0) { + fprintf(stderr, "failed to parse qemu capabilities flags"); + goto error; + } + + if (n > 0) { + if (!(qemuCaps = virQEMUCapsNew())) + goto error; + + for (i = 0; i < n; i++) { + char *str = virXMLPropString(nodes[i], "name"); + if (str) { + int flag = virQEMUCapsTypeFromString(str); + if (flag < 0) { + fprintf(stderr, "Unknown qemu capabilities flag %s", str); + VIR_FREE(str); + goto error; + } + VIR_FREE(str); + virQEMUCapsSet(qemuCaps, flag); + } + } + } + + VIR_FREE(nodes); + xmlFreeDoc(xml); + xmlXPathFreeContext(ctxt); + return qemuCaps; + + error: + VIR_FREE(nodes); + virObjectUnref(qemuCaps); + xmlFreeDoc(xml); + xmlXPathFreeContext(ctxt); + return NULL; +} #endif diff --git a/tests/testutilsqemu.h b/tests/testutilsqemu.h index f01b722d7..79ee1434c 100644 --- a/tests/testutilsqemu.h +++ b/tests/testutilsqemu.h @@ -3,8 +3,11 @@ # include "capabilities.h" # include "domain_conf.h" # include "qemu/qemu_command.h" +# include "qemu/qemu_capabilities.h" virCapsPtr testQemuCapsInit(void); virDomainXMLOptionPtr testQemuXMLConfInit(void); extern qemuBuildCommandLineCallbacks testCallbacks; + +virQEMUCapsPtr qemuTestParseCapabilities(const char *capsFile); #endif diff --git a/tests/testutilsxen.c b/tests/testutilsxen.c index 3c8b60f08..a50a8a2af 100644 --- a/tests/testutilsxen.c +++ b/tests/testutilsxen.c @@ -23,7 +23,7 @@ virCapsPtr testXenCapsInit(void) uname(&utsname); if ((caps = virCapabilitiesNew(VIR_ARCH_I686, - 0, 0)) == NULL) + false, false)) == NULL) return NULL; nmachines = ARRAY_CARDINALITY(x86_machines); diff --git a/tests/virbitmaptest.c b/tests/virbitmaptest.c index 048946fcf..ea832ad7f 100644 --- a/tests/virbitmaptest.c +++ b/tests/virbitmaptest.c @@ -510,6 +510,30 @@ test9(const void *opaque ATTRIBUTE_UNUSED) } static int +test10(const void *opaque ATTRIBUTE_UNUSED) +{ + int ret = -1; + virBitmapPtr b1 = NULL, b2 = NULL, b3 = NULL; + + if (virBitmapParse("0-3,5-8,11-15", 0, &b1, 20) < 0 || + virBitmapParse("4,9,10,16-19", 0, &b2, 20) < 0 || + virBitmapParse("15", 0, &b3, 20) < 0) + goto cleanup; + + if (virBitmapOverlaps(b1, b2) || + virBitmapOverlaps(b2, b3) || + !virBitmapOverlaps(b1, b3)) + goto cleanup; + + ret = 0; + cleanup: + virBitmapFree(b1); + virBitmapFree(b2); + virBitmapFree(b3); + return ret; +} + +static int mymain(void) { int ret = 0; @@ -532,6 +556,8 @@ mymain(void) ret = -1; if (virtTestRun("test9", test9, NULL) < 0) ret = -1; + if (virtTestRun("test10", test10, NULL) < 0) + ret = -1; return ret; } diff --git a/tests/vircaps2xmltest.c b/tests/vircaps2xmltest.c index 7166c98e6..b5b4f4829 100644 --- a/tests/vircaps2xmltest.c +++ b/tests/vircaps2xmltest.c @@ -41,7 +41,7 @@ buildVirCapabilities(int max_cells, int id; size_t i; - if ((caps = virCapabilitiesNew(VIR_ARCH_X86_64, 0, 0)) == NULL) + if ((caps = virCapabilitiesNew(VIR_ARCH_X86_64, false, false)) == NULL) goto error; id = 0; @@ -114,10 +114,8 @@ test_virCapabilitiesFormat(const void *opaque) data->max_mem_in_cell))) goto cleanup; - if (!(capsXML = virCapabilitiesFormatXML(caps))) { - fprintf(stderr, "Unable to format capabilities XML"); + if (!(capsXML = virCapabilitiesFormatXML(caps))) goto cleanup; - } if (virAsprintf(&path, "%s/vircaps2xmldata/vircaps-%s.xml", abs_srcdir, data->filename) < 0) diff --git a/tests/vircapstest.c b/tests/vircapstest.c index 59e9c2bcd..deabc7a99 100644 --- a/tests/vircapstest.c +++ b/tests/vircapstest.c @@ -44,7 +44,7 @@ buildNUMATopology(int seq) int core_id, cell_id; int id; - if ((caps = virCapabilitiesNew(VIR_ARCH_X86_64, 0, 0)) == NULL) + if ((caps = virCapabilitiesNew(VIR_ARCH_X86_64, false, false)) == NULL) goto error; id = 0; diff --git a/tests/virnettlshelpers.c b/tests/virnettlshelpers.c index 47a1b1234..6e667d17d 100644 --- a/tests/virnettlshelpers.c +++ b/tests/virnettlshelpers.c @@ -383,7 +383,7 @@ testTLSGenerateCert(struct testTLSCertReq *req, * If no 'ca' is set then we are self signing * the cert. This is done for the root CA certs */ - if ((err = gnutls_x509_crt_sign(crt, ca ? ca : crt, privkey) < 0)) { + if ((err = gnutls_x509_crt_sign(crt, ca ? ca : crt, privkey)) < 0) { VIR_WARN("Failed to sign certificate %s", gnutls_strerror(err)); abort(); } @@ -391,7 +391,7 @@ testTLSGenerateCert(struct testTLSCertReq *req, /* * Finally write the new cert out to disk */ - if ((err = gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_PEM, buffer, &size) < 0)) { + if ((err = gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_PEM, buffer, &size)) < 0) { VIR_WARN("Failed to export certificate %s", gnutls_strerror(err)); abort(); } diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c index fb2837f1d..e2ee3ff87 100644 --- a/tests/virstoragetest.c +++ b/tests/virstoragetest.c @@ -415,7 +415,7 @@ struct testLookupData unsigned int expIndex; const char *expResult; virStorageSourcePtr expMeta; - const char *expParent; + virStorageSourcePtr expParent; }; static int @@ -424,7 +424,7 @@ testStorageLookup(const void *args) const struct testLookupData *data = args; int ret = 0; virStorageSourcePtr result; - const char *actualParent; + virStorageSourcePtr actualParent; unsigned int idx; if (virStorageFileParseChainIndex(data->target, data->name, &idx) < 0 && @@ -488,9 +488,10 @@ testStorageLookup(const void *args) data->expMeta, result); ret = -1; } - if (STRNEQ_NULLABLE(data->expParent, actualParent)) { + if (data->expParent != actualParent) { fprintf(stderr, "parent: expected %s, got %s\n", - NULLSTR(data->expParent), NULLSTR(actualParent)); + NULLSTR(data->expParent ? data->expParent->path : NULL), + NULLSTR(actualParent ? actualParent->path : NULL)); ret = -1; } @@ -974,25 +975,25 @@ mymain(void) TEST_LOOKUP(5, NULL, abswrap, chain->path, chain, NULL); TEST_LOOKUP(6, chain, abswrap, NULL, NULL, NULL); TEST_LOOKUP(7, chain2, abswrap, NULL, NULL, NULL); - TEST_LOOKUP(8, NULL, "qcow2", chain2->path, chain2, chain->path); - TEST_LOOKUP(9, chain, "qcow2", chain2->path, chain2, chain->path); + TEST_LOOKUP(8, NULL, "qcow2", chain2->path, chain2, chain); + TEST_LOOKUP(9, chain, "qcow2", chain2->path, chain2, chain); TEST_LOOKUP(10, chain2, "qcow2", NULL, NULL, NULL); TEST_LOOKUP(11, chain3, "qcow2", NULL, NULL, NULL); - TEST_LOOKUP(12, NULL, absqcow2, chain2->path, chain2, chain->path); - TEST_LOOKUP(13, chain, absqcow2, chain2->path, chain2, chain->path); + TEST_LOOKUP(12, NULL, absqcow2, chain2->path, chain2, chain); + TEST_LOOKUP(13, chain, absqcow2, chain2->path, chain2, chain); TEST_LOOKUP(14, chain2, absqcow2, NULL, NULL, NULL); TEST_LOOKUP(15, chain3, absqcow2, NULL, NULL, NULL); - TEST_LOOKUP(16, NULL, "raw", chain3->path, chain3, chain2->path); - TEST_LOOKUP(17, chain, "raw", chain3->path, chain3, chain2->path); - TEST_LOOKUP(18, chain2, "raw", chain3->path, chain3, chain2->path); + TEST_LOOKUP(16, NULL, "raw", chain3->path, chain3, chain2); + TEST_LOOKUP(17, chain, "raw", chain3->path, chain3, chain2); + TEST_LOOKUP(18, chain2, "raw", chain3->path, chain3, chain2); TEST_LOOKUP(19, chain3, "raw", NULL, NULL, NULL); - TEST_LOOKUP(20, NULL, absraw, chain3->path, chain3, chain2->path); - TEST_LOOKUP(21, chain, absraw, chain3->path, chain3, chain2->path); - TEST_LOOKUP(22, chain2, absraw, chain3->path, chain3, chain2->path); + TEST_LOOKUP(20, NULL, absraw, chain3->path, chain3, chain2); + TEST_LOOKUP(21, chain, absraw, chain3->path, chain3, chain2); + TEST_LOOKUP(22, chain2, absraw, chain3->path, chain3, chain2); TEST_LOOKUP(23, chain3, absraw, NULL, NULL, NULL); - TEST_LOOKUP(24, NULL, NULL, chain3->path, chain3, chain2->path); - TEST_LOOKUP(25, chain, NULL, chain3->path, chain3, chain2->path); - TEST_LOOKUP(26, chain2, NULL, chain3->path, chain3, chain2->path); + TEST_LOOKUP(24, NULL, NULL, chain3->path, chain3, chain2); + TEST_LOOKUP(25, chain, NULL, chain3->path, chain3, chain2); + TEST_LOOKUP(26, chain2, NULL, chain3->path, chain3, chain2); TEST_LOOKUP(27, chain3, NULL, NULL, NULL, NULL); /* Rewrite wrap and qcow2 back to 3-deep chain, relative backing */ @@ -1027,25 +1028,25 @@ mymain(void) TEST_LOOKUP(33, NULL, abswrap, chain->path, chain, NULL); TEST_LOOKUP(34, chain, abswrap, NULL, NULL, NULL); TEST_LOOKUP(35, chain2, abswrap, NULL, NULL, NULL); - TEST_LOOKUP(36, NULL, "qcow2", chain2->path, chain2, chain->path); - TEST_LOOKUP(37, chain, "qcow2", chain2->path, chain2, chain->path); + TEST_LOOKUP(36, NULL, "qcow2", chain2->path, chain2, chain); + TEST_LOOKUP(37, chain, "qcow2", chain2->path, chain2, chain); TEST_LOOKUP(38, chain2, "qcow2", NULL, NULL, NULL); TEST_LOOKUP(39, chain3, "qcow2", NULL, NULL, NULL); - TEST_LOOKUP(40, NULL, absqcow2, chain2->path, chain2, chain->path); - TEST_LOOKUP(41, chain, absqcow2, chain2->path, chain2, chain->path); + TEST_LOOKUP(40, NULL, absqcow2, chain2->path, chain2, chain); + TEST_LOOKUP(41, chain, absqcow2, chain2->path, chain2, chain); TEST_LOOKUP(42, chain2, absqcow2, NULL, NULL, NULL); TEST_LOOKUP(43, chain3, absqcow2, NULL, NULL, NULL); - TEST_LOOKUP(44, NULL, "raw", chain3->path, chain3, chain2->path); - TEST_LOOKUP(45, chain, "raw", chain3->path, chain3, chain2->path); - TEST_LOOKUP(46, chain2, "raw", chain3->path, chain3, chain2->path); + TEST_LOOKUP(44, NULL, "raw", chain3->path, chain3, chain2); + TEST_LOOKUP(45, chain, "raw", chain3->path, chain3, chain2); + TEST_LOOKUP(46, chain2, "raw", chain3->path, chain3, chain2); TEST_LOOKUP(47, chain3, "raw", NULL, NULL, NULL); - TEST_LOOKUP(48, NULL, absraw, chain3->path, chain3, chain2->path); - TEST_LOOKUP(49, chain, absraw, chain3->path, chain3, chain2->path); - TEST_LOOKUP(50, chain2, absraw, chain3->path, chain3, chain2->path); + TEST_LOOKUP(48, NULL, absraw, chain3->path, chain3, chain2); + TEST_LOOKUP(49, chain, absraw, chain3->path, chain3, chain2); + TEST_LOOKUP(50, chain2, absraw, chain3->path, chain3, chain2); TEST_LOOKUP(51, chain3, absraw, NULL, NULL, NULL); - TEST_LOOKUP(52, NULL, NULL, chain3->path, chain3, chain2->path); - TEST_LOOKUP(53, chain, NULL, chain3->path, chain3, chain2->path); - TEST_LOOKUP(54, chain2, NULL, chain3->path, chain3, chain2->path); + TEST_LOOKUP(52, NULL, NULL, chain3->path, chain3, chain2); + TEST_LOOKUP(53, chain, NULL, chain3->path, chain3, chain2); + TEST_LOOKUP(54, chain2, NULL, chain3->path, chain3, chain2); TEST_LOOKUP(55, chain3, NULL, NULL, NULL, NULL); /* Use link to wrap with cross-directory relative backing */ @@ -1070,12 +1071,12 @@ mymain(void) TEST_LOOKUP(57, NULL, "sub/link2", chain->path, chain, NULL); TEST_LOOKUP(58, NULL, "wrap", chain->path, chain, NULL); TEST_LOOKUP(59, NULL, abswrap, chain->path, chain, NULL); - TEST_LOOKUP(60, NULL, "../qcow2", chain2->path, chain2, chain->path); + TEST_LOOKUP(60, NULL, "../qcow2", chain2->path, chain2, chain); TEST_LOOKUP(61, NULL, "qcow2", NULL, NULL, NULL); - TEST_LOOKUP(62, NULL, absqcow2, chain2->path, chain2, chain->path); - TEST_LOOKUP(63, NULL, "raw", chain3->path, chain3, chain2->path); - TEST_LOOKUP(64, NULL, absraw, chain3->path, chain3, chain2->path); - TEST_LOOKUP(65, NULL, NULL, chain3->path, chain3, chain2->path); + TEST_LOOKUP(62, NULL, absqcow2, chain2->path, chain2, chain); + TEST_LOOKUP(63, NULL, "raw", chain3->path, chain3, chain2); + TEST_LOOKUP(64, NULL, absraw, chain3->path, chain3, chain2); + TEST_LOOKUP(65, NULL, NULL, chain3->path, chain3, chain2); TEST_LOOKUP_TARGET(66, "vda", NULL, "bogus[1]", 0, NULL, NULL, NULL); TEST_LOOKUP_TARGET(67, "vda", NULL, "vda[-1]", 0, NULL, NULL, NULL); @@ -1084,18 +1085,13 @@ mymain(void) TEST_LOOKUP_TARGET(70, "vda", chain, "wrap", 0, NULL, NULL, NULL); TEST_LOOKUP_TARGET(71, "vda", chain2, "wrap", 0, NULL, NULL, NULL); TEST_LOOKUP_TARGET(72, "vda", NULL, "vda[0]", 0, NULL, NULL, NULL); - TEST_LOOKUP_TARGET(73, "vda", NULL, "vda[1]", 1, chain2->path, chain2, - chain->path); - TEST_LOOKUP_TARGET(74, "vda", chain, "vda[1]", 1, chain2->path, chain2, - chain->path); + TEST_LOOKUP_TARGET(73, "vda", NULL, "vda[1]", 1, chain2->path, chain2, chain); + TEST_LOOKUP_TARGET(74, "vda", chain, "vda[1]", 1, chain2->path, chain2, chain); TEST_LOOKUP_TARGET(75, "vda", chain2, "vda[1]", 1, NULL, NULL, NULL); TEST_LOOKUP_TARGET(76, "vda", chain3, "vda[1]", 1, NULL, NULL, NULL); - TEST_LOOKUP_TARGET(77, "vda", NULL, "vda[2]", 2, chain3->path, chain3, - chain2->path); - TEST_LOOKUP_TARGET(78, "vda", chain, "vda[2]", 2, chain3->path, chain3, - chain2->path); - TEST_LOOKUP_TARGET(79, "vda", chain2, "vda[2]", 2, chain3->path, chain3, - chain2->path); + TEST_LOOKUP_TARGET(77, "vda", NULL, "vda[2]", 2, chain3->path, chain3, chain2); + TEST_LOOKUP_TARGET(78, "vda", chain, "vda[2]", 2, chain3->path, chain3, chain2); + TEST_LOOKUP_TARGET(79, "vda", chain2, "vda[2]", 2, chain3->path, chain3, chain2); TEST_LOOKUP_TARGET(80, "vda", chain3, "vda[2]", 2, NULL, NULL, NULL); TEST_LOOKUP_TARGET(81, "vda", NULL, "vda[3]", 3, NULL, NULL, NULL); diff --git a/tests/virtimetest.c b/tests/virtimetest.c index 859bd13fa..64bf19b75 100644 --- a/tests/virtimetest.c +++ b/tests/virtimetest.c @@ -44,8 +44,7 @@ static int testTimeFields(const void *args) const struct testTimeFieldsData *data = args; struct tm actual; - if (virTimeFieldsThen(data->when, &actual) < 0) - return -1; + virTimeFieldsThen(data->when, &actual); #define COMPARE(field) \ do { \ diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c index 1d2e012f9..5c103dd69 100644 --- a/tests/vmx2xmltest.c +++ b/tests/vmx2xmltest.c @@ -25,7 +25,7 @@ testCapsInit(void) { virCapsGuestPtr guest = NULL; - caps = virCapabilitiesNew(VIR_ARCH_I686, 1, 1); + caps = virCapabilitiesNew(VIR_ARCH_I686, true, true); if (caps == NULL) { return; diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c index 058b19faa..58418dcca 100644 --- a/tests/xml2vmxtest.c +++ b/tests/xml2vmxtest.c @@ -25,7 +25,7 @@ testCapsInit(void) { virCapsGuestPtr guest = NULL; - caps = virCapabilitiesNew(VIR_ARCH_I686, 1, 1); + caps = virCapabilitiesNew(VIR_ARCH_I686, true, true); if (caps == NULL) { return; |