LIBVIRT-TCK(1)

πŸ“¦
version 2.0.0 Β· 2 versions
, in fedora 43

πŸ’– LIBVIRT-TCK πŸ’–

okay bestie, gather round β€” this is the manual page for libvirt-tck, section 1, from the User Contributed Perl Documentation. Yes, Perl. Yes, iconic. Sit with it. 🫢


🌸 NAME 🌸

libvirt-tck β€” the libvirt Technology Compatability Kit ✨ (yes, that's really how it's spelled, we don't make the rules)


πŸŽ€ SYNOPSIS πŸŽ€

# libvirt-tck [OPTIONS] [TESTS..]

Run it with the default config, and just let it probe for a URI to use:

# libvirt-tck

Run it with a custom config instead:

# libvirt-tck --config /etc/libvirt-tck/other.yml

Run it with verbose progress info (chaotic but fun):

# libvirt-tck -v

Get a formal XML document of your results:

# libvirt-tck --format xml

Or a JUnit XML document of your results:

# libvirt-tck --format junit

πŸ¦‹ DESCRIPTION πŸ¦‹

So the libvirt-tck command β€” the libvirt Technology Compatability Kit, full name, no nicknames β€” is the main way you run the functional, integration test suite for libvirt drivers. It's the whole point of the thing. Main character energy, fr fr. πŸ‘‘

⚠️ WARNING ⚠️

Not me being the responsible one for once, but listen up: the test suite is meant to be moderately safe to run on arbitrary hosts, and it takes steps to avoid intentionally breaking things. Key word: intentionally.

Every single object it creates β€” guests, networks, storage pools, etc β€” gets a name prefix of tck to minimize the risk of clashes. And the test suite will only ever (intentionally) delete objects that have that tck name prefix. That's the deal. πŸ’…

Sometimes a test suite needs access to a precious host resource (think physical NIC, PCI device, USB device, block device). When that happens, execution gets skipped until the admin has white listed one or more suitable resources in the /etc/libvirt-tck/default.yml configuration file. No whitelist, no test. Sorry babe. πŸ™ˆ

πŸ’€ And despite all these precautions: running automated tests always carries some degree of risk to the host system. So it is advisable to avoid executing this test suite on hosts with precious state. Like, do NOT run this on the box holding your thesis. That would be giving "I have no self-preservation instinct."

✨ OPTIONS ✨

Okay so if you invoke it with no arguments at all, the test suite runs using the default configuration file at /etc/libvirt-tck/default.yml, and it lets libvirt probe for the hypervisor driver to run. But β€” and this is important, bestie β€” if you want a reliably repeatable test result set, it is recommended to always give an explicit libvirt connection URI so you choose the driver yourself. Future you will say thank you.

Any command line arguments that don't get parsed as options are treated as paths to test scripts to invoke. And if you give no paths at all? Every test under /usr/share/libvirt-tck/tests gets executed. All of them. Every last one. 🫠

Here's everything you can pass when you run the libvirt-tck command:

  • -v, --verbose β€” shows you the fine details of individual test progress. Without it, you only get the name of each test printed, plus the details of any failures. So it's the "tell me everything" mode. πŸ—£οΈ
  • -q, --quiet β€” displays absolutely nothing about test progress. Not even the name of each test case. Silence. Iconic in its own way.
  • -c, --config FILE β€” pick the name of the configuration file to use, instead of the default /etc/libvirt-tck/default.yml.
  • --format text|html|xml|junit β€” choose the output format for the test results. Default is text, which gives you human readable results right there on the console. The html option dumps an HTML file of results to STDOUT, and the xml option generates a formal XML document of results. (And yeah, junit is a choice you can make, it's right there in the list πŸ’œ)
  • --force β€” forcibly removes all previously created objects, including guests, networks, storage pools, etc, as long as they have that tck name prefix. User created objects whose name does not start with tck will be left completely untouched. So it's aggressive, but it knows its lane. πŸ’…
  • -a, --archive FILE β€” generates an archive containing all the raw test results. The filename you give should end in either .bz, .tar.gz or .tgz. Pick the right suffix or it's gonna be a bad time.
  • --timer β€” prints the elapsed time after each test. Clock it. ⏱️

πŸ‘‘ AUTHORS πŸ‘‘

Written by Daniel P. Berrange <berrange@redhat.com> β€” shoutout to the legend. 🫢


πŸ’€ BUGS πŸ’€

Probably. 😭 (their words, not mine β€” but honestly? Relatable.)

Report any bugs you find to your OS distribution's bug tracker, or to the libvirt mailing list <http://www.redhat.com/mailman/listinfo/libvir-list>.


πŸ“œ LICENSE πŸ“œ

Copyright (C) 2009 Daniel P. Berrange Copyright (C) 2009 Red Hat, Inc.

libvirt-tck is distributed under the terms of the GNU GPL v2+. This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Like, none. Zero. Nada. Don't come for them. 🫣

🌈 SEE ALSO 🌈

prove. πŸ‘€

And listen β€” if you need more fine grained control over running the tests, then set the LIBVIRT_TCK_CONFIG environment variable to point to your configuration file, and then run the prove command passing in the path to the test scripts you want to run. That's the pro move. iykyk. πŸ’…βœ¨


and that's the whole page, bestie!! πŸŽ€ This little love letter to you came from perl v5.42.0, dated 2025-07-25, and yes it lives at LIBVIRT-TCK(1). Now go run some tests (on a host that isn't precious, please πŸ™). bye!! πŸŒΈπŸ¦‹πŸ’–

πŸ“¦ where this page comes from