X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=tests.c;h=4baf4867b0092760165eda8d1990582d31553947;hp=e494d9c3042c539986e22f8de47ad1d011a7b3a7;hb=08414bbb3c75585453c3bb084d4317b6107e4e8f;hpb=24bee20ce4196d45891925332a47a05aa5e40938 diff --git a/tests.c b/tests.c index e494d9c..4baf486 100644 --- a/tests.c +++ b/tests.c @@ -31,6 +31,11 @@ static guestfs_h *g; static int suppress_error = 0; +/* This will be 's' or 'h' depending on whether the guest kernel + * names IDE devices /dev/sd* or /dev/hd*. + */ +static char devchar = 's'; + static void print_error (guestfs_h *g, void *data, const char *msg) { if (!suppress_error) @@ -67,6 +72,8 @@ static void no_test_warnings (void) fprintf (stderr, "warning: \"guestfs_get_qemu\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_set_path\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_get_path\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_set_append\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_get_append\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_set_autosync\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_get_autosync\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_set_verbose\" has no tests\n"); @@ -78,6 +85,7 @@ static void no_test_warnings (void) fprintf (stderr, "warning: \"guestfs_get_state\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_set_busy\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_set_ready\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_end_busy\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_ll\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_pvs_full\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_vgs_full\" has no tests\n"); @@ -99,8 +107,6 @@ static void no_test_warnings (void) fprintf (stderr, "warning: \"guestfs_chown\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_sfdisk\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_lvm_remove_all\" has no tests\n"); - fprintf (stderr, "warning: \"guestfs_command\" has no tests\n"); - fprintf (stderr, "warning: \"guestfs_command_lines\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_tune2fs_l\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_blockdev_setbsz\" has no tests\n"); fprintf (stderr, "warning: \"guestfs_tar_out\" has no tests\n"); @@ -110,68 +116,154 @@ static void no_test_warnings (void) 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"); + fprintf (stderr, "warning: \"guestfs_pvresize\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_sfdisk_N\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_sfdisk_l\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_sfdisk_kernel_geometry\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_sfdisk_disk_geometry\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_vg_activate_all\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_vg_activate\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_resize2fs\" has no tests\n"); + fprintf (stderr, "warning: \"guestfs_e2fsck_f\" has no tests\n"); } -static int test_dmesg_0 (void) +static int test_find_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_FIND_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_FIND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_find_0 (void) { - /* InitEmpty for dmesg (0) */ + if (test_find_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_find_0"); + return 0; + } + + /* InitBasicFS for test_find_0: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestRun for dmesg (0) */ { - char *r; + int r; suppress_error = 0; - r = guestfs_dmesg (g); - if (r == NULL) + r = guestfs_lvm_remove_all (g); + if (r == -1) return -1; - free (r); } - return 0; -} - -static int test_drop_caches_0 (void) -{ - /* InitEmpty for drop_caches (0) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } - /* TestRun for drop_caches (0) */ { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_drop_caches (g, 3); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutputList for find (0) */ + { + char directory[] = "/"; + char **r; + int i; + suppress_error = 0; + r = guestfs_find (g, directory); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_find_0: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "lost+found"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_find_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (r[1] != NULL) { + fprintf (stderr, "test_find_0: 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_mv_0 (void) +static int test_find_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_FIND_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_FIND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_find_1 (void) { - /* InitBasicFS for mv (0): create ext2 on /dev/sda1 */ + if (test_find_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_find_1"); + return 0; + } + + /* InitBasicFS for test_find_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -187,63 +279,160 @@ static int test_mv_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutput for mv (0) */ + /* TestOutputList for find (1) */ { + char path[] = "/a"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/old", "file content", 0); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/b"; int r; suppress_error = 0; - r = guestfs_mv (g, "/old", "/new"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { - char *r; + char path[] = "/b/c"; + int r; + suppress_error = 0; + r = guestfs_touch (g, path); + if (r == -1) + return -1; + } + { + char directory[] = "/"; + char **r; + int i; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_find (g, directory); if (r == NULL) return -1; - if (strcmp (r, "file content") != 0) { - fprintf (stderr, "test_mv_0: expected \"file content\" but got \"%s\"\n", r); + if (!r[0]) { + fprintf (stderr, "test_find_1: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "a"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (!r[1]) { + fprintf (stderr, "test_find_1: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "b"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } + } + if (!r[2]) { + fprintf (stderr, "test_find_1: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "b/c"; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } + } + if (!r[3]) { + fprintf (stderr, "test_find_1: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "lost+found"; + if (strcmp (r[3], expected) != 0) { + fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[3]); + return -1; + } + } + if (r[4] != NULL) { + fprintf (stderr, "test_find_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_mv_1 (void) +static int test_find_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_FIND_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_FIND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_find_2 (void) { - /* InitBasicFS for mv (1): create ext2 on /dev/sda1 */ + if (test_find_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_find_2"); + return 0; + } + + /* InitBasicFS for test_find_2: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -259,210 +448,267 @@ static int test_mv_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutputFalse for mv (1) */ + /* TestOutputList for find (2) */ { + char path[] = "/a/b/c"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/old", "file content", 0); + r = guestfs_mkdir_p (g, path); if (r == -1) return -1; } { + char path[] = "/a/b/c/d"; int r; suppress_error = 0; - r = guestfs_mv (g, "/old", "/new"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { - int r; + char directory[] = "/a/b/"; + char **r; + int i; suppress_error = 0; - r = guestfs_is_file (g, "/old"); - if (r == -1) + r = guestfs_find (g, directory); + if (r == NULL) return -1; - if (r) { - fprintf (stderr, "test_mv_1: expected false, got true\n"); + if (!r[0]) { + fprintf (stderr, "test_find_2: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "c"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_find_2: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (!r[1]) { + fprintf (stderr, "test_find_2: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "c/d"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_find_2: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } + } + if (r[2] != NULL) { + fprintf (stderr, "test_find_2: 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_cp_a_0 (void) +static int test_lvresize_0_skip (void) { - /* InitBasicFS for cp_a (0): create ext2 on /dev/sda1 */ - { - int r; - suppress_error = 0; - r = guestfs_umount_all (g); - if (r == -1) - return -1; + const char *str; + + str = getenv ("SKIP_TEST_LVRESIZE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LVRESIZE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_lvresize_0 (void) +{ + if (test_lvresize_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvresize_0"); + return 0; } + + /* InitNone|InitEmpty for test_lvresize_0 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { - char *lines[] = { - ",", - NULL - }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_umount_all (g); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } + /* TestOutput for lvresize (0) */ + char expected[] = "test content"; { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } - /* TestOutput for cp_a (0) */ { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/olddir"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char *physvols[] = { + physvols_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/newdir"); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } { + char logvol[] = "LV"; + char volgroup[] = "VG"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/olddir/file", "file content", 0); + r = guestfs_lvcreate (g, logvol, volgroup, 10); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/VG/LV"; int r; suppress_error = 0; - r = guestfs_cp_a (g, "/olddir", "/newdir"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { - char *r; - suppress_error = 0; - r = guestfs_cat (g, "/newdir/olddir/file"); - if (r == NULL) - return -1; - if (strcmp (r, "file content") != 0) { - fprintf (stderr, "test_cp_a_0: expected \"file content\" but got \"%s\"\n", r); - return -1; - } - free (r); - } - return 0; -} - -static int test_cp_0 (void) -{ - /* InitBasicFS for cp (0): create ext2 on /dev/sda1 */ - { + char device[] = "/dev/VG/LV"; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } { + char path[] = "/new"; + char content[] = "test content"; int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { - char *lines[] = { - ",", - NULL - }; + char pathordevice[] = "/"; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_umount (g, pathordevice); if (r == -1) return -1; } { + char device[] = "/dev/VG/LV"; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_lvresize (g, device, 20); if (r == -1) return -1; } { + char device[] = "/dev/VG/LV"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_e2fsck_f (g, device); if (r == -1) return -1; } - /* TestOutput for cp (0) */ { + char device[] = "/dev/VG/LV"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/old", "file content", 0); + r = guestfs_resize2fs (g, device); if (r == -1) return -1; } { + char device[] = "/dev/VG/LV"; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_cp (g, "/old", "/new"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "file content") != 0) { - fprintf (stderr, "test_cp_0: expected \"file content\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_lvresize_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -470,9 +716,34 @@ static int test_cp_0 (void) return 0; } -static int test_cp_1 (void) +static int test_zerofree_0_skip (void) { - /* InitBasicFS for cp (1): create ext2 on /dev/sda1 */ + const char *str; + + str = getenv ("SKIP_TEST_ZEROFREE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_ZEROFREE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_zerofree_0 (void) +{ + if (test_zerofree_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_zerofree_0"); + return 0; + } + + /* InitNone|InitEmpty for test_zerofree_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -487,132 +758,191 @@ static int test_cp_1 (void) if (r == -1) return -1; } + /* TestOutput for zerofree (0) */ + char expected[] = "test file"; { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext3"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutputTrue for cp (1) */ { + char path[] = "/new"; + char content[] = "test file"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/old", "file content", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char pathordevice[] = "/dev/sda1"; + pathordevice[5] = devchar; int r; suppress_error = 0; - r = guestfs_cp (g, "/old", "/new"); + r = guestfs_umount (g, pathordevice); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_is_file (g, "/old"); + r = guestfs_zerofree (g, device); if (r == -1) return -1; - if (!r) { - fprintf (stderr, "test_cp_1: expected true, got false\n"); + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + { + char path[] = "/new"; + char *r; + suppress_error = 0; + r = guestfs_cat (g, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_zerofree_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } + free (r); } return 0; } -static int test_cp_2 (void) +static int test_hexdump_0_skip (void) { - /* InitBasicFS for cp (2): create ext2 on /dev/sda1 */ - { - int r; - suppress_error = 0; - r = guestfs_umount_all (g); - if (r == -1) - return -1; + const char *str; + + str = getenv ("SKIP_TEST_HEXDUMP_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_HEXDUMP"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_hexdump_0 (void) +{ + if (test_hexdump_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_hexdump_0"); + return 0; } + + /* InitBasicFS for test_hexdump_0: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { - char *lines[] = { - ",", - NULL - }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_umount_all (g); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } - /* TestOutput for cp (2) */ { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_write_file (g, "/old", "file content", 0); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/dir"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutput for hexdump (0) */ + char expected[] = "00000000 68 65 6c 6c 6f 0a 77 6f 72 6c 64 0a |hello.world.|\n0000000c\n"; { + char path[] = "/new"; + char content[] = "hello\nworld\n"; int r; suppress_error = 0; - r = guestfs_cp (g, "/old", "/dir/new"); + r = guestfs_write_file (g, path, content, 12); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/dir/new"); + r = guestfs_hexdump (g, path); if (r == NULL) return -1; - if (strcmp (r, "file content") != 0) { - fprintf (stderr, "test_cp_2: expected \"file content\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_hexdump_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -620,9 +950,34 @@ static int test_cp_2 (void) return 0; } -static int test_grub_install_0 (void) +static int test_strings_e_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_STRINGS_E_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_STRINGS_E"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_strings_e_0 (void) { - /* InitBasicFS for grub_install (0): create ext2 on /dev/sda1 */ + if (test_strings_e_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_strings_e_0"); + return 0; + } + + /* InitBasicFS for test_strings_e_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -638,127 +993,250 @@ static int test_grub_install_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutputTrue for grub_install (0) */ + /* TestOutputList for strings_e (0) */ { + char path[] = "/new"; + char content[] = "hello\nworld\n"; int r; suppress_error = 0; - r = guestfs_grub_install (g, "/", "/dev/sda1"); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { - int r; + char encoding[] = "b"; + char path[] = "/new"; + char **r; + int i; suppress_error = 0; - r = guestfs_is_dir (g, "/boot"); - if (r == -1) + r = guestfs_strings_e (g, encoding, path); + if (r == NULL) return -1; - if (!r) { - fprintf (stderr, "test_grub_install_0: expected true, got false\n"); + if (r[0] != NULL) { + fprintf (stderr, "test_strings_e_0: 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_zero_0 (void) +static int test_strings_e_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_STRINGS_E_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_STRINGS_E"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_strings_e_1 (void) +{ + if (test_strings_e_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_strings_e_1"); + return 0; + } + + printf ("%s skipped (reason: test disabled in generator)\n", "test_strings_e_1"); + return 0; +} + +static int test_strings_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_STRINGS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_STRINGS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_strings_0 (void) { - /* InitBasicFS for zero (0): create ext2 on /dev/sda1 */ + if (test_strings_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_strings_0"); + return 0; + } + + /* InitBasicFS for test_strings_0: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_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); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } - /* TestOutput for zero (0) */ { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_umount (g, "/dev/sda1"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutputList for strings (0) */ { + char path[] = "/new"; + char content[] = "hello\nworld\n"; int r; suppress_error = 0; - r = guestfs_zero (g, "/dev/sda1"); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { - char *r; + char path[] = "/new"; + char **r; + int i; suppress_error = 0; - r = guestfs_file (g, "/dev/sda1"); + r = guestfs_strings (g, path); if (r == NULL) return -1; - if (strcmp (r, "data") != 0) { - fprintf (stderr, "test_zero_0: expected \"data\" but got \"%s\"\n", r); + if (!r[0]) { + fprintf (stderr, "test_strings_0: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "hello"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_strings_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (!r[1]) { + fprintf (stderr, "test_strings_0: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "world"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_strings_0: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } + } + if (r[2] != NULL) { + fprintf (stderr, "test_strings_0: 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_fsck_0 (void) +static int test_strings_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_STRINGS_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_STRINGS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_strings_1 (void) { - /* InitBasicFS for fsck (0): create ext2 on /dev/sda1 */ + if (test_strings_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_strings_1"); + return 0; + } + + /* InitBasicFS for test_strings_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -774,55 +1252,96 @@ static int test_fsck_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutputInt for fsck (0) */ + /* TestOutputList for strings (1) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_umount (g, "/dev/sda1"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { - int r; + char path[] = "/new"; + char **r; + int i; suppress_error = 0; - r = guestfs_fsck (g, "ext2", "/dev/sda1"); - if (r == -1) + r = guestfs_strings (g, path); + if (r == NULL) return -1; - if (r != 0) { - fprintf (stderr, "test_fsck_0: expected 0 but got %d\n", (int) r); + if (r[0] != NULL) { + fprintf (stderr, "test_strings_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_fsck_1 (void) +static int test_equal_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_EQUAL_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_EQUAL"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_equal_0 (void) { - /* InitBasicFS for fsck (1): create ext2 on /dev/sda1 */ + if (test_equal_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_equal_0"); + return 0; + } + + /* InitBasicFS for test_equal_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -838,62 +1357,102 @@ static int test_fsck_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutputInt for fsck (1) */ + /* TestOutputTrue for equal (0) */ { + char path[] = "/file1"; + char content[] = "contents of a file"; int r; suppress_error = 0; - r = guestfs_umount (g, "/dev/sda1"); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char src[] = "/file1"; + char dest[] = "/file2"; int r; suppress_error = 0; - r = guestfs_zero (g, "/dev/sda1"); + r = guestfs_cp (g, src, dest); if (r == -1) return -1; } { + char file1[] = "/file1"; + char file2[] = "/file2"; int r; suppress_error = 0; - r = guestfs_fsck (g, "ext2", "/dev/sda1"); + r = guestfs_equal (g, file1, file2); if (r == -1) return -1; - if (r != 8) { - fprintf (stderr, "test_fsck_1: expected 8 but got %d\n", (int) r); + if (!r) { + fprintf (stderr, "test_equal_0: expected true, got false\n"); return -1; } } return 0; } -static int test_set_e2uuid_0 (void) +static int test_equal_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_EQUAL_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_EQUAL"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_equal_1 (void) { - /* InitBasicFS for set_e2uuid (0): create ext2 on /dev/sda1 */ + if (test_equal_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_equal_1"); + return 0; + } + + /* InitBasicFS for test_equal_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -909,227 +1468,351 @@ static int test_set_e2uuid_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutput for set_e2uuid (0) */ + /* TestOutputFalse for equal (1) */ { + char path[] = "/file1"; + char content[] = "contents of a file"; int r; suppress_error = 0; - r = guestfs_set_e2uuid (g, "/dev/sda1", "a3a61220-882b-4f61-89f4-cf24dcc7297d"); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { - char *r; + char path[] = "/file2"; + char content[] = "contents of another file"; + int r; suppress_error = 0; - r = guestfs_get_e2uuid (g, "/dev/sda1"); - if (r == NULL) + r = guestfs_write_file (g, path, content, 0); + if (r == -1) + return -1; + } + { + char file1[] = "/file1"; + char file2[] = "/file2"; + int r; + suppress_error = 0; + r = guestfs_equal (g, file1, file2); + if (r == -1) 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); + if (r) { + fprintf (stderr, "test_equal_1: expected false, got true\n"); return -1; } - free (r); } return 0; } -static int test_set_e2uuid_1 (void) +static int test_equal_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_EQUAL_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_EQUAL"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_equal_2 (void) { - /* InitBasicFS for set_e2uuid (1): create ext2 on /dev/sda1 */ + if (test_equal_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_equal_2"); + return 0; + } + + /* InitBasicFS for test_equal_2: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_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); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } - /* TestOutput for set_e2uuid (1) */ { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_set_e2uuid (g, "/dev/sda1", "clear"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestLastFail for equal (2) */ { - 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); + char file1[] = "/file1"; + char file2[] = "/file2"; + int r; + suppress_error = 1; + r = guestfs_equal (g, file1, file2); + if (r != -1) return -1; - } - free (r); } return 0; } -static int test_set_e2uuid_2 (void) +static int test_ping_daemon_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_PING_DAEMON_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_PING_DAEMON"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_ping_daemon_0 (void) { - /* InitBasicFS for set_e2uuid (2): create ext2 on /dev/sda1 */ + if (test_ping_daemon_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_ping_daemon_0"); + return 0; + } + + /* InitNone|InitEmpty for test_ping_daemon_0 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_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); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } + /* TestRun for ping_daemon (0) */ { int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_ping_daemon (g); if (r == -1) return -1; } + return 0; +} + +static int test_dmesg_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_DMESG_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_DMESG"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_dmesg_0 (void) +{ + if (test_dmesg_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_dmesg_0"); + return 0; + } + + /* InitNone|InitEmpty for test_dmesg_0 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } - /* TestRun for set_e2uuid (2) */ { int r; suppress_error = 0; - r = guestfs_set_e2uuid (g, "/dev/sda1", "random"); + r = guestfs_umount_all (g); 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); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } + /* TestRun for dmesg (0) */ { - int r; + char *r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); - if (r == -1) + r = guestfs_dmesg (g); + if (r == NULL) return -1; + free (r); + } + return 0; +} + +static int test_drop_caches_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_DROP_CACHES_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_DROP_CACHES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_drop_caches_0 (void) +{ + if (test_drop_caches_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_drop_caches_0"); + return 0; } + + /* InitNone|InitEmpty for test_drop_caches_0 */ { - char *lines[] = { - ",", - NULL - }; + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_umount_all (g); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } - /* TestRun for set_e2uuid (3) */ + /* TestRun for drop_caches (0) */ { int r; suppress_error = 0; - r = guestfs_set_e2uuid (g, "/dev/sda1", "time"); + r = guestfs_drop_caches (g, 3); if (r == -1) return -1; } return 0; } -static int test_set_e2label_0 (void) +static int test_mv_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MV_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MV"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_mv_0 (void) { - /* InitBasicFS for set_e2label (0): create ext2 on /dev/sda1 */ + if (test_mv_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mv_0"); + return 0; + } + + /* InitBasicFS for test_mv_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -1145,46 +1828,68 @@ static int test_set_e2label_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for mv (0) */ + char expected[] = "file content"; + { + char path[] = "/old"; + char content[] = "file content"; + int r; + suppress_error = 0; + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } - /* TestOutput for set_e2label (0) */ { + char src[] = "/old"; + char dest[] = "/new"; int r; suppress_error = 0; - r = guestfs_set_e2label (g, "/dev/sda1", "testlabel"); + r = guestfs_mv (g, src, dest); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_get_e2label (g, "/dev/sda1"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "testlabel") != 0) { - fprintf (stderr, "test_set_e2label_0: expected \"testlabel\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_mv_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -1192,656 +1897,932 @@ static int test_set_e2label_0 (void) return 0; } -static int test_pvremove_0 (void) +static int test_mv_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MV_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MV"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_mv_1 (void) { - /* InitEmpty for pvremove (0) */ + if (test_mv_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mv_1"); + return 0; + } + + /* InitBasicFS for test_mv_1: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestOutputList for pvremove (0) */ { int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { - char *physvols[] = { - "/dev/sda", + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV1", "VG", 50); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV2", "VG", 50); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutputFalse for mv (1) */ { + char path[] = "/old"; + char content[] = "file content"; int r; suppress_error = 0; - r = guestfs_vgremove (g, "VG"); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char src[] = "/old"; + char dest[] = "/new"; int r; suppress_error = 0; - r = guestfs_pvremove (g, "/dev/sda"); + r = guestfs_mv (g, src, dest); if (r == -1) return -1; } { - char **r; - int i; + char path[] = "/old"; + int r; suppress_error = 0; - r = guestfs_lvs (g); - if (r == NULL) + r = guestfs_is_file (g, path); + if (r == -1) return -1; - if (r[0] != NULL) { - fprintf (stderr, "test_pvremove_0: extra elements returned from command\n"); - print_strings (r); + if (r) { + fprintf (stderr, "test_mv_1: expected false, got true\n"); return -1; } - for (i = 0; r[i] != NULL; ++i) - free (r[i]); - free (r); } return 0; } -static int test_pvremove_1 (void) +static int test_cp_a_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CP_A_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CP_A"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_cp_a_0 (void) { - /* InitEmpty for pvremove (1) */ + if (test_cp_a_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_cp_a_0"); + return 0; + } + + /* InitBasicFS for test_cp_a_0: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestOutputList for pvremove (1) */ { int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { - char *physvols[] = { - "/dev/sda", + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV1", "VG", 50); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV2", "VG", 50); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutput for cp_a (0) */ + char expected[] = "file content"; { + char path[] = "/olddir"; int r; suppress_error = 0; - r = guestfs_vgremove (g, "VG"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char path[] = "/newdir"; int r; suppress_error = 0; - r = guestfs_pvremove (g, "/dev/sda"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { - char **r; - int i; + char path[] = "/olddir/file"; + char content[] = "file content"; + int r; suppress_error = 0; - r = guestfs_vgs (g); + r = guestfs_write_file (g, path, content, 0); + if (r == -1) + return -1; + } + { + char src[] = "/olddir"; + char dest[] = "/newdir"; + int r; + suppress_error = 0; + r = guestfs_cp_a (g, src, dest); + if (r == -1) + return -1; + } + { + char path[] = "/newdir/olddir/file"; + char *r; + suppress_error = 0; + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (r[0] != NULL) { - fprintf (stderr, "test_pvremove_1: extra elements returned from command\n"); - print_strings (r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_cp_a_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } - for (i = 0; r[i] != NULL; ++i) - free (r[i]); free (r); } return 0; } -static int test_pvremove_2 (void) +static int test_cp_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CP_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CP"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_cp_0 (void) { - /* InitEmpty for pvremove (2) */ + if (test_cp_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_cp_0"); + return 0; + } + + /* InitBasicFS for test_cp_0: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestOutputList for pvremove (2) */ { int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { - char *physvols[] = { - "/dev/sda", + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV1", "VG", 50); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV2", "VG", 50); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutput for cp (0) */ + char expected[] = "file content"; { + char path[] = "/old"; + char content[] = "file content"; int r; suppress_error = 0; - r = guestfs_vgremove (g, "VG"); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char src[] = "/old"; + char dest[] = "/new"; int r; suppress_error = 0; - r = guestfs_pvremove (g, "/dev/sda"); + r = guestfs_cp (g, src, dest); if (r == -1) return -1; } { - char **r; - int i; + char path[] = "/new"; + char *r; suppress_error = 0; - r = guestfs_pvs (g); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (r[0] != NULL) { - fprintf (stderr, "test_pvremove_2: extra elements returned from command\n"); - print_strings (r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_cp_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } - for (i = 0; r[i] != NULL; ++i) - free (r[i]); free (r); } return 0; } -static int test_vgremove_0 (void) +static int test_cp_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CP_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CP"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_cp_1 (void) { - /* InitEmpty for vgremove (0) */ + if (test_cp_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_cp_1"); + return 0; + } + + /* InitBasicFS for test_cp_1: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestOutputList for vgremove (0) */ { int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { - char *physvols[] = { - "/dev/sda", + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV1", "VG", 50); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV2", "VG", 50); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutputTrue for cp (1) */ { + char path[] = "/old"; + char content[] = "file content"; int r; suppress_error = 0; - r = guestfs_vgremove (g, "VG"); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { - char **r; - int i; + char src[] = "/old"; + char dest[] = "/new"; + int r; suppress_error = 0; - r = guestfs_lvs (g); - if (r == NULL) + r = guestfs_cp (g, src, dest); + if (r == -1) return -1; - if (r[0] != NULL) { - fprintf (stderr, "test_vgremove_0: extra elements returned from command\n"); - print_strings (r); + } + { + char path[] = "/old"; + int r; + suppress_error = 0; + r = guestfs_is_file (g, path); + if (r == -1) + return -1; + if (!r) { + fprintf (stderr, "test_cp_1: expected true, got false\n"); return -1; } - for (i = 0; r[i] != NULL; ++i) - free (r[i]); - free (r); } return 0; } -static int test_vgremove_1 (void) +static int test_cp_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CP_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CP"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_cp_2 (void) { - /* InitEmpty for vgremove (1) */ + if (test_cp_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_cp_2"); + return 0; + } + + /* InitBasicFS for test_cp_2: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestOutputList for vgremove (1) */ { int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { - char *physvols[] = { - "/dev/sda", + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV1", "VG", 50); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV2", "VG", 50); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutput for cp (2) */ + char expected[] = "file content"; { + char path[] = "/old"; + char content[] = "file content"; int r; suppress_error = 0; - r = guestfs_vgremove (g, "VG"); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { - char **r; - int i; + char path[] = "/dir"; + int r; suppress_error = 0; - r = guestfs_vgs (g); + r = guestfs_mkdir (g, path); + if (r == -1) + return -1; + } + { + char src[] = "/old"; + char dest[] = "/dir/new"; + int r; + suppress_error = 0; + r = guestfs_cp (g, src, dest); + if (r == -1) + return -1; + } + { + char path[] = "/dir/new"; + char *r; + suppress_error = 0; + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (r[0] != NULL) { - fprintf (stderr, "test_vgremove_1: extra elements returned from command\n"); - print_strings (r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_cp_2: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } - for (i = 0; r[i] != NULL; ++i) - free (r[i]); free (r); } return 0; } -static int test_lvremove_0 (void) +static int test_grub_install_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_GRUB_INSTALL_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_GRUB_INSTALL"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_grub_install_0 (void) { - /* InitEmpty for lvremove (0) */ + if (test_grub_install_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_grub_install_0"); + return 0; + } + + /* InitBasicFS for test_grub_install_0: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestOutputList for lvremove (0) */ { int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { - char *physvols[] = { - "/dev/sda", + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV1", "VG", 50); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV2", "VG", 50); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutputTrue for grub_install (0) */ { + char root[] = "/"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvremove (g, "/dev/VG/LV1"); + r = guestfs_grub_install (g, root, device); if (r == -1) return -1; } { - char **r; - int i; + char path[] = "/boot"; + int r; suppress_error = 0; - r = guestfs_lvs (g); - if (r == NULL) - return -1; - if (!r[0]) { - fprintf (stderr, "test_lvremove_0: short list returned from command\n"); - print_strings (r); - return -1; - } - if (strcmp (r[0], "/dev/VG/LV2") != 0) { - fprintf (stderr, "test_lvremove_0: expected \"/dev/VG/LV2\" but got \"%s\"\n", r[0]); + r = guestfs_is_dir (g, path); + if (r == -1) return -1; - } - if (r[1] != NULL) { - fprintf (stderr, "test_lvremove_0: extra elements returned from command\n"); - print_strings (r); + if (!r) { + fprintf (stderr, "test_grub_install_0: expected true, got false\n"); return -1; } - for (i = 0; r[i] != NULL; ++i) - free (r[i]); - free (r); } return 0; } -static int test_lvremove_1 (void) +static int test_zero_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_ZERO_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_ZERO"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_zero_0 (void) { - /* InitEmpty for lvremove (1) */ + if (test_zero_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_zero_0"); + return 0; + } + + /* InitBasicFS for test_zero_0: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestOutputList for lvremove (1) */ { int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { - char *physvols[] = { - "/dev/sda", + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV1", "VG", 50); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV2", "VG", 50); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutput for zero (0) */ + char expected[] = "data"; { + char pathordevice[] = "/dev/sda1"; + pathordevice[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvremove (g, "/dev/VG"); + r = guestfs_umount (g, pathordevice); if (r == -1) return -1; } { - char **r; - int i; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; suppress_error = 0; - r = guestfs_lvs (g); + r = guestfs_zero (g, device); + if (r == -1) + return -1; + } + { + char path[] = "/dev/sda1"; + path[5] = devchar; + char *r; + suppress_error = 0; + r = guestfs_file (g, path); if (r == NULL) return -1; - if (r[0] != NULL) { - fprintf (stderr, "test_lvremove_1: extra elements returned from command\n"); - print_strings (r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_zero_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } - for (i = 0; r[i] != NULL; ++i) - free (r[i]); free (r); } return 0; } -static int test_lvremove_2 (void) +static int test_fsck_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_FSCK_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_FSCK"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_fsck_0 (void) { - /* InitEmpty for lvremove (2) */ + if (test_fsck_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_fsck_0"); + return 0; + } + + /* InitBasicFS for test_fsck_0: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestOutputList for lvremove (2) */ { int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { - char *physvols[] = { - "/dev/sda", + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV1", "VG", 50); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV2", "VG", 50); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutputInt for fsck (0) */ { + char pathordevice[] = "/dev/sda1"; + pathordevice[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvremove (g, "/dev/VG"); + r = guestfs_umount (g, pathordevice); if (r == -1) return -1; } { - char **r; - int i; + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; suppress_error = 0; - r = guestfs_vgs (g); - if (r == NULL) - return -1; - if (!r[0]) { - fprintf (stderr, "test_lvremove_2: short list returned from command\n"); - print_strings (r); + r = guestfs_fsck (g, fstype, device); + if (r == -1) return -1; - } - if (strcmp (r[0], "VG") != 0) { - fprintf (stderr, "test_lvremove_2: expected \"VG\" but got \"%s\"\n", r[0]); + if (r != 0) { + fprintf (stderr, "test_fsck_0: expected 0 but got %d\n", (int) r); return -1; } - if (r[1] != NULL) { - fprintf (stderr, "test_lvremove_2: 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_mount_ro_0 (void) +static int test_fsck_1_skip (void) { - /* InitBasicFS for mount_ro (0): create ext2 on /dev/sda1 */ + const char *str; + + str = getenv ("SKIP_TEST_FSCK_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_FSCK"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_fsck_1 (void) +{ + if (test_fsck_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_fsck_1"); + return 0; + } + + /* InitBasicFS for test_fsck_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -1857,127 +2838,173 @@ static int test_mount_ro_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestLastFail for mount_ro (0) */ + /* TestOutputInt for fsck (1) */ { + char pathordevice[] = "/dev/sda1"; + pathordevice[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount (g, "/"); + r = guestfs_umount (g, pathordevice); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mount_ro (g, "/dev/sda1", "/"); + r = guestfs_zero (g, device); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; - suppress_error = 1; - r = guestfs_touch (g, "/new"); - if (r != -1) + suppress_error = 0; + r = guestfs_fsck (g, fstype, device); + 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_mount_ro_1 (void) +static int test_set_e2uuid_0_skip (void) { - /* InitBasicFS for mount_ro (1): create ext2 on /dev/sda1 */ - { - int r; - suppress_error = 0; - r = guestfs_umount_all (g); - if (r == -1) - return -1; + const char *str; + + str = getenv ("SKIP_TEST_SET_E2UUID_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_SET_E2UUID"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_set_e2uuid_0 (void) +{ + if (test_set_e2uuid_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_set_e2uuid_0"); + return 0; } + + /* InitBasicFS for test_set_e2uuid_0: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { - char *lines[] = { - ",", - NULL - }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_umount_all (g); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } - /* TestOutput for mount_ro (1) */ { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "data", 0); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_umount (g, "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutput for set_e2uuid (0) */ + char expected[] = "a3a61220-882b-4f61-89f4-cf24dcc7297d"; { + char device[] = "/dev/sda1"; + device[5] = devchar; + char uuid[] = "a3a61220-882b-4f61-89f4-cf24dcc7297d"; int r; suppress_error = 0; - r = guestfs_mount_ro (g, "/dev/sda1", "/"); + r = guestfs_set_e2uuid (g, device, uuid); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_get_e2uuid (g, device); if (r == NULL) return -1; - if (strcmp (r, "data") != 0) { - fprintf (stderr, "test_mount_ro_1: expected \"data\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_set_e2uuid_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -1985,9 +3012,34 @@ static int test_mount_ro_1 (void) return 0; } -static int test_tgz_in_0 (void) +static int test_set_e2uuid_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_SET_E2UUID_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_SET_E2UUID"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_set_e2uuid_1 (void) { - /* InitBasicFS for tgz_in (0): create ext2 on /dev/sda1 */ + if (test_set_e2uuid_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_set_e2uuid_1"); + return 0; + } + + /* InitBasicFS for test_set_e2uuid_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2003,46 +3055,61 @@ static int test_tgz_in_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutput for tgz_in (0) */ + /* TestOutput for set_e2uuid (1) */ + char expected[] = ""; { + char device[] = "/dev/sda1"; + device[5] = devchar; + char uuid[] = "clear"; int r; suppress_error = 0; - r = guestfs_tgz_in (g, "images/helloworld.tar.gz", "/"); + r = guestfs_set_e2uuid (g, device, uuid); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; char *r; suppress_error = 0; - r = guestfs_cat (g, "/hello"); + r = guestfs_get_e2uuid (g, device); if (r == NULL) return -1; - if (strcmp (r, "hello\n") != 0) { - fprintf (stderr, "test_tgz_in_0: expected \"hello\n\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_set_e2uuid_1: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -2050,9 +3117,34 @@ static int test_tgz_in_0 (void) return 0; } -static int test_tar_in_0 (void) +static int test_set_e2uuid_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_SET_E2UUID_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_SET_E2UUID"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_set_e2uuid_2 (void) { - /* InitBasicFS for tar_in (0): create ext2 on /dev/sda1 */ + if (test_set_e2uuid_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_set_e2uuid_2"); + return 0; + } + + /* InitBasicFS for test_set_e2uuid_2: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2068,56 +3160,171 @@ static int test_tar_in_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutput for tar_in (0) */ + /* TestRun for set_e2uuid (2) */ + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char uuid[] = "random"; + int r; + suppress_error = 0; + r = guestfs_set_e2uuid (g, device, uuid); + if (r == -1) + return -1; + } + return 0; +} + +static int test_set_e2uuid_3_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_SET_E2UUID_3"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_SET_E2UUID"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_set_e2uuid_3 (void) +{ + if (test_set_e2uuid_3_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_set_e2uuid_3"); + return 0; + } + + /* InitBasicFS for test_set_e2uuid_3: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_tar_in (g, "images/helloworld.tar", "/"); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { - char *r; + int r; suppress_error = 0; - r = guestfs_cat (g, "/hello"); - if (r == NULL) + r = guestfs_umount_all (g); + if (r == -1) return -1; - if (strcmp (r, "hello\n") != 0) { - fprintf (stderr, "test_tar_in_0: expected \"hello\n\" but got \"%s\"\n", r); + } + { + int r; + suppress_error = 0; + r = guestfs_lvm_remove_all (g); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestRun for set_e2uuid (3) */ + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char uuid[] = "time"; + int r; + suppress_error = 0; + r = guestfs_set_e2uuid (g, device, uuid); + if (r == -1) return -1; - } - free (r); } return 0; } -static int test_checksum_0 (void) +static int test_set_e2label_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_SET_E2LABEL_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_SET_E2LABEL"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_set_e2label_0 (void) { - /* InitBasicFS for checksum (0): create ext2 on /dev/sda1 */ + if (test_set_e2label_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_set_e2label_0"); + return 0; + } + + /* InitBasicFS for test_set_e2label_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2133,46 +3340,61 @@ static int test_checksum_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutput for checksum (0) */ + /* TestOutput for set_e2label (0) */ + char expected[] = "testlabel"; { + char device[] = "/dev/sda1"; + device[5] = devchar; + char label[] = "testlabel"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "test\n", 0); + r = guestfs_set_e2label (g, device, label); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; char *r; suppress_error = 0; - r = guestfs_checksum (g, "crc", "/new"); + r = guestfs_get_e2label (g, device); if (r == NULL) return -1; - if (strcmp (r, "935282863") != 0) { - fprintf (stderr, "test_checksum_0: expected \"935282863\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_set_e2label_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -2180,9 +3402,34 @@ static int test_checksum_0 (void) return 0; } -static int test_checksum_1 (void) +static int test_pvremove_0_skip (void) { - /* InitBasicFS for checksum (1): create ext2 on /dev/sda1 */ + const char *str; + + str = getenv ("SKIP_TEST_PVREMOVE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_PVREMOVE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_pvremove_0 (void) +{ + if (test_pvremove_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvremove_0"); + return 0; + } + + /* InitNone|InitEmpty for test_pvremove_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2197,46 +3444,126 @@ static int test_checksum_1 (void) if (r == -1) return -1; } + /* TestOutputList for pvremove (0) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char *physvols[] = { + physvols_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } - /* TestLastFail for checksum (1) */ { - char *r; - suppress_error = 1; - r = guestfs_checksum (g, "crc", "/new"); - if (r != NULL) + char logvol[] = "LV1"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char logvol[] = "LV2"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char vgname[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_vgremove (g, vgname); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_pvremove (g, device); + if (r == -1) + return -1; + } + { + char **r; + int i; + suppress_error = 0; + r = guestfs_lvs (g); + if (r == NULL) + return -1; + if (r[0] != NULL) { + fprintf (stderr, "test_pvremove_0: 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_checksum_2 (void) +static int test_pvremove_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_PVREMOVE_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_PVREMOVE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_pvremove_1 (void) { - /* InitBasicFS for checksum (2): create ext2 on /dev/sda1 */ + if (test_pvremove_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvremove_1"); + return 0; + } + + /* InitNone|InitEmpty for test_pvremove_1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2251,57 +3578,4644 @@ static int test_checksum_2 (void) if (r == -1) return -1; } + /* TestOutputList for pvremove (1) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char *physvols[] = { + physvols_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } - /* TestOutput for checksum (2) */ { + char logvol[] = "LV1"; + char volgroup[] = "VG"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "test\n", 0); + r = guestfs_lvcreate (g, logvol, volgroup, 50); if (r == -1) return -1; } { - char *r; + char logvol[] = "LV2"; + char volgroup[] = "VG"; + int r; suppress_error = 0; - r = guestfs_checksum (g, "md5", "/new"); - if (r == NULL) + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) return -1; - if (strcmp (r, "d8e8fca2dc0f896fd7cb4cb0031ba249") != 0) { - fprintf (stderr, "test_checksum_2: expected \"d8e8fca2dc0f896fd7cb4cb0031ba249\" but got \"%s\"\n", r); + } + { + char vgname[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_vgremove (g, vgname); + if (r == -1) return -1; - } + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_pvremove (g, device); + if (r == -1) + return -1; + } + { + char **r; + int i; + suppress_error = 0; + r = guestfs_vgs (g); + if (r == NULL) + return -1; + if (r[0] != NULL) { + fprintf (stderr, "test_pvremove_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_pvremove_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_PVREMOVE_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_PVREMOVE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_pvremove_2 (void) +{ + if (test_pvremove_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvremove_2"); + return 0; + } + + /* InitNone|InitEmpty for test_pvremove_2 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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 pvremove (2) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_pvcreate (g, device); + if (r == -1) + return -1; + } + { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char *physvols[] = { + physvols_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_vgcreate (g, volgroup, physvols); + if (r == -1) + return -1; + } + { + char logvol[] = "LV1"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char logvol[] = "LV2"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char vgname[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_vgremove (g, vgname); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_pvremove (g, device); + if (r == -1) + return -1; + } + { + char **r; + int i; + suppress_error = 0; + r = guestfs_pvs (g); + if (r == NULL) + return -1; + if (r[0] != NULL) { + fprintf (stderr, "test_pvremove_2: 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_vgremove_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_VGREMOVE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_VGREMOVE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_vgremove_0 (void) +{ + if (test_vgremove_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_vgremove_0"); + return 0; + } + + /* InitNone|InitEmpty for test_vgremove_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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 vgremove (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_pvcreate (g, device); + if (r == -1) + return -1; + } + { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char *physvols[] = { + physvols_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_vgcreate (g, volgroup, physvols); + if (r == -1) + return -1; + } + { + char logvol[] = "LV1"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char logvol[] = "LV2"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char vgname[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_vgremove (g, vgname); + if (r == -1) + return -1; + } + { + char **r; + int i; + suppress_error = 0; + r = guestfs_lvs (g); + if (r == NULL) + return -1; + if (r[0] != NULL) { + fprintf (stderr, "test_vgremove_0: 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_vgremove_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_VGREMOVE_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_VGREMOVE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_vgremove_1 (void) +{ + if (test_vgremove_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_vgremove_1"); + return 0; + } + + /* InitNone|InitEmpty for test_vgremove_1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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 vgremove (1) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_pvcreate (g, device); + if (r == -1) + return -1; + } + { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char *physvols[] = { + physvols_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_vgcreate (g, volgroup, physvols); + if (r == -1) + return -1; + } + { + char logvol[] = "LV1"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char logvol[] = "LV2"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char vgname[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_vgremove (g, vgname); + if (r == -1) + return -1; + } + { + char **r; + int i; + suppress_error = 0; + r = guestfs_vgs (g); + if (r == NULL) + return -1; + if (r[0] != NULL) { + fprintf (stderr, "test_vgremove_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_lvremove_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LVREMOVE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LVREMOVE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_lvremove_0 (void) +{ + if (test_lvremove_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvremove_0"); + return 0; + } + + /* InitNone|InitEmpty for test_lvremove_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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 lvremove (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_pvcreate (g, device); + if (r == -1) + return -1; + } + { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char *physvols[] = { + physvols_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_vgcreate (g, volgroup, physvols); + if (r == -1) + return -1; + } + { + char logvol[] = "LV1"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char logvol[] = "LV2"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char device[] = "/dev/VG/LV1"; + int r; + suppress_error = 0; + r = guestfs_lvremove (g, device); + if (r == -1) + return -1; + } + { + char **r; + int i; + suppress_error = 0; + r = guestfs_lvs (g); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_lvremove_0: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "/dev/VG/LV2"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_lvremove_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (r[1] != NULL) { + fprintf (stderr, "test_lvremove_0: 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_lvremove_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LVREMOVE_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LVREMOVE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_lvremove_1 (void) +{ + if (test_lvremove_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvremove_1"); + return 0; + } + + /* InitNone|InitEmpty for test_lvremove_1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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 lvremove (1) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_pvcreate (g, device); + if (r == -1) + return -1; + } + { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char *physvols[] = { + physvols_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_vgcreate (g, volgroup, physvols); + if (r == -1) + return -1; + } + { + char logvol[] = "LV1"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char logvol[] = "LV2"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char device[] = "/dev/VG"; + int r; + suppress_error = 0; + r = guestfs_lvremove (g, device); + if (r == -1) + return -1; + } + { + char **r; + int i; + suppress_error = 0; + r = guestfs_lvs (g); + if (r == NULL) + return -1; + if (r[0] != NULL) { + fprintf (stderr, "test_lvremove_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_lvremove_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LVREMOVE_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LVREMOVE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_lvremove_2 (void) +{ + if (test_lvremove_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvremove_2"); + return 0; + } + + /* InitNone|InitEmpty for test_lvremove_2 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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 lvremove (2) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_pvcreate (g, device); + if (r == -1) + return -1; + } + { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char *physvols[] = { + physvols_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_vgcreate (g, volgroup, physvols); + if (r == -1) + return -1; + } + { + char logvol[] = "LV1"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char logvol[] = "LV2"; + char volgroup[] = "VG"; + int r; + suppress_error = 0; + r = guestfs_lvcreate (g, logvol, volgroup, 50); + if (r == -1) + return -1; + } + { + char device[] = "/dev/VG"; + int r; + suppress_error = 0; + r = guestfs_lvremove (g, device); + if (r == -1) + return -1; + } + { + char **r; + int i; + suppress_error = 0; + r = guestfs_vgs (g); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_lvremove_2: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "VG"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_lvremove_2: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (r[1] != NULL) { + fprintf (stderr, "test_lvremove_2: 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_mount_ro_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MOUNT_RO_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MOUNT_RO"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_mount_ro_0 (void) +{ + if (test_mount_ro_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mount_ro_0"); + return 0; + } + + /* InitBasicFS for test_mount_ro_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestLastFail for mount_ro (0) */ + { + char pathordevice[] = "/"; + int r; + suppress_error = 0; + r = guestfs_umount (g, pathordevice); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount_ro (g, device, mountpoint); + if (r == -1) + return -1; + } + { + char path[] = "/new"; + int r; + suppress_error = 1; + r = guestfs_touch (g, path); + if (r != -1) + return -1; + } + return 0; +} + +static int test_mount_ro_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MOUNT_RO_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MOUNT_RO"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_mount_ro_1 (void) +{ + if (test_mount_ro_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mount_ro_1"); + return 0; + } + + /* InitBasicFS for test_mount_ro_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for mount_ro (1) */ + char expected[] = "data"; + { + char path[] = "/new"; + char content[] = "data"; + int r; + suppress_error = 0; + r = guestfs_write_file (g, path, content, 0); + if (r == -1) + return -1; + } + { + char pathordevice[] = "/"; + int r; + suppress_error = 0; + r = guestfs_umount (g, pathordevice); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount_ro (g, device, mountpoint); + if (r == -1) + return -1; + } + { + char path[] = "/new"; + char *r; + suppress_error = 0; + r = guestfs_cat (g, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_mount_ro_1: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_tgz_in_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_TGZ_IN_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_TGZ_IN"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_tgz_in_0 (void) +{ + if (test_tgz_in_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_tgz_in_0"); + return 0; + } + + /* InitBasicFS for test_tgz_in_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for tgz_in (0) */ + char expected[] = "hello\n"; + { + char directory[] = "/"; + int r; + suppress_error = 0; + r = guestfs_tgz_in (g, "images/helloworld.tar.gz", directory); + if (r == -1) + return -1; + } + { + char path[] = "/hello"; + char *r; + suppress_error = 0; + r = guestfs_cat (g, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_tgz_in_0: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_tar_in_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_TAR_IN_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_TAR_IN"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_tar_in_0 (void) +{ + if (test_tar_in_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_tar_in_0"); + return 0; + } + + /* InitBasicFS for test_tar_in_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for tar_in (0) */ + char expected[] = "hello\n"; + { + char directory[] = "/"; + int r; + suppress_error = 0; + r = guestfs_tar_in (g, "images/helloworld.tar", directory); + if (r == -1) + return -1; + } + { + char path[] = "/hello"; + char *r; + suppress_error = 0; + r = guestfs_cat (g, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_tar_in_0: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_checksum_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CHECKSUM_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CHECKSUM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_checksum_0 (void) +{ + if (test_checksum_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_0"); + return 0; + } + + /* InitBasicFS for test_checksum_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for checksum (0) */ + char expected[] = "935282863"; + { + char path[] = "/new"; + char content[] = "test\n"; + int r; + suppress_error = 0; + r = guestfs_write_file (g, path, content, 0); + if (r == -1) + return -1; + } + { + char csumtype[] = "crc"; + char path[] = "/new"; + char *r; + suppress_error = 0; + r = guestfs_checksum (g, csumtype, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_checksum_0: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_checksum_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CHECKSUM_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CHECKSUM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_checksum_1 (void) +{ + if (test_checksum_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_1"); + return 0; + } + + /* InitBasicFS for test_checksum_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestLastFail for checksum (1) */ + { + char csumtype[] = "crc"; + char path[] = "/new"; + char *r; + suppress_error = 1; + r = guestfs_checksum (g, csumtype, path); + if (r != NULL) + return -1; + free (r); + } + return 0; +} + +static int test_checksum_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CHECKSUM_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CHECKSUM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_checksum_2 (void) +{ + if (test_checksum_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_2"); + return 0; + } + + /* InitBasicFS for test_checksum_2: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for checksum (2) */ + char expected[] = "d8e8fca2dc0f896fd7cb4cb0031ba249"; + { + char path[] = "/new"; + char content[] = "test\n"; + int r; + suppress_error = 0; + r = guestfs_write_file (g, path, content, 0); + if (r == -1) + return -1; + } + { + char csumtype[] = "md5"; + char path[] = "/new"; + char *r; + suppress_error = 0; + r = guestfs_checksum (g, csumtype, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_checksum_2: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_checksum_3_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CHECKSUM_3"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CHECKSUM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_checksum_3 (void) +{ + if (test_checksum_3_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_3"); + return 0; + } + + /* InitBasicFS for test_checksum_3: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for checksum (3) */ + char expected[] = "4e1243bd22c66e76c2ba9eddc1f91394e57f9f83"; + { + char path[] = "/new"; + char content[] = "test\n"; + int r; + suppress_error = 0; + r = guestfs_write_file (g, path, content, 0); + if (r == -1) + return -1; + } + { + char csumtype[] = "sha1"; + char path[] = "/new"; + char *r; + suppress_error = 0; + r = guestfs_checksum (g, csumtype, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_checksum_3: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_checksum_4_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CHECKSUM_4"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CHECKSUM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_checksum_4 (void) +{ + if (test_checksum_4_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_4"); + return 0; + } + + /* InitBasicFS for test_checksum_4: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for checksum (4) */ + char expected[] = "52f1bf093f4b7588726035c176c0cdb4376cfea53819f1395ac9e6ec"; + { + char path[] = "/new"; + char content[] = "test\n"; + int r; + suppress_error = 0; + r = guestfs_write_file (g, path, content, 0); + if (r == -1) + return -1; + } + { + char csumtype[] = "sha224"; + char path[] = "/new"; + char *r; + suppress_error = 0; + r = guestfs_checksum (g, csumtype, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_checksum_4: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_checksum_5_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CHECKSUM_5"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CHECKSUM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_checksum_5 (void) +{ + if (test_checksum_5_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_5"); + return 0; + } + + /* InitBasicFS for test_checksum_5: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for checksum (5) */ + char expected[] = "f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2"; + { + char path[] = "/new"; + char content[] = "test\n"; + int r; + suppress_error = 0; + r = guestfs_write_file (g, path, content, 0); + if (r == -1) + return -1; + } + { + char csumtype[] = "sha256"; + char path[] = "/new"; + char *r; + suppress_error = 0; + r = guestfs_checksum (g, csumtype, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_checksum_5: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_checksum_6_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CHECKSUM_6"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CHECKSUM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_checksum_6 (void) +{ + if (test_checksum_6_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_6"); + return 0; + } + + /* InitBasicFS for test_checksum_6: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for checksum (6) */ + char expected[] = "109bb6b5b6d5547c1ce03c7a8bd7d8f80c1cb0957f50c4f7fda04692079917e4f9cad52b878f3d8234e1a170b154b72d"; + { + char path[] = "/new"; + char content[] = "test\n"; + int r; + suppress_error = 0; + r = guestfs_write_file (g, path, content, 0); + if (r == -1) + return -1; + } + { + char csumtype[] = "sha384"; + char path[] = "/new"; + char *r; + suppress_error = 0; + r = guestfs_checksum (g, csumtype, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_checksum_6: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_checksum_7_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CHECKSUM_7"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CHECKSUM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_checksum_7 (void) +{ + if (test_checksum_7_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_7"); + return 0; + } + + /* InitBasicFS for test_checksum_7: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for checksum (7) */ + char expected[] = "0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123"; + { + char path[] = "/new"; + char content[] = "test\n"; + int r; + suppress_error = 0; + r = guestfs_write_file (g, path, content, 0); + if (r == -1) + return -1; + } + { + char csumtype[] = "sha512"; + char path[] = "/new"; + char *r; + suppress_error = 0; + r = guestfs_checksum (g, csumtype, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_checksum_7: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_download_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_DOWNLOAD_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_DOWNLOAD"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_download_0 (void) +{ + if (test_download_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_download_0"); + return 0; + } + + /* InitBasicFS for test_download_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for download (0) */ + char expected[] = "e3eda01d9815f8d24aae2dbd89b68b06"; + { + char remotefilename[] = "/COPYING.LIB"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "COPYING.LIB", remotefilename); + if (r == -1) + return -1; + } + { + char remotefilename[] = "/COPYING.LIB"; + int r; + suppress_error = 0; + r = guestfs_download (g, remotefilename, "testdownload.tmp"); + if (r == -1) + return -1; + } + { + char remotefilename[] = "/upload"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "testdownload.tmp", remotefilename); + if (r == -1) + return -1; + } + { + char csumtype[] = "md5"; + char path[] = "/upload"; + char *r; + suppress_error = 0; + r = guestfs_checksum (g, csumtype, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_download_0: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_upload_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_UPLOAD_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_UPLOAD"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_upload_0 (void) +{ + if (test_upload_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_upload_0"); + return 0; + } + + /* InitBasicFS for test_upload_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for upload (0) */ + char expected[] = "e3eda01d9815f8d24aae2dbd89b68b06"; + { + char remotefilename[] = "/COPYING.LIB"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "COPYING.LIB", remotefilename); + if (r == -1) + return -1; + } + { + char csumtype[] = "md5"; + char path[] = "/COPYING.LIB"; + char *r; + suppress_error = 0; + r = guestfs_checksum (g, csumtype, path); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_upload_0: expected \"%s\" but got \"%s\"\n", expected, r); + return -1; + } + free (r); + } + return 0; +} + +static int test_blockdev_rereadpt_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_BLOCKDEV_REREADPT_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_BLOCKDEV_REREADPT"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_blockdev_rereadpt_0 (void) +{ + if (test_blockdev_rereadpt_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_rereadpt_0"); + return 0; + } + + /* InitNone|InitEmpty for test_blockdev_rereadpt_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + /* TestRun for blockdev_rereadpt (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_rereadpt (g, device); + if (r == -1) + return -1; + } + return 0; +} + +static int test_blockdev_flushbufs_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_BLOCKDEV_FLUSHBUFS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_BLOCKDEV_FLUSHBUFS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_blockdev_flushbufs_0 (void) +{ + if (test_blockdev_flushbufs_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_flushbufs_0"); + return 0; + } + + /* InitNone|InitEmpty for test_blockdev_flushbufs_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + /* TestRun for blockdev_flushbufs (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_flushbufs (g, device); + if (r == -1) + return -1; + } + return 0; +} + +static int test_blockdev_getsize64_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_BLOCKDEV_GETSIZE64_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_BLOCKDEV_GETSIZE64"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_blockdev_getsize64_0 (void) +{ + if (test_blockdev_getsize64_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_getsize64_0"); + return 0; + } + + /* InitNone|InitEmpty for test_blockdev_getsize64_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + /* TestOutputInt for blockdev_getsize64 (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int64_t r; + suppress_error = 0; + r = guestfs_blockdev_getsize64 (g, device); + if (r == -1) + return -1; + if (r != 524288000) { + fprintf (stderr, "test_blockdev_getsize64_0: expected 524288000 but got %d\n", (int) r); + return -1; + } + } + return 0; +} + +static int test_blockdev_getsz_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_BLOCKDEV_GETSZ_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_BLOCKDEV_GETSZ"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_blockdev_getsz_0 (void) +{ + if (test_blockdev_getsz_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_getsz_0"); + return 0; + } + + /* InitNone|InitEmpty for test_blockdev_getsz_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + /* TestOutputInt for blockdev_getsz (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int64_t r; + suppress_error = 0; + r = guestfs_blockdev_getsz (g, device); + if (r == -1) + return -1; + if (r != 1024000) { + fprintf (stderr, "test_blockdev_getsz_0: expected 1024000 but got %d\n", (int) r); + return -1; + } + } + return 0; +} + +static int test_blockdev_getbsz_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_BLOCKDEV_GETBSZ_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_BLOCKDEV_GETBSZ"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_blockdev_getbsz_0 (void) +{ + if (test_blockdev_getbsz_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_getbsz_0"); + return 0; + } + + /* InitNone|InitEmpty for test_blockdev_getbsz_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + /* TestOutputInt for blockdev_getbsz (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_getbsz (g, device); + if (r == -1) + return -1; + if (r != 4096) { + fprintf (stderr, "test_blockdev_getbsz_0: expected 4096 but got %d\n", (int) r); + return -1; + } + } + return 0; +} + +static int test_blockdev_getss_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_BLOCKDEV_GETSS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_BLOCKDEV_GETSS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_blockdev_getss_0 (void) +{ + if (test_blockdev_getss_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_getss_0"); + return 0; + } + + /* InitNone|InitEmpty for test_blockdev_getss_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + /* TestOutputInt for blockdev_getss (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_getss (g, device); + if (r == -1) + return -1; + if (r != 512) { + fprintf (stderr, "test_blockdev_getss_0: expected 512 but got %d\n", (int) r); + return -1; + } + } + return 0; +} + +static int test_blockdev_getro_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_BLOCKDEV_GETRO_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_BLOCKDEV_GETRO"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_blockdev_getro_0 (void) +{ + if (test_blockdev_getro_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_getro_0"); + return 0; + } + + /* InitNone|InitEmpty for test_blockdev_getro_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + /* TestOutputTrue for blockdev_getro (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setro (g, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_getro (g, device); + if (r == -1) + return -1; + if (!r) { + fprintf (stderr, "test_blockdev_getro_0: expected true, got false\n"); + return -1; + } + } + return 0; +} + +static int test_blockdev_setrw_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_BLOCKDEV_SETRW_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_BLOCKDEV_SETRW"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_blockdev_setrw_0 (void) +{ + if (test_blockdev_setrw_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_setrw_0"); + return 0; + } + + /* InitNone|InitEmpty for test_blockdev_setrw_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + /* TestOutputFalse for blockdev_setrw (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_getro (g, device); + if (r == -1) + return -1; + if (r) { + fprintf (stderr, "test_blockdev_setrw_0: expected false, got true\n"); + return -1; + } + } + return 0; +} + +static int test_blockdev_setro_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_BLOCKDEV_SETRO_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_BLOCKDEV_SETRO"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_blockdev_setro_0 (void) +{ + if (test_blockdev_setro_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_setro_0"); + return 0; + } + + /* InitNone|InitEmpty for test_blockdev_setro_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + /* TestOutputTrue for blockdev_setro (0) */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setro (g, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_getro (g, device); + if (r == -1) + return -1; + if (!r) { + fprintf (stderr, "test_blockdev_setro_0: expected true, got false\n"); + return -1; + } + } + return 0; +} + +static int test_statvfs_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_STATVFS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_STATVFS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_statvfs_0 (void) +{ + if (test_statvfs_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_statvfs_0"); + return 0; + } + + /* InitBasicFS for test_statvfs_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputStruct for statvfs (0) */ + { + char path[] = "/"; + struct guestfs_statvfs *r; + suppress_error = 0; + r = guestfs_statvfs (g, path); + if (r == NULL) + return -1; + if (r->bfree != 487702) { + fprintf (stderr, "test_statvfs_0: bfree was %d, expected 487702\n", + (int) r->bfree); + return -1; + } + if (r->blocks != 490020) { + fprintf (stderr, "test_statvfs_0: blocks was %d, expected 490020\n", + (int) r->blocks); + return -1; + } + if (r->bsize != 1024) { + fprintf (stderr, "test_statvfs_0: bsize was %d, expected 1024\n", + (int) r->bsize); + return -1; + } + free (r); + } + return 0; +} + +static int test_lstat_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LSTAT_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LSTAT"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_lstat_0 (void) +{ + if (test_lstat_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lstat_0"); + return 0; + } + + /* InitBasicFS for test_lstat_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputStruct for lstat (0) */ + { + char path[] = "/new"; + int r; + suppress_error = 0; + r = guestfs_touch (g, path); + if (r == -1) + return -1; + } + { + char path[] = "/new"; + struct guestfs_stat *r; + suppress_error = 0; + r = guestfs_lstat (g, path); + if (r == NULL) + return -1; + if (r->size != 0) { + fprintf (stderr, "test_lstat_0: size was %d, expected 0\n", + (int) r->size); + return -1; + } + free (r); + } + return 0; +} + +static int test_stat_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_STAT_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_STAT"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_stat_0 (void) +{ + if (test_stat_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_stat_0"); + return 0; + } + + /* InitBasicFS for test_stat_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputStruct for stat (0) */ + { + char path[] = "/new"; + int r; + suppress_error = 0; + r = guestfs_touch (g, path); + if (r == -1) + return -1; + } + { + char path[] = "/new"; + struct guestfs_stat *r; + suppress_error = 0; + r = guestfs_stat (g, path); + if (r == NULL) + return -1; + if (r->size != 0) { + fprintf (stderr, "test_stat_0: size was %d, expected 0\n", + (int) r->size); + return -1; + } + free (r); + } + return 0; +} + +static int test_command_lines_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_0 (void) +{ + if (test_command_lines_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_0"); + return 0; + } + + /* InitBasicFS for test_command_lines_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputList for command_lines (0) */ + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) + return -1; + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "1"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; + suppress_error = 0; + r = guestfs_command_lines (g, arguments); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_command_lines_0: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "Result1"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_command_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (r[1] != NULL) { + fprintf (stderr, "test_command_lines_0: 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_command_lines_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_1 (void) +{ + if (test_command_lines_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_1"); + return 0; + } + + /* InitBasicFS for test_command_lines_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputList for command_lines (1) */ + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) + return -1; + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "2"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; + suppress_error = 0; + r = guestfs_command_lines (g, arguments); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_command_lines_1: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "Result2"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_command_lines_1: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (r[1] != NULL) { + fprintf (stderr, "test_command_lines_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_command_lines_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_2 (void) +{ + if (test_command_lines_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_2"); + return 0; + } + + /* InitBasicFS for test_command_lines_2: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputList for command_lines (2) */ + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) + return -1; + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "3"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; + suppress_error = 0; + r = guestfs_command_lines (g, arguments); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_command_lines_2: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = ""; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_command_lines_2: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (!r[1]) { + fprintf (stderr, "test_command_lines_2: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "Result3"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_command_lines_2: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } + } + if (r[2] != NULL) { + fprintf (stderr, "test_command_lines_2: 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_command_lines_3_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_3"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_3 (void) +{ + if (test_command_lines_3_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_3"); + return 0; + } + + /* InitBasicFS for test_command_lines_3: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputList for command_lines (3) */ + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) + return -1; + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "4"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; + suppress_error = 0; + r = guestfs_command_lines (g, arguments); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_command_lines_3: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = ""; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_command_lines_3: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (!r[1]) { + fprintf (stderr, "test_command_lines_3: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "Result4"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_command_lines_3: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } + } + if (r[2] != NULL) { + fprintf (stderr, "test_command_lines_3: 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_command_lines_4_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_4"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_4 (void) +{ + if (test_command_lines_4_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_4"); + return 0; + } + + /* InitBasicFS for test_command_lines_4: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputList for command_lines (4) */ + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) + return -1; + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "5"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; + suppress_error = 0; + r = guestfs_command_lines (g, arguments); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_command_lines_4: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = ""; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_command_lines_4: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (!r[1]) { + fprintf (stderr, "test_command_lines_4: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "Result5"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_command_lines_4: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } + } + if (!r[2]) { + fprintf (stderr, "test_command_lines_4: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = ""; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_command_lines_4: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } + } + if (r[3] != NULL) { + fprintf (stderr, "test_command_lines_4: 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_command_lines_5_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_5"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_5 (void) +{ + if (test_command_lines_5_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_5"); + return 0; + } + + /* InitBasicFS for test_command_lines_5: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputList for command_lines (5) */ + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) + return -1; + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "6"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; + suppress_error = 0; + r = guestfs_command_lines (g, arguments); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_command_lines_5: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = ""; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (!r[1]) { + fprintf (stderr, "test_command_lines_5: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = ""; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } + } + if (!r[2]) { + fprintf (stderr, "test_command_lines_5: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "Result6"; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } + } + if (!r[3]) { + fprintf (stderr, "test_command_lines_5: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = ""; + if (strcmp (r[3], expected) != 0) { + fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[3]); + return -1; + } + } + if (r[4] != NULL) { + fprintf (stderr, "test_command_lines_5: 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_command_lines_6_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_6"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_6 (void) +{ + if (test_command_lines_6_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_6"); + return 0; + } + + /* InitBasicFS for test_command_lines_6: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputList for command_lines (6) */ + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) + return -1; + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "7"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; + suppress_error = 0; + r = guestfs_command_lines (g, arguments); + if (r == NULL) + return -1; + if (r[0] != NULL) { + fprintf (stderr, "test_command_lines_6: 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_command_lines_7_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_7"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_7 (void) +{ + if (test_command_lines_7_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_7"); + return 0; + } + + /* InitBasicFS for test_command_lines_7: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputList for command_lines (7) */ + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) + return -1; + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "8"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; + suppress_error = 0; + r = guestfs_command_lines (g, arguments); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_command_lines_7: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = ""; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_command_lines_7: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (r[1] != NULL) { + fprintf (stderr, "test_command_lines_7: 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_command_lines_8_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_8"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_8 (void) +{ + if (test_command_lines_8_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_8"); + return 0; + } + + /* InitBasicFS for test_command_lines_8: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputList for command_lines (8) */ + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) + return -1; + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "9"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; + suppress_error = 0; + r = guestfs_command_lines (g, arguments); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_command_lines_8: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = ""; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_command_lines_8: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (!r[1]) { + fprintf (stderr, "test_command_lines_8: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = ""; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_command_lines_8: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } + } + if (r[2] != NULL) { + fprintf (stderr, "test_command_lines_8: 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_command_lines_9_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_9"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_9 (void) +{ + if (test_command_lines_9_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_9"); + return 0; + } + + /* InitBasicFS for test_command_lines_9: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -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; + } + { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; + int r; + suppress_error = 0; + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); + if (r == -1) + return -1; + } + { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_mkfs (g, fstype, device); + if (r == -1) + return -1; + } + { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; + int r; + suppress_error = 0; + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutputList for command_lines (9) */ + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) + return -1; + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "10"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; + suppress_error = 0; + r = guestfs_command_lines (g, arguments); + if (r == NULL) + return -1; + if (!r[0]) { + fprintf (stderr, "test_command_lines_9: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "Result10-1"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_command_lines_9: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (!r[1]) { + fprintf (stderr, "test_command_lines_9: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "Result10-2"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_command_lines_9: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } + } + if (r[2] != NULL) { + fprintf (stderr, "test_command_lines_9: 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_checksum_3 (void) -{ - /* InitBasicFS for checksum (3): create ext2 on /dev/sda1 */ + return 0; +} + +static int test_command_lines_10_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_LINES_10"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_lines_10 (void) +{ + if (test_command_lines_10_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_10"); + return 0; + } + + /* InitBasicFS for test_command_lines_10: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2317,56 +8231,134 @@ static int test_checksum_3 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutput for checksum (3) */ + /* TestOutputList for command_lines (10) */ { + char remotefilename[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "test\n", 0); + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } { - char *r; + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "11"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char **r; + int i; suppress_error = 0; - r = guestfs_checksum (g, "sha1", "/new"); + r = guestfs_command_lines (g, arguments); if (r == NULL) return -1; - if (strcmp (r, "4e1243bd22c66e76c2ba9eddc1f91394e57f9f83") != 0) { - fprintf (stderr, "test_checksum_3: expected \"4e1243bd22c66e76c2ba9eddc1f91394e57f9f83\" but got \"%s\"\n", r); + if (!r[0]) { + fprintf (stderr, "test_command_lines_10: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "Result11-1"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_command_lines_10: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } + } + if (!r[1]) { + fprintf (stderr, "test_command_lines_10: short list returned from command\n"); + print_strings (r); + return -1; + } + { + char expected[] = "Result11-2"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_command_lines_10: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } + } + if (r[2] != NULL) { + fprintf (stderr, "test_command_lines_10: 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_checksum_4 (void) +static int test_command_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_0 (void) { - /* InitBasicFS for checksum (4): create ext2 on /dev/sda1 */ + if (test_command_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_0"); + return 0; + } + + /* InitBasicFS for test_command_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2382,46 +8374,72 @@ static int test_checksum_4 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for command (0) */ + char expected[] = "Result1"; + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } - /* TestOutput for checksum (4) */ { + char path[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "test\n", 0); + r = guestfs_chmod (g, 493, path); if (r == -1) return -1; } { + char arguments_0[] = "/test-command"; + char arguments_1[] = "1"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; char *r; suppress_error = 0; - r = guestfs_checksum (g, "sha224", "/new"); + r = guestfs_command (g, arguments); if (r == NULL) return -1; - if (strcmp (r, "52f1bf093f4b7588726035c176c0cdb4376cfea53819f1395ac9e6ec") != 0) { - fprintf (stderr, "test_checksum_4: expected \"52f1bf093f4b7588726035c176c0cdb4376cfea53819f1395ac9e6ec\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -2429,9 +8447,34 @@ static int test_checksum_4 (void) return 0; } -static int test_checksum_5 (void) +static int test_command_1_skip (void) { - /* InitBasicFS for checksum (5): create ext2 on /dev/sda1 */ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_1 (void) +{ + if (test_command_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_1"); + return 0; + } + + /* InitBasicFS for test_command_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2447,46 +8490,72 @@ static int test_checksum_5 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for command (1) */ + char expected[] = "Result2\n"; + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } - /* TestOutput for checksum (5) */ { + char path[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "test\n", 0); + r = guestfs_chmod (g, 493, path); if (r == -1) return -1; } { + char arguments_0[] = "/test-command"; + char arguments_1[] = "2"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; char *r; suppress_error = 0; - r = guestfs_checksum (g, "sha256", "/new"); + r = guestfs_command (g, arguments); if (r == NULL) return -1; - if (strcmp (r, "f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2") != 0) { - fprintf (stderr, "test_checksum_5: expected \"f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_1: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -2494,9 +8563,34 @@ static int test_checksum_5 (void) return 0; } -static int test_checksum_6 (void) +static int test_command_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_2 (void) { - /* InitBasicFS for checksum (6): create ext2 on /dev/sda1 */ + if (test_command_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_2"); + return 0; + } + + /* InitBasicFS for test_command_2: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2512,46 +8606,72 @@ static int test_checksum_6 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for command (2) */ + char expected[] = "\nResult3"; + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } - /* TestOutput for checksum (6) */ { + char path[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "test\n", 0); + r = guestfs_chmod (g, 493, path); if (r == -1) return -1; } { + char arguments_0[] = "/test-command"; + char arguments_1[] = "3"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; char *r; suppress_error = 0; - r = guestfs_checksum (g, "sha384", "/new"); + r = guestfs_command (g, arguments); if (r == NULL) return -1; - if (strcmp (r, "109bb6b5b6d5547c1ce03c7a8bd7d8f80c1cb0957f50c4f7fda04692079917e4f9cad52b878f3d8234e1a170b154b72d") != 0) { - fprintf (stderr, "test_checksum_6: expected \"109bb6b5b6d5547c1ce03c7a8bd7d8f80c1cb0957f50c4f7fda04692079917e4f9cad52b878f3d8234e1a170b154b72d\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_2: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -2559,9 +8679,34 @@ static int test_checksum_6 (void) return 0; } -static int test_checksum_7 (void) +static int test_command_3_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_3"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_3 (void) { - /* InitBasicFS for checksum (7): create ext2 on /dev/sda1 */ + if (test_command_3_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_3"); + return 0; + } + + /* InitBasicFS for test_command_3: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2577,46 +8722,72 @@ static int test_checksum_7 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); + if (r == -1) + return -1; + } + /* TestOutput for command (3) */ + char expected[] = "\nResult4\n"; + { + char remotefilename[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } - /* TestOutput for checksum (7) */ { + char path[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "test\n", 0); + r = guestfs_chmod (g, 493, path); if (r == -1) return -1; } { + char arguments_0[] = "/test-command"; + char arguments_1[] = "4"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; char *r; suppress_error = 0; - r = guestfs_checksum (g, "sha512", "/new"); + r = guestfs_command (g, arguments); if (r == NULL) return -1; - if (strcmp (r, "0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123") != 0) { - fprintf (stderr, "test_checksum_7: expected \"0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_3: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -2624,78 +8795,115 @@ static int test_checksum_7 (void) return 0; } -static int test_download_0 (void) +static int test_command_4_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_4"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_4 (void) { - /* InitBasicFS for download (0): create ext2 on /dev/sda1 */ + if (test_command_4_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_4"); + return 0; + } + + /* InitBasicFS for test_command_4: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_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); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } - /* TestOutput for download (0) */ { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_upload (g, "COPYING.LIB", "/COPYING.LIB"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } + /* TestOutput for command (4) */ + char expected[] = "\nResult5\n\n"; { + char remotefilename[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_download (g, "/COPYING.LIB", "testdownload.tmp"); + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } { + char path[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_upload (g, "testdownload.tmp", "/upload"); + r = guestfs_chmod (g, 493, path); if (r == -1) return -1; } { + char arguments_0[] = "/test-command"; + char arguments_1[] = "5"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; char *r; suppress_error = 0; - r = guestfs_checksum (g, "md5", "/upload"); + r = guestfs_command (g, arguments); if (r == NULL) return -1; - if (strcmp (r, "e3eda01d9815f8d24aae2dbd89b68b06") != 0) { - fprintf (stderr, "test_download_0: expected \"e3eda01d9815f8d24aae2dbd89b68b06\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_4: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -2703,9 +8911,34 @@ static int test_download_0 (void) return 0; } -static int test_upload_0 (void) +static int test_command_5_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_5"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_5 (void) { - /* InitBasicFS for upload (0): create ext2 on /dev/sda1 */ + if (test_command_5_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_5"); + return 0; + } + + /* InitBasicFS for test_command_5: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -2721,46 +8954,72 @@ static int test_upload_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutput for upload (0) */ + /* TestOutput for command (5) */ + char expected[] = "\n\nResult6\n\n"; { + char remotefilename[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_upload (g, "COPYING.LIB", "/COPYING.LIB"); + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "6"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; char *r; suppress_error = 0; - r = guestfs_checksum (g, "md5", "/COPYING.LIB"); + r = guestfs_command (g, arguments); if (r == NULL) return -1; - if (strcmp (r, "e3eda01d9815f8d24aae2dbd89b68b06") != 0) { - fprintf (stderr, "test_upload_0: expected \"e3eda01d9815f8d24aae2dbd89b68b06\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_5: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -2768,161 +9027,150 @@ static int test_upload_0 (void) return 0; } -static int test_blockdev_rereadpt_0 (void) +static int test_command_6_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_6"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_6 (void) { - /* InitEmpty for blockdev_rereadpt (0) */ + if (test_command_6_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_6"); + return 0; + } + + /* InitBasicFS for test_command_6: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestRun for blockdev_rereadpt (0) */ { int r; suppress_error = 0; - r = guestfs_blockdev_rereadpt (g, "/dev/sda"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } - return 0; -} - -static int test_blockdev_flushbufs_0 (void) -{ - /* InitEmpty for blockdev_flushbufs (0) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } - /* TestRun for blockdev_flushbufs (0) */ { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_blockdev_flushbufs (g, "/dev/sda"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - return 0; -} - -static int test_blockdev_getsize64_0 (void) -{ - /* InitEmpty for blockdev_getsize64 (0) */ + /* TestOutput for command (6) */ + char expected[] = ""; { + char remotefilename[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } { + char path[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_chmod (g, 493, path); if (r == -1) return -1; } - /* TestOutputInt for blockdev_getsize64 (0) */ { - int64_t r; + char arguments_0[] = "/test-command"; + char arguments_1[] = "7"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char *r; suppress_error = 0; - r = guestfs_blockdev_getsize64 (g, "/dev/sda"); - if (r == -1) + r = guestfs_command (g, arguments); + if (r == NULL) return -1; - if (r != 524288000) { - fprintf (stderr, "test_blockdev_getsize64_0: expected 524288000 but got %d\n", (int) r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_6: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } + free (r); } return 0; } -static int test_blockdev_getsz_0 (void) +static int test_command_7_skip (void) { - /* InitEmpty for blockdev_getsz (0) */ - { - 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; - } - /* TestOutputInt for blockdev_getsz (0) */ - { - int64_t r; - suppress_error = 0; - r = guestfs_blockdev_getsz (g, "/dev/sda"); - if (r == -1) - return -1; - if (r != 1024000) { - fprintf (stderr, "test_blockdev_getsz_0: expected 1024000 but got %d\n", (int) r); - return -1; - } - } + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_7"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; return 0; } -static int test_blockdev_getbsz_0 (void) +static int test_command_7 (void) { - /* InitEmpty for blockdev_getbsz (0) */ - { - 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; + if (test_command_7_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_7"); + return 0; } - /* TestOutputInt for blockdev_getbsz (0) */ + + /* InitBasicFS for test_command_7: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_blockdev_getbsz (g, "/dev/sda"); - if (r == -1) - return -1; - if (r != 4096) { - fprintf (stderr, "test_blockdev_getbsz_0: expected 4096 but got %d\n", (int) r); + r = guestfs_blockdev_setrw (g, device); + if (r == -1) return -1; - } } - return 0; -} - -static int test_blockdev_getss_0 (void) -{ - /* InitEmpty for blockdev_getss (0) */ { int r; suppress_error = 0; @@ -2937,141 +9185,224 @@ static int test_blockdev_getss_0 (void) if (r == -1) return -1; } - /* TestOutputInt for blockdev_getss (0) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_blockdev_getss (g, "/dev/sda"); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; - if (r != 512) { - fprintf (stderr, "test_blockdev_getss_0: expected 512 but got %d\n", (int) r); - return -1; - } } - return 0; -} - -static int test_blockdev_getro_0 (void) -{ - /* InitEmpty for blockdev_getro (0) */ { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutputTrue for blockdev_getro (0) */ + /* TestOutput for command (7) */ + char expected[] = "\n"; { + char remotefilename[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_blockdev_setro (g, "/dev/sda"); + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } { + char path[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_blockdev_getro (g, "/dev/sda"); + r = guestfs_chmod (g, 493, path); if (r == -1) return -1; - if (!r) { - fprintf (stderr, "test_blockdev_getro_0: expected true, got false\n"); + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "8"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char *r; + suppress_error = 0; + r = guestfs_command (g, arguments); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_7: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } + free (r); } return 0; } -static int test_blockdev_setrw_0 (void) +static int test_command_8_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_8"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_8 (void) { - /* InitEmpty for blockdev_setrw (0) */ + if (test_command_8_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_8"); + return 0; + } + + /* InitBasicFS for test_command_8: create ext2 on /dev/sda1 */ { + char device[] = "/dev/sda"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_blockdev_setrw (g, device); if (r == -1) return -1; } { int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_umount_all (g); if (r == -1) return -1; } - /* TestOutputFalse for blockdev_setrw (0) */ { int r; suppress_error = 0; - r = guestfs_blockdev_setrw (g, "/dev/sda"); + r = guestfs_lvm_remove_all (g); if (r == -1) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; + char *lines[] = { + lines_0, + NULL + }; int r; suppress_error = 0; - r = guestfs_blockdev_getro (g, "/dev/sda"); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; - if (r) { - fprintf (stderr, "test_blockdev_setrw_0: expected false, got true\n"); - return -1; - } } - return 0; -} - -static int test_blockdev_setro_0 (void) -{ - /* InitEmpty for blockdev_setro (0) */ { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_umount_all (g); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_lvm_remove_all (g); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutputTrue for blockdev_setro (0) */ + /* TestOutput for command (8) */ + char expected[] = "\n\n"; { + char remotefilename[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_blockdev_setro (g, "/dev/sda"); + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } { + char path[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_blockdev_getro (g, "/dev/sda"); + r = guestfs_chmod (g, 493, path); if (r == -1) return -1; - if (!r) { - fprintf (stderr, "test_blockdev_setro_0: expected true, got false\n"); + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "9"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char *r; + suppress_error = 0; + r = guestfs_command (g, arguments); + if (r == NULL) + return -1; + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_8: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } + free (r); } return 0; } -static int test_statvfs_0 (void) +static int test_command_9_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_9"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_9 (void) { - /* InitBasicFS for statvfs (0): create ext2 on /dev/sda1 */ + if (test_command_9_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_9"); + return 0; + } + + /* InitBasicFS for test_command_9: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3087,50 +9418,72 @@ static int test_statvfs_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutputStruct for statvfs (0) */ + /* TestOutput for command (9) */ + char expected[] = "Result10-1\nResult10-2\n"; { - struct guestfs_statvfs *r; + char remotefilename[] = "/test-command"; + int r; suppress_error = 0; - r = guestfs_statvfs (g, "/"); - if (r == NULL) + r = guestfs_upload (g, "test-command", remotefilename); + if (r == -1) return -1; - if (r->bfree != 487702) { - fprintf (stderr, "test_statvfs_0: bfree was %d, expected 487702\n", - (int) r->bfree); + } + { + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) return -1; - } - if (r->blocks != 490020) { - fprintf (stderr, "test_statvfs_0: blocks was %d, expected 490020\n", - (int) r->blocks); + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "10"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char *r; + suppress_error = 0; + r = guestfs_command (g, arguments); + if (r == NULL) return -1; - } - if (r->bsize != 1024) { - fprintf (stderr, "test_statvfs_0: bsize was %d, expected 1024\n", - (int) r->bsize); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_9: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -3138,9 +9491,34 @@ static int test_statvfs_0 (void) return 0; } -static int test_lstat_0 (void) +static int test_command_10_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_10"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_10 (void) { - /* InitBasicFS for lstat (0): create ext2 on /dev/sda1 */ + if (test_command_10_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_10"); + return 0; + } + + /* InitBasicFS for test_command_10: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3156,47 +9534,72 @@ static int test_lstat_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutputStruct for lstat (0) */ + /* TestOutput for command (10) */ + char expected[] = "Result11-1\nResult11-2"; { + char remotefilename[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new"); + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } { - struct guestfs_stat *r; + char path[] = "/test-command"; + int r; + suppress_error = 0; + r = guestfs_chmod (g, 493, path); + if (r == -1) + return -1; + } + { + char arguments_0[] = "/test-command"; + char arguments_1[] = "11"; + char *arguments[] = { + arguments_0, + arguments_1, + NULL + }; + char *r; suppress_error = 0; - r = guestfs_lstat (g, "/new"); + r = guestfs_command (g, arguments); if (r == NULL) return -1; - if (r->size != 0) { - fprintf (stderr, "test_lstat_0: size was %d, expected 0\n", - (int) r->size); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_command_10: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -3204,9 +9607,34 @@ static int test_lstat_0 (void) return 0; } -static int test_stat_0 (void) +static int test_command_11_skip (void) { - /* InitBasicFS for stat (0): create ext2 on /dev/sda1 */ + const char *str; + + str = getenv ("SKIP_TEST_COMMAND_11"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_COMMAND"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_command_11 (void) +{ + if (test_command_11_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_11"); + return 0; + } + + /* InitBasicFS for test_command_11: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3222,57 +9650,100 @@ static int test_stat_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } - /* TestOutputStruct for stat (0) */ + /* TestLastFail for command (11) */ { + char remotefilename[] = "/test-command"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new"); + r = guestfs_upload (g, "test-command", remotefilename); if (r == -1) return -1; } { - struct guestfs_stat *r; + char path[] = "/test-command"; + int r; suppress_error = 0; - r = guestfs_stat (g, "/new"); - if (r == NULL) + r = guestfs_chmod (g, 493, path); + if (r == -1) return -1; - if (r->size != 0) { - fprintf (stderr, "test_stat_0: size was %d, expected 0\n", - (int) r->size); + } + { + char arguments_0[] = "/test-command"; + char *arguments[] = { + arguments_0, + NULL + }; + char *r; + suppress_error = 1; + r = guestfs_command (g, arguments); + if (r != NULL) return -1; - } free (r); } return 0; } +static int test_file_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_FILE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_file_0 (void) { - /* InitBasicFS for file (0): create ext2 on /dev/sda1 */ + if (test_file_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_file_0"); + return 0; + } + + /* InitBasicFS for test_file_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3288,46 +9759,58 @@ static int test_file_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutput for file (0) */ + char expected[] = "empty"; { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_file (g, "/new"); + r = guestfs_file (g, path); if (r == NULL) return -1; - if (strcmp (r, "empty") != 0) { - fprintf (stderr, "test_file_0: expected \"empty\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_file_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -3335,9 +9818,34 @@ static int test_file_0 (void) return 0; } +static int test_file_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_FILE_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_file_1 (void) { - /* InitBasicFS for file (1): create ext2 on /dev/sda1 */ + if (test_file_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_file_1"); + return 0; + } + + /* InitBasicFS for test_file_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3353,46 +9861,59 @@ static int test_file_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutput for file (1) */ + char expected[] = "ASCII text"; { + char path[] = "/new"; + char content[] = "some content\n"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "some content\n", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_file (g, "/new"); + r = guestfs_file (g, path); if (r == NULL) return -1; - if (strcmp (r, "ASCII text") != 0) { - fprintf (stderr, "test_file_1: expected \"ASCII text\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_file_1: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -3400,9 +9921,34 @@ static int test_file_1 (void) return 0; } +static int test_file_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_FILE_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_file_2 (void) { - /* InitBasicFS for file (2): create ext2 on /dev/sda1 */ + if (test_file_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_file_2"); + return 0; + } + + /* InitBasicFS for test_file_2: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3418,35 +9964,45 @@ static int test_file_2 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestLastFail for file (2) */ { + char path[] = "/nofile"; char *r; suppress_error = 1; - r = guestfs_file (g, "/nofile"); + r = guestfs_file (g, path); if (r != NULL) return -1; free (r); @@ -3454,9 +10010,34 @@ static int test_file_2 (void) return 0; } +static int test_umount_all_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_UMOUNT_ALL_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_UMOUNT_ALL"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_umount_all_0 (void) { - /* InitBasicFS for umount_all (0): create ext2 on /dev/sda1 */ + if (test_umount_all_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_umount_all_0"); + return 0; + } + + /* InitBasicFS for test_umount_all_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3472,27 +10053,36 @@ static int test_umount_all_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } @@ -3523,9 +10113,34 @@ static int test_umount_all_0 (void) return 0; } +static int test_umount_all_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_UMOUNT_ALL_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_UMOUNT_ALL"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_umount_all_1 (void) { - /* InitEmpty for umount_all (1) */ + if (test_umount_all_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_umount_all_1"); + return 0; + } + + /* InitNone|InitEmpty for test_umount_all_1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3542,78 +10157,104 @@ static int test_umount_all_1 (void) } /* TestOutputList for umount_all (1) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ",10"; + char lines_1[] = ",20"; + char lines_2[] = ","; char *lines[] = { - ",10", - ",20", - ",", + lines_0, + lines_1, + lines_2, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda2"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda2"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda3"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda3"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } { + char path[] = "/mp1"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/mp1"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char device[] = "/dev/sda2"; + device[5] = devchar; + char mountpoint[] = "/mp1"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda2", "/mp1"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } { + char path[] = "/mp1/mp2"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/mp1/mp2"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char device[] = "/dev/sda3"; + device[5] = devchar; + char mountpoint[] = "/mp1/mp2"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda3", "/mp1/mp2"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } { + char path[] = "/mp1/mp2/mp3"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/mp1/mp2/mp3"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } @@ -3640,12 +10281,37 @@ static int test_umount_all_1 (void) free (r[i]); free (r); } - return 0; -} - -static int test_mounts_0 (void) -{ - /* InitBasicFS for mounts (0): create ext2 on /dev/sda1 */ + return 0; +} + +static int test_mounts_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MOUNTS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MOUNTS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_mounts_0 (void) +{ + if (test_mounts_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mounts_0"); + return 0; + } + + /* InitBasicFS for test_mounts_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3661,27 +10327,36 @@ static int test_mounts_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } @@ -3698,9 +10373,13 @@ static int test_mounts_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/sda1") != 0) { - fprintf (stderr, "test_mounts_0: expected \"/dev/sda1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/sda1"; + expected[5] = devchar; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_mounts_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (r[1] != NULL) { fprintf (stderr, "test_mounts_0: extra elements returned from command\n"); @@ -3714,9 +10393,34 @@ static int test_mounts_0 (void) return 0; } +static int test_umount_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_UMOUNT_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_UMOUNT"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_umount_0 (void) { - /* InitEmpty for umount (0) */ + if (test_umount_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_umount_0"); + return 0; + } + + /* InitNone|InitEmpty for test_umount_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3733,27 +10437,36 @@ static int test_umount_0 (void) } /* TestOutputList for umount (0) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } @@ -3769,9 +10482,13 @@ static int test_umount_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/sda1") != 0) { - fprintf (stderr, "test_umount_0: expected \"/dev/sda1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/sda1"; + expected[5] = devchar; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_umount_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (r[1] != NULL) { fprintf (stderr, "test_umount_0: extra elements returned from command\n"); @@ -3785,9 +10502,34 @@ static int test_umount_0 (void) return 0; } +static int test_umount_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_UMOUNT_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_UMOUNT"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_umount_1 (void) { - /* InitEmpty for umount (1) */ + if (test_umount_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_umount_1"); + return 0; + } + + /* InitNone|InitEmpty for test_umount_1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3804,34 +10546,44 @@ static int test_umount_1 (void) } /* TestOutputList for umount (1) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } { + char pathordevice[] = "/"; int r; suppress_error = 0; - r = guestfs_umount (g, "/"); + r = guestfs_umount (g, pathordevice); if (r == -1) return -1; } @@ -3854,9 +10606,34 @@ static int test_umount_1 (void) return 0; } +static int test_write_file_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_WRITE_FILE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_WRITE_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_write_file_0 (void) { - /* InitBasicFS for write_file (0): create ext2 on /dev/sda1 */ + if (test_write_file_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_0"); + return 0; + } + + /* InitBasicFS for test_write_file_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3872,46 +10649,59 @@ static int test_write_file_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutput for write_file (0) */ + char expected[] = "new file contents"; { + char path[] = "/new"; + char content[] = "new file contents"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "new file contents", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "new file contents") != 0) { - fprintf (stderr, "test_write_file_0: expected \"new file contents\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_write_file_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -3919,9 +10709,34 @@ static int test_write_file_0 (void) return 0; } +static int test_write_file_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_WRITE_FILE_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_WRITE_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_write_file_1 (void) { - /* InitBasicFS for write_file (1): create ext2 on /dev/sda1 */ + if (test_write_file_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_1"); + return 0; + } + + /* InitBasicFS for test_write_file_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -3937,46 +10752,59 @@ static int test_write_file_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutput for write_file (1) */ + char expected[] = "\nnew file contents\n"; { + char path[] = "/new"; + char content[] = "\nnew file contents\n"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "\nnew file contents\n", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "\nnew file contents\n") != 0) { - fprintf (stderr, "test_write_file_1: expected \"\nnew file contents\n\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_write_file_1: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -3984,9 +10812,34 @@ static int test_write_file_1 (void) return 0; } +static int test_write_file_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_WRITE_FILE_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_WRITE_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_write_file_2 (void) { - /* InitBasicFS for write_file (2): create ext2 on /dev/sda1 */ + if (test_write_file_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_2"); + return 0; + } + + /* InitBasicFS for test_write_file_2: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4002,46 +10855,59 @@ static int test_write_file_2 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutput for write_file (2) */ + char expected[] = "\n\n"; { + char path[] = "/new"; + char content[] = "\n\n"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "\n\n", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "\n\n") != 0) { - fprintf (stderr, "test_write_file_2: expected \"\n\n\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_write_file_2: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -4049,9 +10915,34 @@ static int test_write_file_2 (void) return 0; } +static int test_write_file_3_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_WRITE_FILE_3"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_WRITE_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_write_file_3 (void) { - /* InitBasicFS for write_file (3): create ext2 on /dev/sda1 */ + if (test_write_file_3_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_3"); + return 0; + } + + /* InitBasicFS for test_write_file_3: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4067,46 +10958,59 @@ static int test_write_file_3 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutput for write_file (3) */ + char expected[] = ""; { + char path[] = "/new"; + char content[] = ""; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "") != 0) { - fprintf (stderr, "test_write_file_3: expected \"\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_write_file_3: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -4114,9 +11018,34 @@ static int test_write_file_3 (void) return 0; } +static int test_write_file_4_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_WRITE_FILE_4"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_WRITE_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_write_file_4 (void) { - /* InitBasicFS for write_file (4): create ext2 on /dev/sda1 */ + if (test_write_file_4_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_4"); + return 0; + } + + /* InitBasicFS for test_write_file_4: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4132,46 +11061,59 @@ static int test_write_file_4 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutput for write_file (4) */ + char expected[] = "\n\n\n"; { + char path[] = "/new"; + char content[] = "\n\n\n"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "\n\n\n", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "\n\n\n") != 0) { - fprintf (stderr, "test_write_file_4: expected \"\n\n\n\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_write_file_4: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -4179,9 +11121,34 @@ static int test_write_file_4 (void) return 0; } +static int test_write_file_5_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_WRITE_FILE_5"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_WRITE_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_write_file_5 (void) { - /* InitBasicFS for write_file (5): create ext2 on /dev/sda1 */ + if (test_write_file_5_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_5"); + return 0; + } + + /* InitBasicFS for test_write_file_5: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4197,46 +11164,59 @@ static int test_write_file_5 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutput for write_file (5) */ + char expected[] = "\n"; { + char path[] = "/new"; + char content[] = "\n"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "\n", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "\n") != 0) { - fprintf (stderr, "test_write_file_5: expected \"\n\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_write_file_5: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -4244,9 +11224,34 @@ static int test_write_file_5 (void) return 0; } +static int test_mkfs_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MKFS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MKFS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_mkfs_0 (void) { - /* InitEmpty for mkfs (0) */ + if (test_mkfs_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkfs_0"); + return 0; + } + + /* InitNone|InitEmpty for test_mkfs_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4262,46 +11267,59 @@ static int test_mkfs_0 (void) return -1; } /* TestOutput for mkfs (0) */ + char expected[] = "new file contents"; { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } { + char path[] = "/new"; + char content[] = "new file contents"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "new file contents", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "new file contents") != 0) { - fprintf (stderr, "test_mkfs_0: expected \"new file contents\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_mkfs_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -4309,9 +11327,34 @@ static int test_mkfs_0 (void) return 0; } +static int test_lvcreate_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LVCREATE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LVCREATE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_lvcreate_0 (void) { - /* InitEmpty for lvcreate (0) */ + if (test_lvcreate_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvcreate_0"); + return 0; + } + + /* InitNone|InitEmpty for test_lvcreate_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4328,94 +11371,123 @@ static int test_lvcreate_0 (void) } /* TestOutputList for lvcreate (0) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ",10"; + char lines_1[] = ",20"; + char lines_2[] = ","; char *lines[] = { - ",10", - ",20", - ",", + lines_0, + lines_1, + lines_2, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda2"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda2"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda3"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda3"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char volgroup[] = "VG1"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char physvols_1[] = "/dev/sda2"; + physvols_1[5] = devchar; char *physvols[] = { - "/dev/sda1", - "/dev/sda2", + physvols_0, + physvols_1, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG1", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } { + char volgroup[] = "VG2"; + char physvols_0[] = "/dev/sda3"; + physvols_0[5] = devchar; char *physvols[] = { - "/dev/sda3", + physvols_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG2", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } { + char logvol[] = "LV1"; + char volgroup[] = "VG1"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV1", "VG1", 50); + r = guestfs_lvcreate (g, logvol, volgroup, 50); if (r == -1) return -1; } { + char logvol[] = "LV2"; + char volgroup[] = "VG1"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV2", "VG1", 50); + r = guestfs_lvcreate (g, logvol, volgroup, 50); if (r == -1) return -1; } { + char logvol[] = "LV3"; + char volgroup[] = "VG2"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV3", "VG2", 50); + r = guestfs_lvcreate (g, logvol, volgroup, 50); if (r == -1) return -1; } { + char logvol[] = "LV4"; + char volgroup[] = "VG2"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV4", "VG2", 50); + r = guestfs_lvcreate (g, logvol, volgroup, 50); if (r == -1) return -1; } { + char logvol[] = "LV5"; + char volgroup[] = "VG2"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV5", "VG2", 50); + r = guestfs_lvcreate (g, logvol, volgroup, 50); if (r == -1) return -1; } @@ -4431,45 +11503,60 @@ static int test_lvcreate_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/VG1/LV1") != 0) { - fprintf (stderr, "test_lvcreate_0: expected \"/dev/VG1/LV1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/VG1/LV1"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (!r[1]) { fprintf (stderr, "test_lvcreate_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[1], "/dev/VG1/LV2") != 0) { - fprintf (stderr, "test_lvcreate_0: expected \"/dev/VG1/LV2\" but got \"%s\"\n", r[1]); - return -1; + { + char expected[] = "/dev/VG1/LV2"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } } if (!r[2]) { fprintf (stderr, "test_lvcreate_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[2], "/dev/VG2/LV3") != 0) { - fprintf (stderr, "test_lvcreate_0: expected \"/dev/VG2/LV3\" but got \"%s\"\n", r[2]); - return -1; + { + char expected[] = "/dev/VG2/LV3"; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } } if (!r[3]) { fprintf (stderr, "test_lvcreate_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[3], "/dev/VG2/LV4") != 0) { - fprintf (stderr, "test_lvcreate_0: expected \"/dev/VG2/LV4\" but got \"%s\"\n", r[3]); - return -1; + { + char expected[] = "/dev/VG2/LV4"; + if (strcmp (r[3], expected) != 0) { + fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[3]); + return -1; + } } if (!r[4]) { fprintf (stderr, "test_lvcreate_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[4], "/dev/VG2/LV5") != 0) { - fprintf (stderr, "test_lvcreate_0: expected \"/dev/VG2/LV5\" but got \"%s\"\n", r[4]); - return -1; + { + char expected[] = "/dev/VG2/LV5"; + if (strcmp (r[4], expected) != 0) { + fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[4]); + return -1; + } } if (r[5] != NULL) { fprintf (stderr, "test_lvcreate_0: extra elements returned from command\n"); @@ -4483,9 +11570,34 @@ static int test_lvcreate_0 (void) return 0; } +static int test_vgcreate_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_VGCREATE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_VGCREATE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_vgcreate_0 (void) { - /* InitEmpty for vgcreate (0) */ + if (test_vgcreate_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_vgcreate_0"); + return 0; + } + + /* InitNone|InitEmpty for test_vgcreate_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4502,59 +11614,78 @@ static int test_vgcreate_0 (void) } /* TestOutputList for vgcreate (0) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ",10"; + char lines_1[] = ",20"; + char lines_2[] = ","; char *lines[] = { - ",10", - ",20", - ",", + lines_0, + lines_1, + lines_2, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda2"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda2"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda3"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda3"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char volgroup[] = "VG1"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char physvols_1[] = "/dev/sda2"; + physvols_1[5] = devchar; char *physvols[] = { - "/dev/sda1", - "/dev/sda2", + physvols_0, + physvols_1, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG1", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } { + char volgroup[] = "VG2"; + char physvols_0[] = "/dev/sda3"; + physvols_0[5] = devchar; char *physvols[] = { - "/dev/sda3", + physvols_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG2", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } @@ -4570,18 +11701,24 @@ static int test_vgcreate_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "VG1") != 0) { - fprintf (stderr, "test_vgcreate_0: expected \"VG1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "VG1"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_vgcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (!r[1]) { fprintf (stderr, "test_vgcreate_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[1], "VG2") != 0) { - fprintf (stderr, "test_vgcreate_0: expected \"VG2\" but got \"%s\"\n", r[1]); - return -1; + { + char expected[] = "VG2"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_vgcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } } if (r[2] != NULL) { fprintf (stderr, "test_vgcreate_0: extra elements returned from command\n"); @@ -4595,9 +11732,34 @@ static int test_vgcreate_0 (void) return 0; } +static int test_pvcreate_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_PVCREATE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_PVCREATE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_pvcreate_0 (void) { - /* InitEmpty for pvcreate (0) */ + if (test_pvcreate_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvcreate_0"); + return 0; + } + + /* InitNone|InitEmpty for test_pvcreate_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4614,36 +11776,47 @@ static int test_pvcreate_0 (void) } /* TestOutputList for pvcreate (0) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ",10"; + char lines_1[] = ",20"; + char lines_2[] = ","; char *lines[] = { - ",10", - ",20", - ",", + lines_0, + lines_1, + lines_2, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda2"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda2"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda3"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda3"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } @@ -4659,27 +11832,39 @@ static int test_pvcreate_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/sda1") != 0) { - fprintf (stderr, "test_pvcreate_0: expected \"/dev/sda1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/sda1"; + expected[5] = devchar; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_pvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (!r[1]) { fprintf (stderr, "test_pvcreate_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[1], "/dev/sda2") != 0) { - fprintf (stderr, "test_pvcreate_0: expected \"/dev/sda2\" but got \"%s\"\n", r[1]); - return -1; + { + char expected[] = "/dev/sda2"; + expected[5] = devchar; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_pvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } } if (!r[2]) { fprintf (stderr, "test_pvcreate_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[2], "/dev/sda3") != 0) { - fprintf (stderr, "test_pvcreate_0: expected \"/dev/sda3\" but got \"%s\"\n", r[2]); - return -1; + { + char expected[] = "/dev/sda3"; + expected[5] = devchar; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_pvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } } if (r[3] != NULL) { fprintf (stderr, "test_pvcreate_0: extra elements returned from command\n"); @@ -4693,9 +11878,34 @@ static int test_pvcreate_0 (void) return 0; } +static int test_is_dir_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_IS_DIR_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_IS_DIR"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_is_dir_0 (void) { - /* InitBasicFS for is_dir (0): create ext2 on /dev/sda1 */ + if (test_is_dir_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_is_dir_0"); + return 0; + } + + /* InitBasicFS for test_is_dir_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4711,42 +11921,53 @@ static int test_is_dir_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputFalse for is_dir (0) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_is_dir (g, "/new"); + r = guestfs_is_dir (g, path); if (r == -1) return -1; if (r) { @@ -4757,9 +11978,34 @@ static int test_is_dir_0 (void) return 0; } +static int test_is_dir_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_IS_DIR_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_IS_DIR"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_is_dir_1 (void) { - /* InitBasicFS for is_dir (1): create ext2 on /dev/sda1 */ + if (test_is_dir_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_is_dir_1"); + return 0; + } + + /* InitBasicFS for test_is_dir_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4775,42 +12021,53 @@ static int test_is_dir_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputTrue for is_dir (1) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/new"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_is_dir (g, "/new"); + r = guestfs_is_dir (g, path); if (r == -1) return -1; if (!r) { @@ -4821,9 +12078,34 @@ static int test_is_dir_1 (void) return 0; } +static int test_is_file_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_IS_FILE_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_IS_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_is_file_0 (void) { - /* InitBasicFS for is_file (0): create ext2 on /dev/sda1 */ + if (test_is_file_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_is_file_0"); + return 0; + } + + /* InitBasicFS for test_is_file_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4839,42 +12121,53 @@ static int test_is_file_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputTrue for is_file (0) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_is_file (g, "/new"); + r = guestfs_is_file (g, path); if (r == -1) return -1; if (!r) { @@ -4885,9 +12178,34 @@ static int test_is_file_0 (void) return 0; } +static int test_is_file_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_IS_FILE_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_IS_FILE"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_is_file_1 (void) { - /* InitBasicFS for is_file (1): create ext2 on /dev/sda1 */ + if (test_is_file_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_is_file_1"); + return 0; + } + + /* InitBasicFS for test_is_file_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4903,42 +12221,53 @@ static int test_is_file_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputFalse for is_file (1) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/new"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_is_file (g, "/new"); + r = guestfs_is_file (g, path); if (r == -1) return -1; if (r) { @@ -4949,9 +12278,34 @@ static int test_is_file_1 (void) return 0; } +static int test_exists_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_EXISTS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_EXISTS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_exists_0 (void) { - /* InitBasicFS for exists (0): create ext2 on /dev/sda1 */ + if (test_exists_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_exists_0"); + return 0; + } + + /* InitBasicFS for test_exists_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -4967,55 +12321,91 @@ static int test_exists_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputTrue for exists (0) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_exists (g, "/new"); + r = guestfs_exists (g, path); if (r == -1) return -1; if (!r) { fprintf (stderr, "test_exists_0: expected true, got false\n"); return -1; - } + } + } + return 0; +} + +static int test_exists_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_EXISTS_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_EXISTS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + +static int test_exists_1 (void) +{ + if (test_exists_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_exists_1"); + return 0; + } + + /* InitBasicFS for test_exists_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; } - return 0; -} - -static int test_exists_1 (void) -{ - /* InitBasicFS for exists (1): create ext2 on /dev/sda1 */ { int r; suppress_error = 0; @@ -5031,42 +12421,53 @@ static int test_exists_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputTrue for exists (1) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/new"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_exists (g, "/new"); + r = guestfs_exists (g, path); if (r == -1) return -1; if (!r) { @@ -5077,9 +12478,34 @@ static int test_exists_1 (void) return 0; } +static int test_mkdir_p_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MKDIR_P_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MKDIR_P"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_mkdir_p_0 (void) { - /* InitBasicFS for mkdir_p (0): create ext2 on /dev/sda1 */ + if (test_mkdir_p_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_p_0"); + return 0; + } + + /* InitBasicFS for test_mkdir_p_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5095,42 +12521,53 @@ static int test_mkdir_p_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputTrue for mkdir_p (0) */ { + char path[] = "/new/foo/bar"; int r; suppress_error = 0; - r = guestfs_mkdir_p (g, "/new/foo/bar"); + r = guestfs_mkdir_p (g, path); if (r == -1) return -1; } { + char path[] = "/new/foo/bar"; int r; suppress_error = 0; - r = guestfs_is_dir (g, "/new/foo/bar"); + r = guestfs_is_dir (g, path); if (r == -1) return -1; if (!r) { @@ -5141,9 +12578,34 @@ static int test_mkdir_p_0 (void) return 0; } +static int test_mkdir_p_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MKDIR_P_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MKDIR_P"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_mkdir_p_1 (void) { - /* InitBasicFS for mkdir_p (1): create ext2 on /dev/sda1 */ + if (test_mkdir_p_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_p_1"); + return 0; + } + + /* InitBasicFS for test_mkdir_p_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5159,42 +12621,53 @@ static int test_mkdir_p_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputTrue for mkdir_p (1) */ { + char path[] = "/new/foo/bar"; int r; suppress_error = 0; - r = guestfs_mkdir_p (g, "/new/foo/bar"); + r = guestfs_mkdir_p (g, path); if (r == -1) return -1; } { + char path[] = "/new/foo"; int r; suppress_error = 0; - r = guestfs_is_dir (g, "/new/foo"); + r = guestfs_is_dir (g, path); if (r == -1) return -1; if (!r) { @@ -5205,9 +12678,34 @@ static int test_mkdir_p_1 (void) return 0; } +static int test_mkdir_p_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MKDIR_P_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MKDIR_P"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_mkdir_p_2 (void) { - /* InitBasicFS for mkdir_p (2): create ext2 on /dev/sda1 */ + if (test_mkdir_p_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_p_2"); + return 0; + } + + /* InitBasicFS for test_mkdir_p_2: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5223,42 +12721,53 @@ static int test_mkdir_p_2 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputTrue for mkdir_p (2) */ { + char path[] = "/new/foo/bar"; int r; suppress_error = 0; - r = guestfs_mkdir_p (g, "/new/foo/bar"); + r = guestfs_mkdir_p (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_is_dir (g, "/new"); + r = guestfs_is_dir (g, path); if (r == -1) return -1; if (!r) { @@ -5269,9 +12778,34 @@ static int test_mkdir_p_2 (void) return 0; } +static int test_mkdir_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MKDIR_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MKDIR"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_mkdir_0 (void) { - /* InitBasicFS for mkdir (0): create ext2 on /dev/sda1 */ + if (test_mkdir_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_0"); + return 0; + } + + /* InitBasicFS for test_mkdir_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5287,42 +12821,53 @@ static int test_mkdir_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputTrue for mkdir (0) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/new"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_is_dir (g, "/new"); + r = guestfs_is_dir (g, path); if (r == -1) return -1; if (!r) { @@ -5333,9 +12878,34 @@ static int test_mkdir_0 (void) return 0; } +static int test_mkdir_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MKDIR_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MKDIR"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_mkdir_1 (void) { - /* InitBasicFS for mkdir (1): create ext2 on /dev/sda1 */ + if (test_mkdir_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_1"); + return 0; + } + + /* InitBasicFS for test_mkdir_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5351,44 +12921,79 @@ static int test_mkdir_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestLastFail for mkdir (1) */ { + char path[] = "/new/foo/bar"; int r; suppress_error = 1; - r = guestfs_mkdir (g, "/new/foo/bar"); + r = guestfs_mkdir (g, path); if (r != -1) return -1; } return 0; } +static int test_rm_rf_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_RM_RF_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_RM_RF"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_rm_rf_0 (void) { - /* InitBasicFS for rm_rf (0): create ext2 on /dev/sda1 */ + if (test_rm_rf_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rm_rf_0"); + return 0; + } + + /* InitBasicFS for test_rm_rf_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5404,63 +13009,77 @@ static int test_rm_rf_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputFalse for rm_rf (0) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/new"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char path[] = "/new/foo"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/new/foo"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char path[] = "/new/foo/bar"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new/foo/bar"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_rm_rf (g, "/new"); + r = guestfs_rm_rf (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_exists (g, "/new"); + r = guestfs_exists (g, path); if (r == -1) return -1; if (r) { @@ -5471,9 +13090,34 @@ static int test_rm_rf_0 (void) return 0; } +static int test_rmdir_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_RMDIR_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_RMDIR"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_rmdir_0 (void) { - /* InitBasicFS for rmdir (0): create ext2 on /dev/sda1 */ + if (test_rmdir_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rmdir_0"); + return 0; + } + + /* InitBasicFS for test_rmdir_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5489,51 +13133,87 @@ static int test_rmdir_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestRun for rmdir (0) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/new"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_rmdir (g, "/new"); + r = guestfs_rmdir (g, path); if (r == -1) return -1; } return 0; } +static int test_rmdir_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_RMDIR_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_RMDIR"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_rmdir_1 (void) { - /* InitBasicFS for rmdir (1): create ext2 on /dev/sda1 */ + if (test_rmdir_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rmdir_1"); + return 0; + } + + /* InitBasicFS for test_rmdir_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5549,44 +13229,79 @@ static int test_rmdir_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestLastFail for rmdir (1) */ { + char path[] = "/new"; int r; suppress_error = 1; - r = guestfs_rmdir (g, "/new"); + r = guestfs_rmdir (g, path); if (r != -1) return -1; } return 0; } +static int test_rmdir_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_RMDIR_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_RMDIR"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_rmdir_2 (void) { - /* InitBasicFS for rmdir (2): create ext2 on /dev/sda1 */ + if (test_rmdir_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rmdir_2"); + return 0; + } + + /* InitBasicFS for test_rmdir_2: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5602,51 +13317,87 @@ static int test_rmdir_2 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestLastFail for rmdir (2) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 1; - r = guestfs_rmdir (g, "/new"); + r = guestfs_rmdir (g, path); if (r != -1) return -1; } return 0; } +static int test_rm_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_RM_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_RM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_rm_0 (void) { - /* InitBasicFS for rm (0): create ext2 on /dev/sda1 */ + if (test_rm_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rm_0"); + return 0; + } + + /* InitBasicFS for test_rm_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5662,51 +13413,87 @@ static int test_rm_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestRun for rm (0) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_rm (g, "/new"); + r = guestfs_rm (g, path); if (r == -1) return -1; } return 0; } +static int test_rm_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_RM_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_RM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_rm_1 (void) { - /* InitBasicFS for rm (1): create ext2 on /dev/sda1 */ + if (test_rm_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rm_1"); + return 0; + } + + /* InitBasicFS for test_rm_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5722,44 +13509,79 @@ static int test_rm_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestLastFail for rm (1) */ { + char path[] = "/new"; int r; suppress_error = 1; - r = guestfs_rm (g, "/new"); + r = guestfs_rm (g, path); if (r != -1) return -1; } return 0; } +static int test_rm_2_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_RM_2"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_RM"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_rm_2 (void) { - /* InitBasicFS for rm (2): create ext2 on /dev/sda1 */ + if (test_rm_2_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rm_2"); + return 0; + } + + /* InitBasicFS for test_rm_2: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5775,51 +13597,87 @@ static int test_rm_2 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestLastFail for rm (2) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_mkdir (g, "/new"); + r = guestfs_mkdir (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 1; - r = guestfs_rm (g, "/new"); + r = guestfs_rm (g, path); if (r != -1) return -1; } return 0; } +static int test_read_lines_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_READ_LINES_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_READ_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_read_lines_0 (void) { - /* InitBasicFS for read_lines (0): create ext2 on /dev/sda1 */ + if (test_read_lines_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_read_lines_0"); + return 0; + } + + /* InitBasicFS for test_read_lines_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5835,43 +13693,55 @@ static int test_read_lines_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputList for read_lines (0) */ { + char path[] = "/new"; + char content[] = "line1\r\nline2\nline3"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "line1\r\nline2\nline3", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char **r; int i; suppress_error = 0; - r = guestfs_read_lines (g, "/new"); + r = guestfs_read_lines (g, path); if (r == NULL) return -1; if (!r[0]) { @@ -5879,27 +13749,36 @@ static int test_read_lines_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "line1") != 0) { - fprintf (stderr, "test_read_lines_0: expected \"line1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "line1"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_read_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (!r[1]) { fprintf (stderr, "test_read_lines_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[1], "line2") != 0) { - fprintf (stderr, "test_read_lines_0: expected \"line2\" but got \"%s\"\n", r[1]); - return -1; + { + char expected[] = "line2"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_read_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } } if (!r[2]) { fprintf (stderr, "test_read_lines_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[2], "line3") != 0) { - fprintf (stderr, "test_read_lines_0: expected \"line3\" but got \"%s\"\n", r[2]); - return -1; + { + char expected[] = "line3"; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_read_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } } if (r[3] != NULL) { fprintf (stderr, "test_read_lines_0: extra elements returned from command\n"); @@ -5913,9 +13792,34 @@ static int test_read_lines_0 (void) return 0; } +static int test_read_lines_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_READ_LINES_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_READ_LINES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_read_lines_1 (void) { - /* InitBasicFS for read_lines (1): create ext2 on /dev/sda1 */ + if (test_read_lines_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_read_lines_1"); + return 0; + } + + /* InitBasicFS for test_read_lines_1: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -5931,43 +13835,55 @@ static int test_read_lines_1 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputList for read_lines (1) */ { + char path[] = "/new"; + char content[] = ""; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char **r; int i; suppress_error = 0; - r = guestfs_read_lines (g, "/new"); + r = guestfs_read_lines (g, path); if (r == NULL) return -1; if (r[0] != NULL) { @@ -5982,9 +13898,34 @@ static int test_read_lines_1 (void) return 0; } +static int test_lvs_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LVS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LVS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_lvs_0 (void) { - /* InitBasicFSonLVM for lvs (0): create ext2 on /dev/VG/LV */ + if (test_lvs_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvs_0"); + return 0; + } + + /* InitBasicFSonLVM for test_lvs_0: create ext2 on /dev/VG/LV */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6000,52 +13941,66 @@ static int test_lvs_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; char *physvols[] = { - "/dev/sda1", + physvols_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } { + char logvol[] = "LV"; + char volgroup[] = "VG"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV", "VG", 8); + r = guestfs_lvcreate (g, logvol, volgroup, 8); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/VG/LV"; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/VG/LV"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/VG/LV"; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/VG/LV", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } @@ -6062,9 +14017,12 @@ static int test_lvs_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/VG/LV") != 0) { - fprintf (stderr, "test_lvs_0: expected \"/dev/VG/LV\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/VG/LV"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_lvs_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (r[1] != NULL) { fprintf (stderr, "test_lvs_0: extra elements returned from command\n"); @@ -6078,9 +14036,34 @@ static int test_lvs_0 (void) return 0; } +static int test_lvs_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LVS_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LVS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_lvs_1 (void) { - /* InitEmpty for lvs (1) */ + if (test_lvs_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvs_1"); + return 0; + } + + /* InitNone|InitEmpty for test_lvs_1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6097,80 +14080,105 @@ static int test_lvs_1 (void) } /* TestOutputList for lvs (1) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ",10"; + char lines_1[] = ",20"; + char lines_2[] = ","; char *lines[] = { - ",10", - ",20", - ",", + lines_0, + lines_1, + lines_2, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda2"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda2"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda3"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda3"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char volgroup[] = "VG1"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char physvols_1[] = "/dev/sda2"; + physvols_1[5] = devchar; char *physvols[] = { - "/dev/sda1", - "/dev/sda2", + physvols_0, + physvols_1, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG1", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } { + char volgroup[] = "VG2"; + char physvols_0[] = "/dev/sda3"; + physvols_0[5] = devchar; char *physvols[] = { - "/dev/sda3", + physvols_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG2", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } { + char logvol[] = "LV1"; + char volgroup[] = "VG1"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV1", "VG1", 50); + r = guestfs_lvcreate (g, logvol, volgroup, 50); if (r == -1) return -1; } { + char logvol[] = "LV2"; + char volgroup[] = "VG1"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV2", "VG1", 50); + r = guestfs_lvcreate (g, logvol, volgroup, 50); if (r == -1) return -1; } { + char logvol[] = "LV3"; + char volgroup[] = "VG2"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV3", "VG2", 50); + r = guestfs_lvcreate (g, logvol, volgroup, 50); if (r == -1) return -1; } @@ -6186,27 +14194,36 @@ static int test_lvs_1 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/VG1/LV1") != 0) { - fprintf (stderr, "test_lvs_1: expected \"/dev/VG1/LV1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/VG1/LV1"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_lvs_1: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (!r[1]) { fprintf (stderr, "test_lvs_1: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[1], "/dev/VG1/LV2") != 0) { - fprintf (stderr, "test_lvs_1: expected \"/dev/VG1/LV2\" but got \"%s\"\n", r[1]); - return -1; + { + char expected[] = "/dev/VG1/LV2"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_lvs_1: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } } if (!r[2]) { fprintf (stderr, "test_lvs_1: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[2], "/dev/VG2/LV3") != 0) { - fprintf (stderr, "test_lvs_1: expected \"/dev/VG2/LV3\" but got \"%s\"\n", r[2]); - return -1; + { + char expected[] = "/dev/VG2/LV3"; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_lvs_1: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } } if (r[3] != NULL) { fprintf (stderr, "test_lvs_1: extra elements returned from command\n"); @@ -6220,9 +14237,34 @@ static int test_lvs_1 (void) return 0; } +static int test_vgs_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_VGS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_VGS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_vgs_0 (void) { - /* InitBasicFSonLVM for vgs (0): create ext2 on /dev/VG/LV */ + if (test_vgs_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_vgs_0"); + return 0; + } + + /* InitBasicFSonLVM for test_vgs_0: create ext2 on /dev/VG/LV */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6238,52 +14280,66 @@ static int test_vgs_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; char *physvols[] = { - "/dev/sda1", + physvols_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } { + char logvol[] = "LV"; + char volgroup[] = "VG"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV", "VG", 8); + r = guestfs_lvcreate (g, logvol, volgroup, 8); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/VG/LV"; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/VG/LV"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/VG/LV"; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/VG/LV", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } @@ -6300,9 +14356,12 @@ static int test_vgs_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "VG") != 0) { - fprintf (stderr, "test_vgs_0: expected \"VG\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "VG"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_vgs_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (r[1] != NULL) { fprintf (stderr, "test_vgs_0: extra elements returned from command\n"); @@ -6316,9 +14375,34 @@ static int test_vgs_0 (void) return 0; } +static int test_vgs_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_VGS_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_VGS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_vgs_1 (void) { - /* InitEmpty for vgs (1) */ + if (test_vgs_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_vgs_1"); + return 0; + } + + /* InitNone|InitEmpty for test_vgs_1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6335,59 +14419,78 @@ static int test_vgs_1 (void) } /* TestOutputList for vgs (1) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ",10"; + char lines_1[] = ",20"; + char lines_2[] = ","; char *lines[] = { - ",10", - ",20", - ",", + lines_0, + lines_1, + lines_2, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda2"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda2"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda3"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda3"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char volgroup[] = "VG1"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; + char physvols_1[] = "/dev/sda2"; + physvols_1[5] = devchar; char *physvols[] = { - "/dev/sda1", - "/dev/sda2", + physvols_0, + physvols_1, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG1", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } { + char volgroup[] = "VG2"; + char physvols_0[] = "/dev/sda3"; + physvols_0[5] = devchar; char *physvols[] = { - "/dev/sda3", + physvols_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG2", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } @@ -6403,18 +14506,24 @@ static int test_vgs_1 (void) print_strings (r); return -1; } - if (strcmp (r[0], "VG1") != 0) { - fprintf (stderr, "test_vgs_1: expected \"VG1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "VG1"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_vgs_1: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (!r[1]) { fprintf (stderr, "test_vgs_1: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[1], "VG2") != 0) { - fprintf (stderr, "test_vgs_1: expected \"VG2\" but got \"%s\"\n", r[1]); - return -1; + { + char expected[] = "VG2"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_vgs_1: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } } if (r[2] != NULL) { fprintf (stderr, "test_vgs_1: extra elements returned from command\n"); @@ -6428,9 +14537,34 @@ static int test_vgs_1 (void) return 0; } +static int test_pvs_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_PVS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_PVS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_pvs_0 (void) { - /* InitBasicFSonLVM for pvs (0): create ext2 on /dev/VG/LV */ + if (test_pvs_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvs_0"); + return 0; + } + + /* InitBasicFSonLVM for test_pvs_0: create ext2 on /dev/VG/LV */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6446,52 +14580,66 @@ static int test_pvs_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char volgroup[] = "VG"; + char physvols_0[] = "/dev/sda1"; + physvols_0[5] = devchar; char *physvols[] = { - "/dev/sda1", + physvols_0, NULL }; int r; suppress_error = 0; - r = guestfs_vgcreate (g, "VG", physvols); + r = guestfs_vgcreate (g, volgroup, physvols); if (r == -1) return -1; } { + char logvol[] = "LV"; + char volgroup[] = "VG"; int r; suppress_error = 0; - r = guestfs_lvcreate (g, "LV", "VG", 8); + r = guestfs_lvcreate (g, logvol, volgroup, 8); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/VG/LV"; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/VG/LV"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/VG/LV"; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/VG/LV", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } @@ -6508,9 +14656,13 @@ static int test_pvs_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/sda1") != 0) { - fprintf (stderr, "test_pvs_0: expected \"/dev/sda1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/sda1"; + expected[5] = devchar; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_pvs_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (r[1] != NULL) { fprintf (stderr, "test_pvs_0: extra elements returned from command\n"); @@ -6524,9 +14676,34 @@ static int test_pvs_0 (void) return 0; } +static int test_pvs_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_PVS_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_PVS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_pvs_1 (void) { - /* InitEmpty for pvs (1) */ + if (test_pvs_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvs_1"); + return 0; + } + + /* InitNone|InitEmpty for test_pvs_1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6543,36 +14720,47 @@ static int test_pvs_1 (void) } /* TestOutputList for pvs (1) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ",10"; + char lines_1[] = ",20"; + char lines_2[] = ","; char *lines[] = { - ",10", - ",20", - ",", + lines_0, + lines_1, + lines_2, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda1"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda2"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda2"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } { + char device[] = "/dev/sda3"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_pvcreate (g, "/dev/sda3"); + r = guestfs_pvcreate (g, device); if (r == -1) return -1; } @@ -6588,27 +14776,39 @@ static int test_pvs_1 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/sda1") != 0) { - fprintf (stderr, "test_pvs_1: expected \"/dev/sda1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/sda1"; + expected[5] = devchar; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_pvs_1: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (!r[1]) { fprintf (stderr, "test_pvs_1: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[1], "/dev/sda2") != 0) { - fprintf (stderr, "test_pvs_1: expected \"/dev/sda2\" but got \"%s\"\n", r[1]); - return -1; + { + char expected[] = "/dev/sda2"; + expected[5] = devchar; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_pvs_1: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } } if (!r[2]) { fprintf (stderr, "test_pvs_1: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[2], "/dev/sda3") != 0) { - fprintf (stderr, "test_pvs_1: expected \"/dev/sda3\" but got \"%s\"\n", r[2]); - return -1; + { + char expected[] = "/dev/sda3"; + expected[5] = devchar; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_pvs_1: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } } if (r[3] != NULL) { fprintf (stderr, "test_pvs_1: extra elements returned from command\n"); @@ -6622,9 +14822,34 @@ static int test_pvs_1 (void) return 0; } +static int test_list_partitions_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LIST_PARTITIONS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LIST_PARTITIONS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_list_partitions_0 (void) { - /* InitBasicFS for list_partitions (0): create ext2 on /dev/sda1 */ + if (test_list_partitions_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_list_partitions_0"); + return 0; + } + + /* InitBasicFS for test_list_partitions_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6640,27 +14865,36 @@ static int test_list_partitions_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } @@ -6677,9 +14911,13 @@ static int test_list_partitions_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/sda1") != 0) { - fprintf (stderr, "test_list_partitions_0: expected \"/dev/sda1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/sda1"; + expected[5] = devchar; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_list_partitions_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (r[1] != NULL) { fprintf (stderr, "test_list_partitions_0: extra elements returned from command\n"); @@ -6693,9 +14931,34 @@ static int test_list_partitions_0 (void) return 0; } +static int test_list_partitions_1_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LIST_PARTITIONS_1"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LIST_PARTITIONS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_list_partitions_1 (void) { - /* InitEmpty for list_partitions (1) */ + if (test_list_partitions_1_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_list_partitions_1"); + return 0; + } + + /* InitNone|InitEmpty for test_list_partitions_1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6712,15 +14975,20 @@ static int test_list_partitions_1 (void) } /* TestOutputList for list_partitions (1) */ { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ",10"; + char lines_1[] = ",20"; + char lines_2[] = ","; char *lines[] = { - ",10", - ",20", - ",", + lines_0, + lines_1, + lines_2, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } @@ -6736,27 +15004,39 @@ static int test_list_partitions_1 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/sda1") != 0) { - fprintf (stderr, "test_list_partitions_1: expected \"/dev/sda1\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/sda1"; + expected[5] = devchar; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_list_partitions_1: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (!r[1]) { fprintf (stderr, "test_list_partitions_1: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[1], "/dev/sda2") != 0) { - fprintf (stderr, "test_list_partitions_1: expected \"/dev/sda2\" but got \"%s\"\n", r[1]); - return -1; + { + char expected[] = "/dev/sda2"; + expected[5] = devchar; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_list_partitions_1: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } } if (!r[2]) { fprintf (stderr, "test_list_partitions_1: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[2], "/dev/sda3") != 0) { - fprintf (stderr, "test_list_partitions_1: expected \"/dev/sda3\" but got \"%s\"\n", r[2]); - return -1; + { + char expected[] = "/dev/sda3"; + expected[5] = devchar; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_list_partitions_1: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } } if (r[3] != NULL) { fprintf (stderr, "test_list_partitions_1: extra elements returned from command\n"); @@ -6770,9 +15050,34 @@ static int test_list_partitions_1 (void) return 0; } +static int test_list_devices_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LIST_DEVICES_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LIST_DEVICES"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_list_devices_0 (void) { - /* InitEmpty for list_devices (0) */ + if (test_list_devices_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_list_devices_0"); + return 0; + } + + /* InitNone|InitEmpty for test_list_devices_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6800,27 +15105,39 @@ static int test_list_devices_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "/dev/sda") != 0) { - fprintf (stderr, "test_list_devices_0: expected \"/dev/sda\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "/dev/sda"; + expected[5] = devchar; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (!r[1]) { fprintf (stderr, "test_list_devices_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[1], "/dev/sdb") != 0) { - fprintf (stderr, "test_list_devices_0: expected \"/dev/sdb\" but got \"%s\"\n", r[1]); - return -1; + { + char expected[] = "/dev/sdb"; + expected[5] = devchar; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } } if (!r[2]) { fprintf (stderr, "test_list_devices_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[2], "/dev/sdc") != 0) { - fprintf (stderr, "test_list_devices_0: expected \"/dev/sdc\" but got \"%s\"\n", r[2]); - return -1; + { + char expected[] = "/dev/sdc"; + expected[5] = devchar; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } } if (r[3] != NULL) { fprintf (stderr, "test_list_devices_0: extra elements returned from command\n"); @@ -6834,9 +15151,34 @@ static int test_list_devices_0 (void) return 0; } +static int test_ls_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_LS_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_LS"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_ls_0 (void) { - /* InitBasicFS for ls (0): create ext2 on /dev/sda1 */ + if (test_ls_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_ls_0"); + return 0; + } + + /* InitBasicFS for test_ls_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6852,57 +15194,70 @@ static int test_ls_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputList for ls (0) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/newer"; int r; suppress_error = 0; - r = guestfs_touch (g, "/newer"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/newest"; int r; suppress_error = 0; - r = guestfs_touch (g, "/newest"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char directory[] = "/"; char **r; int i; suppress_error = 0; - r = guestfs_ls (g, "/"); + r = guestfs_ls (g, directory); if (r == NULL) return -1; if (!r[0]) { @@ -6910,36 +15265,48 @@ static int test_ls_0 (void) print_strings (r); return -1; } - if (strcmp (r[0], "lost+found") != 0) { - fprintf (stderr, "test_ls_0: expected \"lost+found\" but got \"%s\"\n", r[0]); - return -1; + { + char expected[] = "lost+found"; + if (strcmp (r[0], expected) != 0) { + fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[0]); + return -1; + } } if (!r[1]) { fprintf (stderr, "test_ls_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[1], "new") != 0) { - fprintf (stderr, "test_ls_0: expected \"new\" but got \"%s\"\n", r[1]); - return -1; + { + char expected[] = "new"; + if (strcmp (r[1], expected) != 0) { + fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[1]); + return -1; + } } if (!r[2]) { fprintf (stderr, "test_ls_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[2], "newer") != 0) { - fprintf (stderr, "test_ls_0: expected \"newer\" but got \"%s\"\n", r[2]); - return -1; + { + char expected[] = "newer"; + if (strcmp (r[2], expected) != 0) { + fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[2]); + return -1; + } } if (!r[3]) { fprintf (stderr, "test_ls_0: short list returned from command\n"); print_strings (r); return -1; } - if (strcmp (r[3], "newest") != 0) { - fprintf (stderr, "test_ls_0: expected \"newest\" but got \"%s\"\n", r[3]); - return -1; + { + char expected[] = "newest"; + if (strcmp (r[3], expected) != 0) { + fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[3]); + return -1; + } } if (r[4] != NULL) { fprintf (stderr, "test_ls_0: extra elements returned from command\n"); @@ -6953,9 +15320,34 @@ static int test_ls_0 (void) return 0; } +static int test_cat_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_CAT_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_CAT"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_cat_0 (void) { - /* InitBasicFS for cat (0): create ext2 on /dev/sda1 */ + if (test_cat_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_cat_0"); + return 0; + } + + /* InitBasicFS for test_cat_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -6971,46 +15363,59 @@ static int test_cat_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutput for cat (0) */ + char expected[] = "new file contents"; { + char path[] = "/new"; + char content[] = "new file contents"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "new file contents", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "new file contents") != 0) { - fprintf (stderr, "test_cat_0: expected \"new file contents\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_cat_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -7018,9 +15423,34 @@ static int test_cat_0 (void) return 0; } +static int test_touch_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_TOUCH_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_TOUCH"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_touch_0 (void) { - /* InitBasicFS for touch (0): create ext2 on /dev/sda1 */ + if (test_touch_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_touch_0"); + return 0; + } + + /* InitBasicFS for test_touch_0: create ext2 on /dev/sda1 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -7036,42 +15466,53 @@ static int test_touch_0 (void) return -1; } { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } /* TestOutputTrue for touch (0) */ { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_touch (g, "/new"); + r = guestfs_touch (g, path); if (r == -1) return -1; } { + char path[] = "/new"; int r; suppress_error = 0; - r = guestfs_exists (g, "/new"); + r = guestfs_exists (g, path); if (r == -1) return -1; if (!r) { @@ -7082,9 +15523,34 @@ static int test_touch_0 (void) return 0; } +static int test_sync_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_SYNC_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_SYNC"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_sync_0 (void) { - /* InitEmpty for sync (0) */ + if (test_sync_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_sync_0"); + return 0; + } + + /* InitNone|InitEmpty for test_sync_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -7110,9 +15576,34 @@ static int test_sync_0 (void) return 0; } +static int test_mount_0_skip (void) +{ + const char *str; + + str = getenv ("SKIP_TEST_MOUNT_0"); + if (str && strcmp (str, "1") == 0) return 1; + str = getenv ("SKIP_TEST_MOUNT"); + if (str && strcmp (str, "1") == 0) return 1; + return 0; +} + static int test_mount_0 (void) { - /* InitEmpty for mount (0) */ + if (test_mount_0_skip ()) { + printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mount_0"); + return 0; + } + + /* InitNone|InitEmpty for test_mount_0 */ + { + char device[] = "/dev/sda"; + device[5] = devchar; + int r; + suppress_error = 0; + r = guestfs_blockdev_setrw (g, device); + if (r == -1) + return -1; + } { int r; suppress_error = 0; @@ -7128,46 +15619,59 @@ static int test_mount_0 (void) return -1; } /* TestOutput for mount (0) */ + char expected[] = "new file contents"; { + char device[] = "/dev/sda"; + device[5] = devchar; + char lines_0[] = ","; char *lines[] = { - ",", + lines_0, NULL }; int r; suppress_error = 0; - r = guestfs_sfdisk (g, "/dev/sda", 0, 0, 0, lines); + r = guestfs_sfdisk (g, device, 0, 0, 0, lines); if (r == -1) return -1; } { + char fstype[] = "ext2"; + char device[] = "/dev/sda1"; + device[5] = devchar; int r; suppress_error = 0; - r = guestfs_mkfs (g, "ext2", "/dev/sda1"); + r = guestfs_mkfs (g, fstype, device); if (r == -1) return -1; } { + char device[] = "/dev/sda1"; + device[5] = devchar; + char mountpoint[] = "/"; int r; suppress_error = 0; - r = guestfs_mount (g, "/dev/sda1", "/"); + r = guestfs_mount (g, device, mountpoint); if (r == -1) return -1; } { + char path[] = "/new"; + char content[] = "new file contents"; int r; suppress_error = 0; - r = guestfs_write_file (g, "/new", "new file contents", 0); + r = guestfs_write_file (g, path, content, 0); if (r == -1) return -1; } { + char path[] = "/new"; char *r; suppress_error = 0; - r = guestfs_cat (g, "/new"); + r = guestfs_cat (g, path); if (r == NULL) return -1; - if (strcmp (r, "new file contents") != 0) { - fprintf (stderr, "test_mount_0: expected \"new file contents\" but got \"%s\"\n", r); + if (strcmp (r, expected) != 0) { + fprintf (stderr, "test_mount_0: expected \"%s\" but got \"%s\"\n", expected, r); return -1; } free (r); @@ -7181,8 +15685,9 @@ int main (int argc, char *argv[]) int failed = 0; const char *srcdir; const char *filename; - int fd; + int fd, i; int nr_tests, test_num = 0; + char **devs; no_test_warnings (); @@ -7292,9 +15797,115 @@ int main (int argc, char *argv[]) exit (1); } - nr_tests = 103; + /* Detect if the appliance uses /dev/sd* or /dev/hd* in device + * names. This changed between RHEL 5 and RHEL 6 so we have to + * support both. + */ + devs = guestfs_list_devices (g); + if (devs == NULL || devs[0] == NULL) { + printf ("guestfs_list_devices FAILED\n"); + exit (1); + } + if (strncmp (devs[0], "/dev/sd", 7) == 0) + devchar = 's'; + else if (strncmp (devs[0], "/dev/hd", 7) == 0) + devchar = 'h'; + else { + printf ("guestfs_list_devices returned unexpected string '%s'\n", + devs[0]); + exit (1); + } + for (i = 0; devs[i] != NULL; ++i) + free (devs[i]); + free (devs); + + nr_tests = 140; test_num++; + printf ("%3d/%3d test_find_0\n", test_num, nr_tests); + if (test_find_0 () == -1) { + printf ("test_find_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_find_1\n", test_num, nr_tests); + if (test_find_1 () == -1) { + printf ("test_find_1 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_find_2\n", test_num, nr_tests); + if (test_find_2 () == -1) { + printf ("test_find_2 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_lvresize_0\n", test_num, nr_tests); + if (test_lvresize_0 () == -1) { + printf ("test_lvresize_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_zerofree_0\n", test_num, nr_tests); + if (test_zerofree_0 () == -1) { + printf ("test_zerofree_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_hexdump_0\n", test_num, nr_tests); + if (test_hexdump_0 () == -1) { + printf ("test_hexdump_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_strings_e_0\n", test_num, nr_tests); + if (test_strings_e_0 () == -1) { + printf ("test_strings_e_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_strings_e_1\n", test_num, nr_tests); + if (test_strings_e_1 () == -1) { + printf ("test_strings_e_1 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_strings_0\n", test_num, nr_tests); + if (test_strings_0 () == -1) { + printf ("test_strings_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_strings_1\n", test_num, nr_tests); + if (test_strings_1 () == -1) { + printf ("test_strings_1 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_equal_0\n", test_num, nr_tests); + if (test_equal_0 () == -1) { + printf ("test_equal_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_equal_1\n", test_num, nr_tests); + if (test_equal_1 () == -1) { + printf ("test_equal_1 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_equal_2\n", test_num, nr_tests); + if (test_equal_2 () == -1) { + printf ("test_equal_2 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_ping_daemon_0\n", test_num, nr_tests); + if (test_ping_daemon_0 () == -1) { + printf ("test_ping_daemon_0 FAILED\n"); + failed++; + } + test_num++; printf ("%3d/%3d test_dmesg_0\n", test_num, nr_tests); if (test_dmesg_0 () == -1) { printf ("test_dmesg_0 FAILED\n"); @@ -7601,6 +16212,144 @@ int main (int argc, char *argv[]) failed++; } test_num++; + printf ("%3d/%3d test_command_lines_0\n", test_num, nr_tests); + if (test_command_lines_0 () == -1) { + printf ("test_command_lines_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_lines_1\n", test_num, nr_tests); + if (test_command_lines_1 () == -1) { + printf ("test_command_lines_1 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_lines_2\n", test_num, nr_tests); + if (test_command_lines_2 () == -1) { + printf ("test_command_lines_2 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_lines_3\n", test_num, nr_tests); + if (test_command_lines_3 () == -1) { + printf ("test_command_lines_3 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_lines_4\n", test_num, nr_tests); + if (test_command_lines_4 () == -1) { + printf ("test_command_lines_4 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_lines_5\n", test_num, nr_tests); + if (test_command_lines_5 () == -1) { + printf ("test_command_lines_5 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_lines_6\n", test_num, nr_tests); + if (test_command_lines_6 () == -1) { + printf ("test_command_lines_6 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_lines_7\n", test_num, nr_tests); + if (test_command_lines_7 () == -1) { + printf ("test_command_lines_7 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_lines_8\n", test_num, nr_tests); + if (test_command_lines_8 () == -1) { + printf ("test_command_lines_8 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_lines_9\n", test_num, nr_tests); + if (test_command_lines_9 () == -1) { + printf ("test_command_lines_9 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_lines_10\n", test_num, nr_tests); + if (test_command_lines_10 () == -1) { + printf ("test_command_lines_10 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_0\n", test_num, nr_tests); + if (test_command_0 () == -1) { + printf ("test_command_0 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_1\n", test_num, nr_tests); + if (test_command_1 () == -1) { + printf ("test_command_1 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_2\n", test_num, nr_tests); + if (test_command_2 () == -1) { + printf ("test_command_2 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_3\n", test_num, nr_tests); + if (test_command_3 () == -1) { + printf ("test_command_3 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_4\n", test_num, nr_tests); + if (test_command_4 () == -1) { + printf ("test_command_4 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_5\n", test_num, nr_tests); + if (test_command_5 () == -1) { + printf ("test_command_5 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_6\n", test_num, nr_tests); + if (test_command_6 () == -1) { + printf ("test_command_6 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_7\n", test_num, nr_tests); + if (test_command_7 () == -1) { + printf ("test_command_7 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_8\n", test_num, nr_tests); + if (test_command_8 () == -1) { + printf ("test_command_8 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_9\n", test_num, nr_tests); + if (test_command_9 () == -1) { + printf ("test_command_9 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_10\n", test_num, nr_tests); + if (test_command_10 () == -1) { + printf ("test_command_10 FAILED\n"); + failed++; + } + test_num++; + printf ("%3d/%3d test_command_11\n", test_num, nr_tests); + if (test_command_11 () == -1) { + printf ("test_command_11 FAILED\n"); + failed++; + } + test_num++; printf ("%3d/%3d test_file_0\n", test_num, nr_tests); if (test_file_0 () == -1) { printf ("test_file_0 FAILED\n");