Commit Graph

419 Commits

Author SHA1 Message Date
Matteo Cafasso
a7ea3b577f tests: Added test for ntfscat_i.
Test is based on file signature, it checks whether the extracted file
is the $MFT.

Signed-off-by: Matteo Cafasso <noxdafox@gmail.com>
2016-03-01 09:06:10 +00:00
Richard W.M. Jones
b9a97718f7 tests: Use LOG_COMPILER to run valgrind. 2016-02-22 17:55:13 +00:00
Richard W.M. Jones
dd7be596f5 tests: Remove bogus use of $(VG). 2016-02-22 17:55:13 +00:00
Pino Toscano
fcf1884932 tests: reduce sizes of scratch disks to 2 GB
1 GB should be enough to create a btrfs filesystem, even with 64K page
size; hence, make the /dev/sda and /dev/sdb test devices smaller so
there is less space taken during the test run.

Followup of commit 8ffad75e5b and
commit 9e9b648770.
2016-02-08 17:22:48 +00:00
Richard W.M. Jones
8ffad75e5b tests: Increase the size of the /dev/sda and /dev/sdb test devices.
Previously these were rather small - just 500 MB.  This is too small
to create a btrfs device on aarch64 (where page size may be 64K), and
barely enough even on x86-64.  This change makes both these devices
10 GB, and adjusts a few tests so they continue to pass.
2016-02-03 17:26:34 +00:00
Maxim Perevedentsev
e834b7413a New API: part_expand_gpt.
This action moves second(backup) GPT header to the end of the disk.
It is usable in in-place image expanding, since free space after
second GPT header is unusable. To use additional space, we have
to move second header. This is what sgdisk -e does.

However, sgdisk -e may perform additional actions if the partition
table has unexpected params (e.g. if we call sgdisk -e /dev/sda1,
it may fix partition table thus destroying the filesystem).
To prevent such cases, we do a dry-run at first and fail if
additional actions are scheduled.
2016-01-20 17:41:13 +00:00
Richard W.M. Jones
4a0905ac36 tests: regressions: Allow test-big-heap to work on machines with less memory.
This test would fail on machines with around 4 GB of free memory.
Adjust the test so it would now work on such machines (it will however
still fail on a machine with around 2 GB of free memory).
2016-01-20 17:05:53 +00:00
Richard W.M. Jones
7bccd0593f tests/mountable: Allow test to be skipped. 2016-01-12 18:26:33 +00:00
Richard W.M. Jones
abd41320e1 tests: Allow test-disk-create.sh to be skipped. 2016-01-06 17:05:28 +00:00
Richard W.M. Jones
980dc9deaf regressions: test-big-heap: Allow this test to be skipped. 2016-01-06 16:04:46 +00:00
Richard W.M. Jones
de94d01692 regressions: test-big-heap: Add comment about a failure of this test. 2016-01-06 16:04:23 +00:00
Richard W.M. Jones
307c83177c Update copyright dates for 2016.
Run the following command over the source:

  perl -pi.bak -e 's/(20[01][0-9])-2015/$1-2016/g' `git ls-files`
2016-01-02 21:19:51 +00:00
Pino Toscano
d7753a8eb9 tests: add a couple of iSCSI-related test cases 2015-12-18 17:10:25 +01:00
Richard W.M. Jones
5c7c4666e4 resize: Add a regression test for RHBZ#1285847. 2015-12-02 16:18:14 +00:00
Pino Toscano
7b74d05758 tests: rhbz1232192.sh: fix VIRT_TOOLS_DATA_DIR
Followup of commit f933a3c9c7.
2015-11-06 17:13:34 +01:00
Pino Toscano
af3511c7a9 tests: replace run-xml-to-junit.* with automake2junit.ml
Replace the custom XSLT + script to turn output from $RUN_OUTPUT_FILE
(from previous run.in versions) with a OCaml script to analyze .trs and
.log files of the automake test framework.

The final result should be the same, just with classname= for each test
set to the "path" (subdirectories) to that test.
2015-11-06 16:14:22 +01:00
Richard W.M. Jones
c0a781ed9a build: Drop serial_tests.
Use (implicitly) parallel tests on new enough automake.  The tests run
a bit quicker with this change.  On my laptop, I measured 27 mins down
to 18 mins.

Change the ./run function so that ./run --test no longer spools the
test output to a file.  That is not necessary when using parallel
tests, since the test harness does the same thing.

Note: This commit removes the $RUN_OUTPUT_FILE functionality.  We will
change the CI integration in a future commit so it uses the .trs and
.log files.
2015-11-06 16:11:44 +01:00
Richard W.M. Jones
b20d36aa1b tests: Change more conflicting temporary output file names.
Various tests cannot be run in parallel just because they happen to
use conflicting names for temporary output files (eg. "test.out").

Change these tests to use unique temporary names, so the tests could
be run in parallel.
2015-11-05 13:48:38 +00:00
Richard W.M. Jones
a2edda266e build: Make 'make clean' remove more files.
Remove man pages and other pages which 'make clean' did not remove
before.

To evaluate which pages could be removed, I did a full build and
check, and then ran 'make clean' followed by 'git clean -xdf'.  By
examining the output of the git clean command I could see which files
were being missed.

Files that are _not_ removed by make clean or make distclean:

 - generator-built files

 - Makefile, Makefile.in, .deps, .depend

 - any ./configure output files (maybe they should be?)
2015-11-03 13:53:37 +00:00
Richard W.M. Jones
f45c4619f5 tests: Remove fuzz testing of inspection.
It's a nice idea, but has never actually found a problem.  After using
afl to find bugs in qemu-img, it's pretty clear to me that no
successful approach could be run in the short time demanded by the
libguestfs test suite.  Afl tests run for days, weeks or even months.

A better approach may be to use a proven fuzz tester (such as afl) on
the inspection code; or to run this code for days on end on a separate
testing machine.

This reverts commit c2dcd10964.
2015-10-31 23:09:51 +00:00
Richard W.M. Jones
cd6f7f6ee0 tests/regressions: Fix rhbz1174551.sh so it works when debugging is enabled.
This test failed during release testing.  It turned out to be because
the tests are run with LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1 which
causes other messages to be printed.

Updates commit b5a6f899cd.
2015-10-30 18:51:30 +00:00
Richard W.M. Jones
dc1d0880b0 tests: Move the tests/data and tests/guests directories to test-data.
Create a new top-level directory called test-data, which will carry
all the test data which is large and/or shared between multiple tests.

There are actually several new subdirectories created:

test-data/binaries: The pre-built binary and library files for random
architectures that we use to test various architecture detection
features (was part of tests/data).

test-data/blank-disks: The blank disks which are used for disk format
detection (was part of tests/data).

test-data/files: Other miscellaneous test files from tests/data that
are not included in the above.

test-data/phony-guests: The phony guests (was tests/guests).

test-data: The top-level directory builds the 'test.iso' image file
that is used for testing the C API and in miscellaneous other tests.
2015-10-30 16:07:32 +00:00
Richard W.M. Jones
7efde6589c tests/regressions: Display errors in rhbz1174551.sh.
Updates commit b5a6f899cd.
2015-10-30 15:09:37 +00:00
Pino Toscano
b5a6f899cd actions: turn some params into FilenameList (RHBZ#1174551).
Use FilenameList as type for lists of file names, as used in some
listing-alike APIs.  This way we can ensure anything different than just
file names in those lists is rejected outright.

As a consequence, test-big-dirs.pl does not need to prepend the
directory name anymore before calling listing-alike APIs: previously
they didn't fail, but the returned lists contained only invalid
elements (and only their size was checked).

Furthermore, add a new regression test for it.
2015-10-21 13:00:18 +02:00
Pino Toscano
64cb0f5dad tests: use fake-virt-tools also in tests outside v2v
We have phony tools for v2v tests, introduced with
commit c1af1ba32f126b7be275bcc8cd4ea4e5af27a88e; make use of it also in
tests related to v2v outside the v2v directory.
2015-10-21 13:00:18 +02:00
Pino Toscano
fe62f4727f Add a regression test for RHBZ#1011907 / RHBZ#1165785
Test case adapted from Hu Zhang's RHBZ#1242853, thanks.
2015-10-20 18:02:23 +02:00
Richard W.M. Jones
2cb86bc4dc lib: Add comment and regression test for case where main process has large heap.
Thanks: Dan Berrangé for identifying the problem.
2015-10-15 11:04:48 +01:00
Richard W.M. Jones
e5fd9b54dd test/qemu: Fix free/close of log file.
The log file was not being closed at the right time, resulting in the
process running out of open files.  Also the log filename buffer was
not freed.

This fixes commit 7bbf5cab28.
2015-10-08 17:04:05 +01:00
Richard W.M. Jones
7bbf5cab28 tests/qemu: Add qemu-boot --log option.
This option can be used to direct output from each individual
boot test to a different file.  Usual usage is:

  qemu-boot --log /tmp/output.% -v -x -n 1000
2015-10-08 16:35:25 +01:00
Richard W.M. Jones
f291411f76 Add the thread identifier to various multi-threaded programs and tests. 2015-10-08 16:35:24 +01:00
Pino Toscano
0f414edd11 build: use libintl where needed
Followup of commit a5426cce5f.
2015-10-08 16:31:54 +02:00
Richard W.M. Jones
bdedb47cf0 tests: Don't leave a libguestfs tmpdir lying around after running test-launch-race.pl.
Calling _exit(2) in the child process has the side effect that
tmp/libguestfsXXXXXX is not cleaned up.  Clean it up by ensuring the
handle is properly closed before _exit.
2015-10-06 11:47:08 +01:00
Richard W.M. Jones
3b56001583 tests: Fix test-launch-race.
This test has been broken for a while.  It is meant to test that when
the appliance cachedir is empty, two simultaneous runs of libguestfs
(both rebuilding the full appliance) will not cause conflicts, because
(eg) the locking in either supermin or libguestfs is not working.

However the test only set $TMPDIR, but the ./run script sets
$LIBGUESTFS_CACHEDIR which overrides $TMPDIR, so it was simply reusing
the existing appliance, and hence not testing anything.

Fix this by clearing $LIBGUESTFS_CACHEDIR.

Note the test now takes a lot longer to run since it does a full
appliance rebuild.
2015-10-06 11:44:48 +01:00
Pino Toscano
d98c9c0e0b Fix shebang in perl scripts
Instead of hardcoding the location of perl (assuming it is installed in
/usr), use /usr/bin/env to run it, and thus picking it from $PATH.
This makes it possible to run these scripts also on installations with
perl in a different prefix than /usr.

Also, given that we want enable warnings on scripts, turn the -w
previously in shebang to explicit "use warnings;" in scripts which
didn't have it before.
2015-10-05 15:43:35 +02:00
Richard W.M. Jones
8554dbbc03 Remove multiple hacks that only apply to RHEL 5.
We don't support RHEL 5 upstream (see the 'oldlinux' branch for a
version that works with RHEL 5).  Therefore remove a bunch of hacks
that were only needed on RHEL 5.
2015-10-05 14:32:28 +01:00
Richard W.M. Jones
677c721e85 Fix whitespace.
Because of previous automated commits, such as changing 'guestfs___'
-> 'guestfs_int_', several function calls no longer lined up with
their parameters, and some lines were too long.

The bulk of this commit was done using emacs batch mode and the
technique described here:

  http://www.cslab.pepperdine.edu/warford/BatchIndentationEmacs.html

The changes suggested by emacs were then reviewed by hand.
2015-10-05 14:28:33 +01:00
Richard W.M. Jones
66daad38f3 disk-create: Allow preallocation off/metadata/full.
For raw, this allows "off" as a synonym for "sparse" (to make it
consistent with qcow2).

For qcow2, this allows "sparse" as a synonym for "off".

It also adds qcow2 "full" preallocation, which is actually mapped to
the qemu option "falloc" (see arguments about this on the qemu-devel
mailing list, which we lost).

This also updates the test.
2015-08-13 13:23:58 +01:00
Richard W.M. Jones
91c06391c1 automake: Admit defeat and use 'subdir-objects'.
Because this 'feature' is broken (since 2013):

  https://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928

we have to replace all instances of $(top_srcdir) in *_SOURCES lines
with a relative path.  According to what I read, this shouldn't break
split builds, but I didn't test it.

The only things automake moans about now are:

* Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^ \t=:+{}]+)}/ at /usr/bin/automake line 3936.

  - This is another bug in automake

* autoreconf: configure.ac: AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION

  - This is a feature, not a bug.
2015-08-05 13:01:12 +01:00
Pino Toscano
a6433aff70 tests/nbd: pass --format to qemu-nbd if possible
Run `qemu-nbd --help` to know whether it supports --format, and if so
pass it explicitly.  This avoids warnings with newer qemu versions,
where they really recommends to explicit the format of disk images being
specified on command line.
2015-07-21 16:56:00 +02:00
Pino Toscano
42ff22a909 tests/syslinux: add /usr/lib/SYSLINUX as directory for mbr.bin
Yet another new location (found on recent Debian/sid) for mbr.bin.
2015-07-21 16:54:29 +02:00
Pino Toscano
7c470c1179 tests: fix string comparison
Use 'eq' for comparing strings instead of '=='.
2015-07-21 11:13:45 +02:00
Chen Hanxiao
a477e282db New API: set_uuid_random
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
2015-07-03 11:31:41 +02:00
Chen Hanxiao
80cf46e110 uuid: add support to change uuid of btrfs partition
btrfs-progs v4.1 add support to change uuid of btrfs fs.

Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
2015-07-02 11:08:42 +02:00
Chen Hanxiao
98e1e9bcc2 tests: fix two minor warnings
"my" variable $output masks earlier declaration in same scope at /home/libguestfs/tests/daemon/test-btrfs.pl line 66.
"my" variable @r masks earlier declaration in same scope at /home/libguestfs/tests/daemon/test-btrfs.pl line 72.

Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
2015-06-30 11:08:32 +01:00
Richard W.M. Jones
93cf45cadf tests: Add a test of btrfs-qgroup-show using the captive daemon. 2015-06-29 23:08:47 +01:00
Richard W.M. Jones
336b8f6b16 tests: Add a test of btrfs-subvolume-list using the captive daemon. 2015-06-29 23:08:47 +01:00
Richard W.M. Jones
f2438b75a2 tests: daemon: Cleanly shut down the daemon on exit.
This refines the previous commit by shutting down the daemon cleanly
at the end of the test (assuming the test was successful).  It
repurposes the 'internal_exit' API for this, which was previously used
by the now defunct --enable-valgrind-daemon functionality.
2015-06-29 23:08:46 +01:00
Richard W.M. Jones
9f85477cba tests: Add tests using a captive daemon process.
This allows us to test the daemon running as a host process, allowing
us to meaningfully test it using valgrind.

This commit only adds a single test that check that the daemon starts
up, can be pinged, and exits.
2015-06-29 23:08:46 +01:00
Cao jin
36a197e2cc New API: btrfs_replace
Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
2015-06-29 16:39:13 +02:00
Richard W.M. Jones
4c73d1d4f1 v2v: Don't fail if one of the input disks is blank (RHBZ#1232192).
This also adds a regression test since it is probably easy to break
this in future.

Thanks: Junqin Zhou
2015-06-16 12:24:34 +01:00