[PATCH] tests: Adjust libxlxml2domconfigtest to work with Xen < 4.10

Jim Fehlig posted 1 patch 3 years, 7 months ago
Test syntax-check failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20200924032942.770-1-jfehlig@suse.com
tests/libxlxml2domconfigtest.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
[PATCH] tests: Adjust libxlxml2domconfigtest to work with Xen < 4.10
Posted by Jim Fehlig 3 years, 7 months ago
Commit f253dc90f5 introduced a test regression in environments with
Xen < 4.10. The logic in libxl_conf.c correctly maps ACPI and APIC
from virDomainObj to libxl_domain_conf based on
LIBXL_HAVE_BUILDINFO_APIC, but the tests did not account for the
different libxl_domain_conf JSON representations.

One approach to fixing the test regression is to duplicate JSON test
data files, having one set for Xen <= 4.9 and another for Xen 4.10
and greater. To avoid duplicate data files, this patch takes the
approach of modifying the libxl_domain_conf object based on
LIBXL_HAVE_BUILDINFO_APIC, before retrieving the JSON representation.
It allows using the same test data files for all supported versions
of Xen by adjusting the intermediate form of libxl_domain_conf object
as needed.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
---
 tests/libxlxml2domconfigtest.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/tests/libxlxml2domconfigtest.c b/tests/libxlxml2domconfigtest.c
index c4d5db9a7b..d58be1211b 100644
--- a/tests/libxlxml2domconfigtest.c
+++ b/tests/libxlxml2domconfigtest.c
@@ -97,6 +97,20 @@ testCompareXMLToDomConfig(const char *xmlfile,
                        "Failed to create libxl_domain_config from JSON doc");
         goto cleanup;
     }
+
+    /*
+     * In order to have common test files between Xen 4.9 and newer Xen versions,
+     * tweak the expected libxl_domain_config object before getting a json
+     * representation.
+     */
+# ifndef LIBXL_HAVE_BUILDINFO_APIC
+    if (expectconfig.c_info.type == LIBXL_DOMAIN_TYPE_HVM) {
+        libxl_defbool_unset(&expectconfig.b_info.acpi);
+        libxl_defbool_set(&expectconfig.b_info.u.hvm.apic, true);
+        libxl_defbool_set(&expectconfig.b_info.u.hvm.acpi, true);
+    }
+# endif
+
     if (!(expectjson = libxl_domain_config_to_json(cfg->ctx, &expectconfig))) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                        "Failed to retrieve JSON doc for libxl_domain_config");
-- 
2.28.0


Re: [PATCH] tests: Adjust libxlxml2domconfigtest to work with Xen < 4.10
Posted by Ján Tomko 3 years, 7 months ago
On a Wednesday in 2020, Jim Fehlig wrote:
>Commit f253dc90f5 introduced a test regression in environments with
>Xen < 4.10. The logic in libxl_conf.c correctly maps ACPI and APIC
>from virDomainObj to libxl_domain_conf based on
>LIBXL_HAVE_BUILDINFO_APIC, but the tests did not account for the
>different libxl_domain_conf JSON representations.
>
>One approach to fixing the test regression is to duplicate JSON test
>data files, having one set for Xen <= 4.9 and another for Xen 4.10
>and greater. To avoid duplicate data files, this patch takes the
>approach of modifying the libxl_domain_conf object based on
>LIBXL_HAVE_BUILDINFO_APIC, before retrieving the JSON representation.
>It allows using the same test data files for all supported versions
>of Xen by adjusting the intermediate form of libxl_domain_conf object
>as needed.
>
>Signed-off-by: Jim Fehlig <jfehlig@suse.com>
>---
> tests/libxlxml2domconfigtest.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>

Reviewed-by: Ján Tomko <jtomko@redhat.com>

Jano