From 7b309445d4e9f93088ca052469338c8e3ce8dcbf Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Tue, 19 May 2009 12:29:04 +0100 Subject: [PATCH] Skip 'zerofree' test if the command doesn't exist in the appliance. --- Makefile.am | 1 + src/generator.ml | 2 +- tests.c | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 50c9e7d..c035977 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 01a2309..e6199a4 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -1998,7 +1998,7 @@ This runs C on the given C. 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 19a3775..a4e7d47 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; } -- 1.8.3.1