From 64de216ac7b6ef94f801e214a989c578f26956e8 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Fri, 20 Nov 2009 16:32:53 +0000 Subject: [PATCH] availability: Skip tests when functions are not available. --- capitests/Makefile.am | 15 --------------- src/generator.ml | 26 +++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/capitests/Makefile.am b/capitests/Makefile.am index 74bfab0..023efe4 100644 --- a/capitests/Makefile.am +++ b/capitests/Makefile.am @@ -33,26 +33,11 @@ tests_CFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src \ $(WARN_CFLAGS) $(WERROR_CFLAGS) tests_LDADD = $(top_builddir)/src/libguestfs.la -# Old version of e2fsprogs which didn't support UUIDs? -e2fs_uuid_not_supported := \ - $(shell r=1; \ - test -x ../initramfs/sbin/mkswap \ - && ../initramfs/sbin/mkswap --help 2>&1 | grep -sq -- -U \ - && r=1; \ - echo $$r) - TESTS = tests TESTS_ENVIRONMENT = \ SKIP_TEST_COMMAND=$(shell ldd test-command | grep -sq 'not a dynamic executable' || echo 1) \ SKIP_TEST_COMMAND_LINES=$(shell ldd test-command | grep -sq 'not a dynamic executable' || echo 1) \ - SKIP_TEST_ZEROFREE=$(shell test -x ../initramfs/usr/sbin/zerofree || echo 1) \ - SKIP_TEST_NTFS_3G_PROBE=$(shell test -x ../initramfs/bin/ntfs-3g.probe || echo 1) \ SKIP_TEST_CHECKSUM_8=$(shell if test `find ../initramfs -name squashfs.ko | wc -l` -eq 0; then echo 1; fi) \ - SKIP_TEST_MKSWAP_U=$(e2fs_uuid_not_supported) \ - SKIP_TEST_SWAPON_UUID=$(e2fs_uuid_not_supported) \ - SKIP_TEST_MKE2JOURNAL_U=$(e2fs_uuid_not_supported) \ - SKIP_TEST_SCRUB_FILE=$(shell test -x ../initramfs/usr/bin/scrub || echo 1) \ - SKIP_TEST_SCRUB_DEVICE=$(shell test -x ../initramfs/usr/bin/scrub || echo 1) \ $(VG) # Run the tests under valgrind. diff --git a/src/generator.ml b/src/generator.ml index 08817c1..89c1925 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -6076,8 +6076,8 @@ static void print_table (char const *const *argv) *) let test_names = List.map ( - fun (name, _, _, _, tests, _, _) -> - mapi (generate_one_test name) tests + fun (name, _, _, flags, tests, _, _) -> + mapi (generate_one_test name flags) tests ) (List.rev all_functions) in let test_names = List.concat test_names in let nr_tests = List.length test_names in @@ -6235,7 +6235,7 @@ int main (int argc, char *argv[]) pr " exit (EXIT_SUCCESS);\n"; pr "}\n" -and generate_one_test name i (init, prereq, test) = +and generate_one_test name flags i (init, prereq, test) = let test_name = sprintf "test_%s_%d" name i in pr "\ @@ -6275,6 +6275,26 @@ static int %s (void) " test_name test_name test_name; + (* Optional functions should only be tested if the relevant + * support is available in the daemon. + *) + List.iter ( + function + | Optional group -> + pr " {\n"; + pr " const char *groups[] = { \"%s\", NULL };\n" group; + pr " int r;\n"; + pr " suppress_error = 1;\n"; + pr " r = guestfs_available (g, (char **) groups);\n"; + pr " suppress_error = 0;\n"; + pr " if (r == -1) {\n"; + pr " printf (\" %%s skipped (reason: group %%s not available in daemon)\\n\", \"%s\", groups[0]);\n" test_name; + pr " return 0;\n"; + pr " }\n"; + pr " }\n"; + | _ -> () + ) flags; + (match prereq with | Disabled -> pr " printf (\" %%s skipped (reason: test disabled in generator)\\n\", \"%s\");\n" test_name -- 1.8.3.1