[PATCH 00/13] testing/next: functional testing updates for gdb

Alex Bennée posted 13 patches 3 weeks, 2 days ago
There is a newer version of this series
meson.build                                   |  15 +-
tests/tcg/multiarch/linux/linux-sigrtminmax.c |   2 +-
tests/functional/aarch64/test_tuxrun.py       |  10 ++
.../functional/gdb-scripts/kernel_gdb_test.py | 157 ++++++++++++++++++
.../functional/gdb-scripts/kvm_fw_gdb_test.py | 119 +++++++++++++
tests/functional/meson.build                  |   5 +-
tests/functional/migration.py                 |  37 ++++-
tests/functional/qemu_test/tuxruntest.py      |  99 +++++++++--
tests/functional/x86_64/meson.build           |   1 +
tests/functional/x86_64/test_acpi_bits.py     |   2 +
tests/functional/x86_64/test_kvm_gdbstub.py   |  55 ++++++
.../functional/x86_64/test_nvme_migration.py  |   1 +
tests/functional/x86_64/test_tuxrun.py        |  45 ++++-
tests/guest-debug/run-test.py                 |  10 ++
tests/tcg/meson.build                         |   5 -
15 files changed, 523 insertions(+), 40 deletions(-)
create mode 100644 tests/functional/gdb-scripts/kernel_gdb_test.py
create mode 100644 tests/functional/gdb-scripts/kvm_fw_gdb_test.py
create mode 100755 tests/functional/x86_64/test_kvm_gdbstub.py
[PATCH 00/13] testing/next: functional testing updates for gdb
Posted by Alex Bennée 3 weeks, 2 days ago
Hi,

This is the current state of my testing/next tree. There a are a few
minor tweaks and fixes that I've picked up. The majority of the new
code adds testing for the gdb stub when used via KVM. There are two
approaches.

The first is an attempt to work just with the default bios code. It's
a little limited and I'm not super happy with the "special" heuristics
due to the fragility but it does work without symbols.

As a result I spoke to Anders who handles the tuxrun images and he was
able to turn on debugging symbols and provide a vmlinux alongside the
bootable image. With these updates I was able to resurrect the old
test script I was running by hand and then plumb it into a functional
test.

So far I've only done x86_64 but if people are happy with the result
I'll do the remaining KVM hosts and test the ones where I can (do we
have a riscv kvm host anywhere?).

The reason I went on the side-quest is because when working on
cleaning up QEMU's internal KVM api I realised that quite a large
chunk of it is not exercised by our functional tests. This would
ensure that at least:

  kvm_arch_update_guest_debug
  kvm_arch_get_registers
  kvm_arch_set_registers

is exercised and I'm less likely to break things in my r-factor ;-)

Alex.

Alex Bennée (12):
  tests/functional: test_acpi_bits requires TCG
  tests/functional: add migration diagnostics and pace nvme activity
    (HACK!)
  meson: move gdb detection into the top level build file
  tests/functional: add basic gdbstub test for KVM
  tests/functional: allow tuxrun tests to be passed "accel"
  tests/functional: split x86_64 tuxrun into tcg and kvm run
  tests/functional: split aarch64 tuxrun into tcg and kvm run
  tests/functional: update x86_64 tuxrun images
  tests/guest-debug: add --kargs option to run-test
  tests/guest-debug: add --symbols option to run-test
  tests/functional: teach tuxrun about launching gdb tests
  tests/functional: add tuxrun kvm gdb test for x86_64

Max Filippov (1):
  tests/tcg: fix buffer overflow in multiarch/linux/linux-sigrtminmax

 meson.build                                   |  15 +-
 tests/tcg/multiarch/linux/linux-sigrtminmax.c |   2 +-
 tests/functional/aarch64/test_tuxrun.py       |  10 ++
 .../functional/gdb-scripts/kernel_gdb_test.py | 157 ++++++++++++++++++
 .../functional/gdb-scripts/kvm_fw_gdb_test.py | 119 +++++++++++++
 tests/functional/meson.build                  |   5 +-
 tests/functional/migration.py                 |  37 ++++-
 tests/functional/qemu_test/tuxruntest.py      |  99 +++++++++--
 tests/functional/x86_64/meson.build           |   1 +
 tests/functional/x86_64/test_acpi_bits.py     |   2 +
 tests/functional/x86_64/test_kvm_gdbstub.py   |  55 ++++++
 .../functional/x86_64/test_nvme_migration.py  |   1 +
 tests/functional/x86_64/test_tuxrun.py        |  45 ++++-
 tests/guest-debug/run-test.py                 |  10 ++
 tests/tcg/meson.build                         |   5 -
 15 files changed, 523 insertions(+), 40 deletions(-)
 create mode 100644 tests/functional/gdb-scripts/kernel_gdb_test.py
 create mode 100644 tests/functional/gdb-scripts/kvm_fw_gdb_test.py
 create mode 100755 tests/functional/x86_64/test_kvm_gdbstub.py

-- 
2.47.3