summaryrefslogtreecommitdiffstats
path: root/HACKING
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2010-11-30 10:42:31 +0000
committerRichard W.M. Jones <rjones@redhat.com>2010-11-30 10:42:31 +0000
commit17233ce2113aa730752ae3420cc209b2a72ab616 (patch)
treefd147e3ee7cb8c6f88204f66adeead712139ab16 /HACKING
parentba7ec6aea325b0a6df5777afc057df087f669a7b (diff)
downloadlibguestfs-17233ce2113aa730752ae3420cc209b2a72ab616.tar.gz
libguestfs-17233ce2113aa730752ae3420cc209b2a72ab616.tar.xz
libguestfs-17233ce2113aa730752ae3420cc209b2a72ab616.zip
capitests: Move test documentation into HACKING file.
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING37
1 files changed, 36 insertions, 1 deletions
diff --git a/HACKING b/HACKING
index f59dd666..f661d1d6 100644
--- a/HACKING
+++ b/HACKING
@@ -69,7 +69,7 @@ appliance/
The qemu appliance, build scripts and so on.
capitests/
- Automated tests of the C API.
+ Automated tests of the C API. See "Tests" below.
cat/
The 'virt-cat', 'virt-filesystems' and 'virt-ls' commands and
@@ -163,6 +163,41 @@ src/
test-tool/
Interactive qemu/kernel test tool.
+Tests
+----------------------------------------------------------------------
+
+You can supply zero or as many tests as you want per API call.
+
+Note that the test environment has 3 block devices, of size 500MB,
+50MB and 10MB (respectively /dev/sda, /dev/sdb, /dev/sdc), and
+a fourth ISO block device with some known files on it (/dev/sdd).
+
+Note for partitioning purposes, the 500MB device has 1015 cylinders.
+Number of cylinders was 63 for IDE emulated disks with precisely
+the same size. How exactly this is calculated is a mystery.
+
+The ISO block device (/dev/sdd) comes from images/test.iso.
+
+To be able to run the tests in a reasonable amount of time,
+the virtual machine and block devices are reused between tests.
+So don't try testing kill_subprocess :-x
+
+Between each test we blockdev-setrw, umount-all, lvm-remove-all.
+
+Don't assume anything about the previous contents of the block
+devices. Use 'Init*' to create some initial scenarios.
+
+You can add a prerequisite clause to any individual test. This
+is a run-time check, which, if it fails, causes the test to be
+skipped. Useful if testing a command which might not work on
+all variations of libguestfs builds. A test that has prerequisite
+of 'Always' is run unconditionally.
+
+In addition, packagers can skip individual tests by setting the
+environment variables: eg:
+ SKIP_TEST_<CMD>_<NUM>=1 SKIP_TEST_COMMAND_3=1 (skips test #3 of command)
+ SKIP_TEST_<CMD>=1 SKIP_TEST_ZEROFREE=1 (skips all zerofree tests)
+
Debugging
----------------------------------------------------------------------