v1 blurb: > Marcel's commit > > commit a53ae8e934cd54686875b5bcfc2f434244ee55d6 > Author: Marcel Apfelbaum <marce...@redhat.com> > Date: Mon Sep 16 11:21:16 2013 +0300 > > hw/pci: partially handle pci master abort > > has exposed a conflict (an unintended, unordered overlap) between the > memory ranges "pci-hole" and "system.flash". When the boot firmware is > passed with -pflash, the "pci-hole" region hides it, and the guest > cannot execute the firmware. > > The test cases added by this series should help avoid regressions in > this area. > > On top of v1.7.0-rc0, the "/i440fx/firmware/bios" test passes even > without fixing the memory region conflict (consistently with the fact > that we never noticed the conflict in practice due to using -bios > exclusively). > > The "/i440fx/firmware/pflash" test catches the problem, unless one of > the discussed fixes are applied (ie. shrinking "pci-hole", or > explicitly ordering it under "system.flash"): > > $ tests/i440fx-test --verbose > [...] > GTest: run: /i440fx/firmware/bios > (MSG: qemu cmdline: -S -display none -bios /tmp/fw_blob_MA3Y5W) > GTest: result: OK > GTest: run: /i440fx/firmware/pflash > (MSG: qemu cmdline: -S -display none -pflash /tmp/fw_blob_ELLU5W) > ** > ERROR:tests/i440fx-test.c:368:test_i440fx_firmware: assertion failed > (buf[i] == (char unsigned)i): (0x000000ff == 0x00000000) > Aborted
The test passes with v1.7.0. Changes in v2: - Rebased ("-display none" is the default now). - I looked into memory management prudence in qtest, and I can see that we don't care about leaking small objects at all. (See for example qpci_device_foreach(), which calls qpci_device_find() in a loop, and leaks the retval every time.) Laszlo Ersek (4): i440fx-test: qtest_start() should be paired with qtest_end() i440fx-test: give each GTest case its own qtest i440fx-test: generate temporary firmware blob i440fx-test: verify firmware under 4G and 1M, both -bios and -pflash tests/i440fx-test.c | 169 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 152 insertions(+), 17 deletions(-) -- 1.8.3.1