[PATCH kvm-unit-tests v2 00/14] API test framework

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patchset adds an API test framework.  Rather than driving kvm from qemu,
we now have a way of calling the kvm API directly and observing the results.
We can switch to guest mode and back at will and see any micro effects such
as the result of executing particular instructions.

A first test is added, for commit edde99ce0 ("KVM: Write protect memory
after slot swap").  This would be pretty hard to test for using the current
qemu-driven tests, but detects 5 million failures in about two minutes on
my machine.

As an experiment, the framework is coded in C++.

Avi Kivity (14):
  Makefile: add support for C++
  Improve autodepend includes
    v2: new
  Add exception class for kernel errors (errno)
    v2: new
  Add try_main() for running a program under an exception handler
    v2: new
  Introduce a C++ wrapper for the kvm APIs
    v2: throw std::exception exceptions, not ints, for libc failures
        better msr list management
  Add support for calling a function in guest mode
    v2: use tr1::function instead of boost::function
  Add sample test using the api test harness
  api: add support for KVM_SET_USER_MEMORY_REGION flags field
    v2: new
  api: support KVM_GET_DIRTY_LOG ioctl
    v2: new
  api: add memory map management
    v2: new
  Build tests with debug information
    v2: new
  api: Add support for creating an identity map with a hole
    v2: new
  Introduce libapi.a to avoid long Makefile recipes
    v2: new
  Add dirty log test
    v2: new

 Makefile              |    8 +-
 api/api-sample.cc     |   30 ++++++++
 api/dirty-log.cc      |   78 ++++++++++++++++++++
 api/exception.cc      |   33 ++++++++
 api/exception.hh      |   19 +++++
 api/identity.cc       |   95 ++++++++++++++++++++++++
 api/identity.hh       |   43 +++++++++++
 api/kvmxx.cc          |  194 +++++++++++++++++++++++++++++++++++++++++++++++++
 api/kvmxx.hh          |   85 +++++++++++++++++++++
 api/memmap.cc         |   76 +++++++++++++++++++
 api/memmap.hh         |   43 +++++++++++
 config-x86-common.mak |   15 ++++-
 12 files changed, 715 insertions(+), 4 deletions(-)
 create mode 100644 api/api-sample.cc
 create mode 100644 api/dirty-log.cc
 create mode 100644 api/exception.cc
 create mode 100644 api/exception.hh
 create mode 100644 api/identity.cc
 create mode 100644 api/identity.hh
 create mode 100644 api/kvmxx.cc
 create mode 100644 api/kvmxx.hh
 create mode 100644 api/memmap.cc
 create mode 100644 api/memmap.hh

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux