[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 0/4] i440fx-test: check firmware visibility
From: |
Laszlo Ersek |
Subject: |
[Qemu-devel] [PATCH v2 0/4] i440fx-test: check firmware visibility |
Date: |
Thu, 28 Nov 2013 19:09:11 +0100 |
v1 blurb:
> Marcel's commit
>
> commit a53ae8e934cd54686875b5bcfc2f434244ee55d6
> Author: Marcel Apfelbaum <address@hidden>
> 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