Skip to content

phip1611/libvirt-tests

 
 

Repository files navigation

Libvirt NixOS Tests

A minimal set of NixOS integration tests for validating specific Libvirt features and supporting libvirt development.

These tests provide a convenient environment for:

  • Running automated checks against Libvirt.
  • Testing patches to virtualization backends (e.g., Cloud Hypervisor) by running the libvirt test suite in a reproducible NixOS VM environment.

Running Tests

These tests utilize the NixOS integration test framework (<nixpkgs>/nixos/lib/testing). Each test is a Bash script build by Nix and is available in interactive mode (attribute .driverInteractive) as well as in non-interactive mode (attribute .driver). For just running tests and seeing test results, the non-interactive mode is fine. For interactive debugging, please consider using the interactive mode. In interactive mode, you can type test_script() into the Python REPL to run the test cases.

Build and run the default set of test cases:

$ nix run -L .#tests.x86_64-linux.default.driver

It might happen that the integration test runs out of resources when the user's tmp directory space is too small. You can try to mitigate this by setting XDG_RUNTIME_DIR=/tmp/libvirt before invoking the test script.

Long-running Tests

If you want to perform a long-running migration series with a VM that is under heavy memory load use:

$ nix run -L .#tests.x86_64-linux.long_migration_with_load.driver

Using a Custom Libvirt or Cloud Hypervisor

To test against a specific version or local build, you should update your flake.nix to refer to the new input, for example:

libvirt-src.url = "git+file:/home/pschuster/dev/libvirt?submodules=1";

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 69.3%
  • Nix 30.7%