Message ID | 1580914565-19675-1-git-send-email-liam.merwick@oracle.com (mailing list archive) |
---|---|
Headers | show |
Series | tests/boot_linux_console: add extra boot acceptance tests | expand |
On 2/5/20 3:55 PM, Liam Merwick wrote: > Add acceptance tests for the microvm machine class, PVH, and the > new qboot BIOS. > > In the case of the test to boot an uncompressed kernel there didn't > seem to be any suitable uncompressed kernel on https://archives.fedoraproject.org/ > (there is a vmlinux in kernel-debuginfo but that RPM is 575M and > caused timeouts when populating the Avocado cache when first run) > so I chose an RPM with kernels for Kata that is 14M. > (there was a discussion in [1] regarding testing PVH boot but it focussed > more around building a vmlinux binary during testing). > > [ What prompted these patches was the discovery that a 'pc' guest booting an > uncompressed kernel (PVH) with a PCI netdev hangs (before we even get guest > console output) when bios-microvm.bin (qboot) is supplied via -bios > (no issue when using 'q35' or 'microvm' machine classes). > > E.g. adding the following line to test_x86_64_pc_qboot_pvh() is enough to > trigger a guest hang during startup: > self.vm.add_args('-netdev', 'user,id=n1', '-device', 'virtio-net-pci,netdev=n1') > > I bisected that issue to 176d2cda0dee [2] in 4.1 but haven't worked out yet > how/why the "die-id" changes impact the qboot/PVH combination > (the boot succeeds with any subset of those boot variables). > > Is booting the 'pc' machine class with bios-microvm.bin something that QEMU > officially supports or is qboot intended for microvm only? ] > > Each test added here adds about 1.5s to the overall runtime. > I have run them through the Travis QEMU CI [3] and those acceptance tests pass. > > v1 -> v2 > Removed unnecessary qboot test for microvm in Patches 2 and 5 [Stefano] > Added SeaBIOS test for microvm to Patch2 > Fix path concatenation in Patch4 to use os.path for filesystem paths [Wanier] > Added Patch6 to fix extract_from_deb() to use os.path for filesystem paths > Used dictionary to store kernel info in Patch5 [Philippe] > Dropped patch with typo fix that has been queued separately > Added Stefano's R-b to the patches which have not significantly changed. > > [1] https://patchew.org/QEMU/20191206140012.15517-1-wainersm@redhat.com/ > [2] 176d2cda0dee ("i386/cpu: Consolidate die-id validity in smp context") > [3] https://travis-ci.org/merwick/qemu/builds/645487393 > [4] https://github.com/wainersm/qemu/commit/8f705e98df90b436b0f4946331d441309c437f7b > > > Liam Merwick (6): > tests/boot_linux_console: add microvm acceptance test > tests/boot_linux_console: add BIOS acceptance test > travis.yml: install rpm2cpio for acceptance tests > tests/boot_linux_console: add extract_from_rpm method > tests/boot_linux_console: add PVH acceptance tests > tests/boot_linux_console: use os.path for filesystem paths > > .travis.yml | 1 + > tests/acceptance/boot_linux_console.py | 114 ++++++++++++++++++++++++++++++--- > 2 files changed, 106 insertions(+), 9 deletions(-) Patches 3, 4 and 6 applied to my python-next tree: https://gitlab.com/philmd/qemu/commits/python-next