The nbdkit tests take a long time to run especially on armv7. To try
to get an idea of which tests take the most time, and since I happen
to have a qemu aarch64 *TCG* guest available, I ran the tests on that
guest.
A TCG guest is about the worst case for libguestfs, used by some
tests, since it uses double-nested TCG, and as you can see below there
are tests taking over 6 hours.
In fact I didn't complete the run yet. test-cow.sh is still running
(after 2+ hours) and there may be further tests to come.
Results:
06:43:00 PASS: test-cache.sh
06:37:48 PASS: test-cache-on-read.sh
[ test-cow.sh possibly here ]
00:35:41 PASS: test-partitioning3.sh
00:34:29 PASS: test-partitioning5.sh
00:34:03 PASS: test-linuxdisk-copy-out.sh
00:33:58 PASS: test-floppy.sh
00:30:45 PASS: test-partitioning2.sh
00:28:41 PASS: test-linuxdisk.sh
00:28:34 PASS: test-iso.sh
00:02:59 PASS: test-cache-max-size.sh
00:02:58 PASS: test-partitioning6.sh
00:02:55 PASS: test-partitioning4.sh
00:02:51 PASS: test-eflags.sh
00:01:11 PASS: test-export-name.sh
00:01:01 PASS: test-parallel-sh.sh
00:00:54 PASS: test-python.sh
00:00:44 PASS: test-sh-errors.sh
00:00:44 PASS: test-cacheextents.sh
00:00:41 PASS: test-sh-extents.sh
00:00:35 PASS: test-info-base64.sh
Ignoring the ones which take mere minutes (those run in seconds on
more reasonable hardware), here is a summary of how the tests are
implemented:
test-cache.sh Gx2 F D
test-cache-on-read.sh Gx2 F D
test-cow.sh Gx3 F
test-partitioning3.sh G
test-partitioning5.sh G F
test-linuxdisk-copy-out.sh G Dx4
test-floppy.sh G Dx2
test-partitioning2.sh G F
test-linuxdisk.sh G D
test-iso.sh G
D = using libguestfs download or similar APIs
F = using libguestfs "fill" APIs which write lots of data
G = guestfish
xN = runs multiple times
So there's quite a strong correlation between multiple runs of
guestfish, and using those two APIs, and time taken.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html