From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Fehlig Subject: [PATCH V3 5/5] libxl: Add a test suite for libxl option generator Date: Wed, 3 Sep 2014 21:07:39 -0600 Message-ID: <1409800059-16884-6-git-send-email-jfehlig@suse.com> References: <1409800059-16884-1-git-send-email-jfehlig@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1409800059-16884-1-git-send-email-jfehlig@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: libvir-list@redhat.com Cc: Jim Fehlig , "Daniel P. Berrange" , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org From: "Daniel P. Berrange" The libxl library allows a libxl_domain_config object to be serialized to a JSON string. Use this to allow testing of the XML -> libxl_domain_config conversion process Signed-off-by: Daniel P. Berrange Signed-off-by: Jim Fehlig --- configure.ac | 2 + tests/Makefile.am | 25 +++- tests/libxlxml2jsondata/basic-hvm.json | 217 ++++++++++++++++++++++++++++ tests/libxlxml2jsondata/basic-hvm.xml | 36 +++++ tests/libxlxml2jsondata/basic-pv.json | 163 +++++++++++++++++++++ tests/libxlxml2jsondata/basic-pv.xml | 28 ++++ tests/libxlxml2jsontest.c | 251 +++++++++++++++++++++++++++++++++ tests/virmocklibxl.c | 87 ++++++++++++ 8 files changed, 808 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b4fb99a..80c331f 100644 --- a/configure.ac +++ b/configure.ac @@ -875,6 +875,8 @@ if test "$with_libxl" != "no" ; then AC_CHECK_LIB([xenlight], [libxl_ctx_alloc], [ with_libxl=yes LIBXL_LIBS="$LIBXL_LIBS -lxenlight -lxenctrl" + LIBS="$LIBS -lxenlight -lxenctrl" + AC_CHECK_FUNCS([libxl_domain_config_to_json]) ],[ if test "$with_libxl" = "yes"; then fail=1 diff --git a/tests/Makefile.am b/tests/Makefile.am index d6c3cfb..a8e4e88 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -84,6 +84,7 @@ EXTRA_DIST = \ domainsnapshotxml2xmlout \ fchostdata \ interfaceschemadata \ + libxlxml2jsondata \ lxcconf2xmldata \ lxcxml2xmldata \ lxcxml2xmloutdata \ @@ -222,6 +223,9 @@ if WITH_XEN test_programs += xml2sexprtest sexpr2xmltest \ xmconfigtest xencapstest statstest reconnect endif WITH_XEN +if WITH_LIBXL +test_programs += libxlxml2jsontest +endif WITH_LIBXL if WITH_QEMU test_programs += qemuxml2argvtest qemuxml2xmltest qemuxmlnstest \ qemuargv2xmltest qemuhelptest domainsnapshotxml2xmltest \ @@ -393,7 +397,9 @@ test_libraries += libqemumonitortestutils.la \ qemuxml2argvmock.la \ $(NULL) endif WITH_QEMU - +if WITH_LIBXL +test_libraries += virmocklibxl.la +endif WITH_LIBXL if WITH_BHYVE test_libraries += bhyvexml2argvmock.la endif WITH_BHYVE @@ -593,6 +599,23 @@ EXTRA_DIST += qemuxml2argvtest.c qemuxml2xmltest.c qemuargv2xmltest.c \ $(QEMUMONITORTESTUTILS_SOURCES) endif ! WITH_QEMU +if WITH_LIBXL +libxl_LDADDS = ../src/libvirt_driver_libxl_impl.la +libxl_LDADDS += $(LDADDS) + +libxlxml2jsontest_SOURCES = \ + libxlxml2jsontest.c testutilsxen.c testutilsxen.h \ + testutils.c testutils.h +libxlxml2jsontest_LDADD = $(libxl_LDADDS) $(LIBXML_LIBS) + +virmocklibxl_la_SOURCES = \ + virmocklibxl.c +virmocklibxl_la_CFLAGS = $(AM_CFLAGS) +virmocklibxl_la_LDFLAGS = -module -avoid-version \ + -rpath /evil/libtool/hack/to/force/shared/lib/creation + +endif WITH_LIBXL + if WITH_LXC lxc_LDADDS = ../src/libvirt_driver_lxc_impl.la diff --git a/tests/libxlxml2jsondata/basic-hvm.json b/tests/libxlxml2jsondata/basic-hvm.json new file mode 100644 index 0000000..b02e299 --- /dev/null +++ b/tests/libxlxml2jsondata/basic-hvm.json @@ -0,0 +1,217 @@ +{ + "c_info": { + "type": "hvm", + "hap": "", + "oos": "", + "ssidref": 0, + "name": "sles-hvm", + "uuid": "2147d599-9cc6-c0dc-92ab-4064b5446e9b", + "xsdata": { + + }, + "platformdata": { + + }, + "poolid": 0, + "run_hotplug_scripts": "", + "pvh": "", + "driver_domain": "" + }, + "b_info": { + "max_vcpus": 4, + "avail_vcpus": [ + 0, + 1, + 2, + 3 + ], + "cpumap": [ + + ], + "nodemap": [ + + ], + "numa_placement": "", + "tsc_mode": "default", + "max_memkb": 1048576, + "target_memkb": 1048576, + "video_memkb": -1, + "shadow_memkb": 12288, + "rtc_timeoffset": 0, + "exec_ssidref": 0, + "localtime": "", + "disable_migrate": "", + "cpuid": [ + + ], + "blkdev_start": null, + "device_model_version": "unknown", + "device_model_stubdomain": "", + "device_model": null, + "device_model_ssidref": 0, + "extra": [ + + ], + "extra_pv": [ + + ], + "extra_hvm": [ + + ], + "sched_params": { + "sched": "unknown", + "weight": 1000, + "cap": -1, + "period": -1, + "slice": -1, + "latency": -1, + "extratime": -1 + }, + "ioports": [ + + ], + "irqs": [ + + ], + "iomem": [ + + ], + "claim_mode": "", + "event_channels": 0, + "u": { + "firmware": null, + "kernel": null, + "cmdline": null, + "ramdisk": null, + "bios": "unknown", + "pae": "True", + "apic": "True", + "acpi": "True", + "acpi_s3": "", + "acpi_s4": "", + "nx": "", + "viridian": "", + "timeoffset": null, + "hpet": "", + "vpt_align": "", + "timer_mode": "unknown", + "nested_hvm": "", + "smbios_firmware": null, + "acpi_firmware": null, + "nographic": "", + "vga": { + "kind": "cirrus" + }, + "vnc": { + "enable": "True", + "listen": "0.0.0.0", + "passwd": null, + "display": 0, + "findunused": "False" + }, + "keymap": null, + "sdl": { + "enable": "", + "opengl": "", + "display": null, + "xauthority": null + }, + "spice": { + "enable": "", + "port": 0, + "tls_port": 0, + "host": null, + "disable_ticketing": "", + "passwd": null, + "agent_mouse": "", + "vdagent": "", + "clipboard_sharing": "", + "usbredirection": 0 + }, + "gfx_passthru": "", + "serial": null, + "boot": "c", + "usb": "", + "usbversion": 0, + "usbdevice": null, + "soundhw": null, + "xen_platform_pci": "", + "usbdevice_list": [ + + ], + "vendor_device": "none", + "watchdog": null, + "watchdog_action": null + } + }, + "disks": [ + { + "backend_domid": 0, + "backend_domname": null, + "pdev_path": "/var/lib/xen/images/sles-hvm.img", + "vdev": "hda", + "backend": "qdisk", + "format": "raw", + "script": null, + "removable": 1, + "readwrite": 1, + "is_cdrom": 0 + } + ], + "nics": [ + { + "backend_domid": 0, + "backend_domname": null, + "devid": 0, + "mtu": 0, + "model": null, + "mac": "00:16:3e:66:12:b4", + "ip": null, + "bridge": "br0", + "ifname": null, + "script": "/etc/xen/scripts/vif-bridge", + "nictype": "vif_ioemu", + "rate_bytes_per_interval": 0, + "rate_interval_usecs": 0, + "gatewaydev": null + } + ], + "pcidevs": [ + + ], + "vfbs": [ + { + "backend_domid": 0, + "backend_domname": null, + "devid": -1, + "vnc": { + "enable": "True", + "listen": "0.0.0.0", + "passwd": null, + "display": 0, + "findunused": "False" + }, + "sdl": { + "enable": "", + "opengl": "", + "display": null, + "xauthority": null + }, + "keymap": null + } + ], + "vkbs": [ + { + "backend_domid": 0, + "backend_domname": null, + "devid": -1 + } + ], + "vtpms": [ + + ], + "on_poweroff": "destroy", + "on_reboot": "restart", + "on_watchdog": "destroy", + "on_crash": "destroy" +} diff --git a/tests/libxlxml2jsondata/basic-hvm.xml b/tests/libxlxml2jsondata/basic-hvm.xml new file mode 100644 index 0000000..693a715 --- /dev/null +++ b/tests/libxlxml2jsondata/basic-hvm.xml @@ -0,0 +1,36 @@ + + sles-hvm + None + 2147d599-9cc6-c0dc-92ab-4064b5446e9b + 1048576 + 1048576 + 4 + destroy + restart + destroy + + + hvm + /usr/lib/xen/boot/hvmloader + + + + + + + + + /usr/lib/xen/bin/qemu-system-i386 + + + + + + + + +