summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Jones <rjones@trick.home.annexia.org>2009-05-19 12:29:04 +0100
committerRichard Jones <rjones@trick.home.annexia.org>2009-05-19 12:29:04 +0100
commit7b309445d4e9f93088ca052469338c8e3ce8dcbf (patch)
treee74bd8870a2e06acea3b0b0ddc5849d2fd814af2
parent4c7183285105fd74496133c059a093b78dbe7723 (diff)
downloadlibguestfs-7b309445d4e9f93088ca052469338c8e3ce8dcbf.tar.gz
libguestfs-7b309445d4e9f93088ca052469338c8e3ce8dcbf.tar.xz
libguestfs-7b309445d4e9f93088ca052469338c8e3ce8dcbf.zip
Skip 'zerofree' test if the command doesn't exist in the appliance.
-rw-r--r--Makefile.am1
-rwxr-xr-xsrc/generator.ml2
-rw-r--r--tests.c9
3 files changed, 11 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index 50c9e7d4..c035977d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -105,6 +105,7 @@ tests_LDADD = $(top_builddir)/src/libguestfs.la
TESTS = tests
TESTS_ENVIRONMENT = \
SKIP_TEST_COMMAND=$(shell ldd test-command | grep -sq 'not a dynamic executable' || echo 1) \
+ SKIP_ZEROFREE=$(shell test -x initramfs/usr/sbin/zerofree || echo 1) \
$(VG)
$(TESTS): $(INITRAMFS) $(VMLINUZ)
diff --git a/src/generator.ml b/src/generator.ml
index 01a23095..e6199a42 100755
--- a/src/generator.ml
+++ b/src/generator.ml
@@ -1998,7 +1998,7 @@ This runs C<hexdump -C> on the given C<path>. The result is
the human-readable, canonical hex dump of the file.");
("zerofree", (RErr, [String "device"]), 97, [],
- [InitNone, Always, TestOutput (
+ [InitNone, Unless (env_is_true "SKIP_ZEROFREE"), TestOutput (
[["sfdisk"; "/dev/sda"; "0"; "0"; "0"; ","];
["mkfs"; "ext3"; "/dev/sda1"];
["mount"; "/dev/sda1"; "/"];
diff --git a/tests.c b/tests.c
index 19a37757..a4e7d476 100644
--- a/tests.c
+++ b/tests.c
@@ -643,8 +643,15 @@ static int test_lvresize_0 (void)
return 0;
}
+static int test_zerofree_0_prereq (void)
+{
+ const char *str = getenv ("SKIP_ZEROFREE");
+ return str && strcmp (str, "1") == 0;
+}
+
static int test_zerofree_0 (void)
{
+ if (! test_zerofree_0_prereq ()) {
/* InitNone|InitEmpty for test_zerofree_0 */
{
char device[] = "/dev/sda";
@@ -755,6 +762,8 @@ static int test_zerofree_0 (void)
}
free (r);
}
+ } else
+ printf ("%s skipped (reason: test prerequisite)\n", "test_zerofree_0");
return 0;
}