[Libvirt-announce] [PATCH] Documentation on tests suites and new API test suite

Daniel Veillard veillard at redhat.com
Tue May 10 06:21:00 UTC 2011

  This is really a dual mail. The main point is announcing the
availability of the livirt-test-API, a GPL'ed Python based test
suite for libvirt functional testing. It was developped independantly
of the TCK by our QA group here in Beijing China and is now made
open-source. The software requirements are relatively light and
it has been tested on RHEL various versions (5.x and 6.x) as well as
Fedora 14. It should be relatively easy to use on Centos, SL,
but use on other distributions may need a bit of porting.
  It has been in use for quite some time,, it is still in development
and the public repository is in libvirt.org git at:
and can be cloned with
   git clone git://libvirt.org/libvirt-test-API.git
there is some pblican based documentation under the docs/ subtree and
we have a PDF ready ans well as snapshots in the download tree

  There is a lot of improvements possible, it should be relatively
easy to glue to autotest (c.f. chapter 5 of the PDF), and there is
definitely cleanups to be done :-) , I think the best way to proceed
is to just send git patches here on the libvir-list and have them
reviewed and ACK'ed. People with commit access should be able to
push as usual, note that I added Guannan Ren <gren at redhat.com>
as a commiter for this purpose since he has much expertise with that
code (along with Osier).

  Now for the patch itself, it add a top level section in the
navigation bar, provide a main description page for the 3 test suites
(internal, TCK and libvirt-test-API) and then add a separate full
page for the 2 independant test suite.
  I hesitated between creating a new doc section and trying to reuse
one existing, but it didn't fit well in any of the existing section,
though that could have been added under "Download" or "Related links"
but it was feeling a bit weird in both case so I opted for a new top


Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/
-------------- next part --------------
commit dcd429f3d62dc4cc6a98874f37e2617aa92fc372
Author: Daniel Veillard <veillard at redhat.com>
Date:   Mon May 9 14:35:41 2011 +0800

    Add documentation about test suites
    Create a new top level entry, add a new page listing the 3
    test suites, and then one page for the TCK and one page for

diff --git a/docs/sitemap.html.in b/docs/sitemap.html.in
index 5650fee..ad8dc7b 100644
--- a/docs/sitemap.html.in
+++ b/docs/sitemap.html.in
@@ -319,6 +319,20 @@
         <span>How to contact the developers via email and IRC</span>
+        <a href="testsuites.html">Test suites</a>
+        <span>Available test suites for libvirt</span>
+        <ul>
+          <li>
+            <a href="testtck.html">TCK test suite</a>
+            <span>Virtualization functional test suite in Perl</span>
+          </li>
+          <li>
+            <a href="testapi.html">Libvirt-test-API</a>
+            <span>Libvirt functional API test suite in Python</span>
+          </li>
+        </ul>
+      </li>
+      <li>
         <a href="relatedlinks.html">Related Links</a>
         <span>Miscellaneous links of interest related to libvirt</span>
diff --git a/docs/testapi.html.in b/docs/testapi.html.in
new file mode 100644
index 0000000..a71c09a
--- /dev/null
+++ b/docs/testapi.html.in
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+  <body>
+    <h1>libvirt-test-API:  Python based test suite </h1>
+    <p>Libvirt-test-API is a powerful test tool designed to complement
+       existing libvirt test tools such as libvirt-TCK and the internal
+       test suite. It aims at functional regression testing, trying to
+       exercize nearly all the API by the way of the Python bindings.</p>
+    <p>The test API currently covers:</p>
+    <ul>
+      <li>domain: all classical lifetime operations, installation of
+          various guests OSes, snapshots</li>
+      <li>interfaces: define, create, destroy, undefine, NPIV</li>
+      <li>virtual networks: define, create, destroy, undefine</li>
+      <li>storage: regression tests for most storage types and configurations
+          dir, disk, netfs, iSCSI, multipath</li>
+    </ul>
+    <p>Some of the tests need dedicated local resources whose definitions
+       are stored in a configuration file. The tests are defined using
+       Python modules defining the code for the test, this is called
+       a <tt>test case</tt>, and test <tt>configuration files</tt> using one
+       or more test case to define a given test scenario.</p>
+    <p>For more details you can look at:</p>
+    <ul>
+      <li> A <a href="http://libvirt.org/sources/libvirt-test-API/Libvirt-test-API.pdf">documentation PDF</a>
+           file describing the test suite and how to write test cases
+           and test scenarios.
+    </ul>
+    <p> Libvirt-test-API is maintained using 
+        <a href="http://libvirt.org/git/?p=libvirt-test-API.git">a GIT
+        repository</a>, and comment, patches and reviews are carried
+        on the <a href="contact.html">libvir-list</a> development list.</p>
+  </body>
diff --git a/docs/testsuites.html.in b/docs/testsuites.html.in
new file mode 100644
index 0000000..672f871
--- /dev/null
+++ b/docs/testsuites.html.in
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+  <body>
+    <h1>Test suites</h1>
+    <p>There is a few test suites available to developpers for testing
+    a given version of libvirt:</p>
+    <ul>
+      <li>the internal test suite: present in the source code, it is run
+          by developpers before submitting patches upstream, it is also
+          suggested to have it run and pass as part of the packaging
+          process for distributions. It is run by launching:
+          <pre>make check</pre>
+          in a source tree after compilation has finished. It doesn't
+          really make functional testing but checks that large portions
+          of the code not interacting directly with virtualization
+          functions properly.
+      </li>
+      <li>the <a href="testtck.html">TCK test suite</a> is a functional
+          test suite implemented using the
+          <a href="http://search.cpan.org/dist/Sys-Virt/">Perl bindings</a>
+          of libvirt. It is available separately as a
+          <a href="ftp://libvirt.org/libvirt/tck/">download</a>, as a
+          <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libvirt-tck">package</a>
+          in Fedora distributions, but best is probably to get
+          the <a href="http://libvirt.org/git/?p=libvirt-tck.git">version
+          from GIT</a>.
+      <li>the <a href="testapi.html">libvirt-test-API</a> is also a functional
+          test suite, but implemented using the
+          <a href="python.html">Python bindings</a>
+          of libvirt. It is available separately as a
+          <a href="ftp://libvirt.org/libvirt/libvirt-test-API/">download</a>,
+          or directly get the
+          the <a href="http://libvirt.org/git/?p=libvirt-test-API.git">version
+          from GIT</a>.
+    </ul>
+  </body>
diff --git a/docs/testtck.html.in b/docs/testtck.html.in
new file mode 100644
index 0000000..0f020a4
--- /dev/null
+++ b/docs/testtck.html.in
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+  <body>
+    <h1>libvirt TCK  : Technology Compatibility Kit</h1>
+    <p>The libvirt TCK provides a framework for performing testing
+    of the integration between libvirt drivers, the underlying virt
+    hypervisor technology, related operating system services and system
+    configuration. The idea (and name) is motivated by the Java TCK.</p>
+    <p>In particular the libvirt TCK is intended to address the following
+    scenarios:</p>
+    <ul>
+      <li>Validate that a new libvirt driver is in compliance
+          with the (possibly undocumented!) driver API semantics</li>
+      <li>Validate that an update to an existing driver does not
+         change the API semantics in a non-compliant manner</li>
+      <li>Validate that a new hypervisor release is still providing
+         compatability with the corresponding libvirt driver usage</li>
+      <li>Validate that an OS distro deployment consisting of a
+         hypervisor and libvirt release is configured correctly</li>
+    </ul>
+    <p>Thus the libvirt TCK will allow developers, administrators and users
+    to determine the level of compatability of their platform, and
+    evaluate whether it will meet their needs, and get awareness of any
+    regressions that may have occurred since a previous test run.</p>
+    <p>For more details you can look at:</p>
+    <ul>
+      <li> The initial
+<a href="http://www.redhat.com/archives/libvir-list/2009-April/msg00176.html">mail
+           from Daniel Berrange</a> presenting the project.
+      <li> The <a href="http://fedoraproject.org/wiki/Features/VirtTCK">page
+           describing VirtTCK</a> the inclusion of libvirt-TCK as a
+           Fedora Feature.</li>
+    </ul>
+    <p> Libvirt-TCK is maintained using 
+        <a href="http://libvirt.org/git/?p=libvirt-tck.git">a GIT
+        repository</a>, and comment, patches and reviews are carried
+        on the <a href="contact.html">libvir-list</a> development list.</p>
+  </body>

More information about the Libvirt-announce mailing list