X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=tests.c;h=5cf8ddc4259c6adfb065cc5ba03167761f884bba;hp=378f3af3f56966a8a2fa8f5473a623e7a7526ae5;hb=62df226f26bd6ac3c481a7790eb89d760d2f0386;hpb=aed0fa2c015e56a882fd6d4b759c82df08fc40d7 diff --git a/tests.c b/tests.c index 378f3af..5cf8ddc 100644 --- a/tests.c +++ b/tests.c @@ -108,6 +108,516 @@ static void no_test_warnings (void) fprintf (stderr, "warning: \"guestfs_mount_options\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_mount_vfs\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_debug\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_get_e2label\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_get_e2uuid\" has no tests\n"); +} + +static int test_zero_0 (void) +{ + /* InitBasicFS for zero (0): create ext2 on /dev/sda1 */ + { + int r; + suppress_error = 0; + r = guestfs_umount_all (g); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_lvm_remove_all (g); + if (r == -1) + return -1; + } + { + char *lines[] = { + ",", + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda1", "/"); + if (r == -1) + return -1; + } + /* TestOutput for zero (0) */ + { + int r; + suppress_error = 0; + r = guestfs_umount (g, "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_zero (g, "/dev/sda1"); + if (r == -1) + return -1; + } + { + char *r; + suppress_error = 0; + r = guestfs_file (g, "/dev/sda1"); + if (r == NULL) + return -1; + if (strcmp (r, "data") != 0) { + fprintf (stderr, "test_zero_0: expected \"data\" but got \"%s\"\n", r); + return -1; + } + free (r); + } + return 0; +} + +static int test_fsck_0 (void) +{ + /* InitBasicFS for fsck (0): create ext2 on /dev/sda1 */ + { + int r; + suppress_error = 0; + r = guestfs_umount_all (g); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_lvm_remove_all (g); + if (r == -1) + return -1; + } + { + char *lines[] = { + ",", + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda1", "/"); + if (r == -1) + return -1; + } + /* TestOutputInt for fsck (0) */ + { + int r; + suppress_error = 0; + r = guestfs_umount (g, "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_fsck (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + if (r != 0) { + fprintf (stderr, "test_fsck_0: expected 0 but got %d\n", (int) r); + return -1; + } + } + return 0; +} + +static int test_fsck_1 (void) +{ + /* InitBasicFS for fsck (1): create ext2 on /dev/sda1 */ + { + int r; + suppress_error = 0; + r = guestfs_umount_all (g); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_lvm_remove_all (g); + if (r == -1) + return -1; + } + { + char *lines[] = { + ",", + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda1", "/"); + if (r == -1) + return -1; + } + /* TestOutputInt for fsck (1) */ + { + int r; + suppress_error = 0; + r = guestfs_umount (g, "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_zero (g, "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_fsck (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + if (r != 8) { + fprintf (stderr, "test_fsck_1: expected 8 but got %d\n", (int) r); + return -1; + } + } + return 0; +} + +static int test_set_e2uuid_0 (void) +{ + /* InitBasicFS for set_e2uuid (0): create ext2 on /dev/sda1 */ + { + int r; + suppress_error = 0; + r = guestfs_umount_all (g); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_lvm_remove_all (g); + if (r == -1) + return -1; + } + { + char *lines[] = { + ",", + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda1", "/"); + if (r == -1) + return -1; + } + /* TestOutput for set_e2uuid (0) */ + { + int r; + suppress_error = 0; + r = guestfs_set_e2uuid (g, "/dev/sda1", "a3a61220-882b-4f61-89f4-cf24dcc7297d"); + if (r == -1) + return -1; + } + { + char *r; + suppress_error = 0; + r = guestfs_get_e2uuid (g, "/dev/sda1"); + if (r == NULL) + return -1; + if (strcmp (r, "a3a61220-882b-4f61-89f4-cf24dcc7297d") != 0) { + fprintf (stderr, "test_set_e2uuid_0: expected \"a3a61220-882b-4f61-89f4-cf24dcc7297d\" but got \"%s\"\n", r); + return -1; + } + free (r); + } + return 0; +} + +static int test_set_e2uuid_1 (void) +{ + /* InitBasicFS for set_e2uuid (1): create ext2 on /dev/sda1 */ + { + int r; + suppress_error = 0; + r = guestfs_umount_all (g); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_lvm_remove_all (g); + if (r == -1) + return -1; + } + { + char *lines[] = { + ",", + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda1", "/"); + if (r == -1) + return -1; + } + /* TestOutput for set_e2uuid (1) */ + { + int r; + suppress_error = 0; + r = guestfs_set_e2uuid (g, "/dev/sda1", "clear"); + if (r == -1) + return -1; + } + { + char *r; + suppress_error = 0; + r = guestfs_get_e2uuid (g, "/dev/sda1"); + if (r == NULL) + return -1; + if (strcmp (r, "") != 0) { + fprintf (stderr, "test_set_e2uuid_1: expected \"\" but got \"%s\"\n", r); + return -1; + } + free (r); + } + return 0; +} + +static int test_set_e2uuid_2 (void) +{ + /* InitBasicFS for set_e2uuid (2): create ext2 on /dev/sda1 */ + { + int r; + suppress_error = 0; + r = guestfs_umount_all (g); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_lvm_remove_all (g); + if (r == -1) + return -1; + } + { + char *lines[] = { + ",", + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda1", "/"); + if (r == -1) + return -1; + } + /* TestRun for set_e2uuid (2) */ + { + int r; + suppress_error = 0; + r = guestfs_set_e2uuid (g, "/dev/sda1", "random"); + if (r == -1) + return -1; + } + return 0; +} + +static int test_set_e2uuid_3 (void) +{ + /* InitBasicFS for set_e2uuid (3): create ext2 on /dev/sda1 */ + { + int r; + suppress_error = 0; + r = guestfs_umount_all (g); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_lvm_remove_all (g); + if (r == -1) + return -1; + } + { + char *lines[] = { + ",", + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda1", "/"); + if (r == -1) + return -1; + } + /* TestRun for set_e2uuid (3) */ + { + int r; + suppress_error = 0; + r = guestfs_set_e2uuid (g, "/dev/sda1", "time"); + if (r == -1) + return -1; + } + return 0; +} + +static int test_set_e2label_0 (void) +{ + /* InitBasicFS for set_e2label (0): create ext2 on /dev/sda1 */ + { + int r; + suppress_error = 0; + r = guestfs_umount_all (g); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_lvm_remove_all (g); + if (r == -1) + return -1; + } + { + char *lines[] = { + ",", + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda1", "/"); + if (r == -1) + return -1; + } + /* TestOutput for set_e2label (0) */ + { + int r; + suppress_error = 0; + r = guestfs_set_e2label (g, "/dev/sda1", "testlabel"); + if (r == -1) + return -1; + } + { + char *r; + suppress_error = 0; + r = guestfs_get_e2label (g, "/dev/sda1"); + if (r == NULL) + return -1; + if (strcmp (r, "testlabel") != 0) { + fprintf (stderr, "test_set_e2label_0: expected \"testlabel\" but got \"%s\"\n", r); + return -1; + } + free (r); + } + return 0; } static int test_pvremove_0 (void) @@ -2441,6 +2951,126 @@ static int test_umount_all_0 (void) return 0; } +static int test_umount_all_1 (void) +{ + /* InitEmpty for umount_all (1) */ + { + int r; + suppress_error = 0; + r = guestfs_umount_all (g); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_lvm_remove_all (g); + if (r == -1) + return -1; + } + /* TestOutputList for umount_all (1) */ + { + char *lines[] = { + ",10", + ",20", + ",", + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda2"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkfs (g, "ext2", "/dev/sda3"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda1", "/"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkdir (g, "/mp1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda2", "/mp1"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkdir (g, "/mp1/mp2"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mount (g, "/dev/sda3", "/mp1/mp2"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_mkdir (g, "/mp1/mp2/mp3"); + if (r == -1) + return -1; + } + { + int r; + suppress_error = 0; + r = guestfs_umount_all (g); + if (r == -1) + return -1; + } + { + char **r; + int i; + suppress_error = 0; + r = guestfs_mounts (g); + if (r == NULL) + return -1; + if (r[0] != NULL) { + fprintf (stderr, "test_umount_all_1: extra elements returned from command\n"); + print_strings (r); + return -1; + } + for (i = 0; r[i] != NULL; ++i) + free (r[i]); + free (r); + } + return 0; +} + static int test_mounts_0 (void) { /* InitBasicFS for mounts (0): create ext2 on /dev/sda1 */ @@ -6090,9 +6720,57 @@ int main (int argc, char *argv[]) exit (1); } - nr_tests = 85; + nr_tests = 94; test_num++; + printf ("%3d/%3d test_zero_0\n", test_num, nr_tests); + if (test_zero_0 () == -1) { + printf ("test_zero_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_fsck_0\n", test_num, nr_tests); + if (test_fsck_0 () == -1) { + printf ("test_fsck_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_fsck_1\n", test_num, nr_tests); + if (test_fsck_1 () == -1) { + printf ("test_fsck_1 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_set_e2uuid_0\n", test_num, nr_tests); + if (test_set_e2uuid_0 () == -1) { + printf ("test_set_e2uuid_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_set_e2uuid_1\n", test_num, nr_tests); + if (test_set_e2uuid_1 () == -1) { + printf ("test_set_e2uuid_1 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_set_e2uuid_2\n", test_num, nr_tests); + if (test_set_e2uuid_2 () == -1) { + printf ("test_set_e2uuid_2 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_set_e2uuid_3\n", test_num, nr_tests); + if (test_set_e2uuid_3 () == -1) { + printf ("test_set_e2uuid_3 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_set_e2label_0\n", test_num, nr_tests); + if (test_set_e2label_0 () == -1) { + printf ("test_set_e2label_0 FAILED\n"); + failed++; + } + test_num++; printf ("%3d/%3d test_pvremove_0\n", test_num, nr_tests); if (test_pvremove_0 () == -1) { printf ("test_pvremove_0 FAILED\n"); @@ -6321,6 +6999,12 @@ int main (int argc, char *argv[]) failed++; } test_num++; + printf ("%3d/%3d test_umount_all_1\n", test_num, nr_tests); + if (test_umount_all_1 () == -1) { + printf ("test_umount_all_1 FAILED\n"); + failed++; + } + test_num++; printf ("%3d/%3d test_mounts_0\n", test_num, nr_tests); if (test_mounts_0 () == -1) { printf ("test_mounts_0 FAILED\n");