mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
tests/c-api: Factor out common init_* into separate functions.
This commit is contained in:
@@ -194,67 +194,30 @@ static int
|
||||
|
||||
and generate_one_test_body name i test_name init test =
|
||||
(match init with
|
||||
| InitNone (* XXX at some point, InitNone and InitEmpty became
|
||||
* folded together as the same thing. Really we should
|
||||
* make InitNone do nothing at all, but the tests may
|
||||
* need to be checked to make sure this is OK.
|
||||
*)
|
||||
| InitNone ->
|
||||
pr " if (init_none () == -1)\n";
|
||||
pr " return -1;\n"
|
||||
| InitEmpty ->
|
||||
pr " /* InitNone|InitEmpty for %s */\n" test_name;
|
||||
List.iter (generate_test_command_call test_name)
|
||||
[["blockdev_setrw"; "/dev/sda"];
|
||||
["umount_all"];
|
||||
["lvm_remove_all"]]
|
||||
pr " if (init_empty () == -1)\n";
|
||||
pr " return -1;\n"
|
||||
| InitPartition ->
|
||||
pr " /* InitPartition for %s: create /dev/sda1 */\n" test_name;
|
||||
List.iter (generate_test_command_call test_name)
|
||||
[["blockdev_setrw"; "/dev/sda"];
|
||||
["umount_all"];
|
||||
["lvm_remove_all"];
|
||||
["part_disk"; "/dev/sda"; "mbr"]]
|
||||
pr " if (init_partition () == -1)\n";
|
||||
pr " return -1;\n"
|
||||
| InitGPT ->
|
||||
pr " /* InitGPT for %s: create /dev/sda1 */\n" test_name;
|
||||
List.iter (generate_test_command_call test_name)
|
||||
[["blockdev_setrw"; "/dev/sda"];
|
||||
["umount_all"];
|
||||
["lvm_remove_all"];
|
||||
["part_disk"; "/dev/sda"; "gpt"]]
|
||||
pr " if (init_gpt () == -1)\n";
|
||||
pr " return -1;\n"
|
||||
| InitBasicFS ->
|
||||
pr " /* InitBasicFS for %s: create ext2 on /dev/sda1 */\n" test_name;
|
||||
List.iter (generate_test_command_call test_name)
|
||||
[["blockdev_setrw"; "/dev/sda"];
|
||||
["umount_all"];
|
||||
["lvm_remove_all"];
|
||||
["part_disk"; "/dev/sda"; "mbr"];
|
||||
["mkfs"; "ext2"; "/dev/sda1"; ""; "NOARG"; ""; ""];
|
||||
["mount"; "/dev/sda1"; "/"]]
|
||||
pr " if (init_basic_fs () == -1)\n";
|
||||
pr " return -1;\n"
|
||||
| InitBasicFSonLVM ->
|
||||
pr " /* InitBasicFSonLVM for %s: create ext2 on /dev/VG/LV */\n"
|
||||
test_name;
|
||||
List.iter (generate_test_command_call test_name)
|
||||
[["blockdev_setrw"; "/dev/sda"];
|
||||
["umount_all"];
|
||||
["lvm_remove_all"];
|
||||
["part_disk"; "/dev/sda"; "mbr"];
|
||||
["pvcreate"; "/dev/sda1"];
|
||||
["vgcreate"; "VG"; "/dev/sda1"];
|
||||
["lvcreate"; "LV"; "VG"; "8"];
|
||||
["mkfs"; "ext2"; "/dev/VG/LV"; ""; "NOARG"; ""; ""];
|
||||
["mount"; "/dev/VG/LV"; "/"]]
|
||||
pr " if (init_basic_fs_on_lvm () == -1)\n";
|
||||
pr " return -1;\n"
|
||||
| InitISOFS ->
|
||||
pr " /* InitISOFS for %s */\n" test_name;
|
||||
List.iter (generate_test_command_call test_name)
|
||||
[["blockdev_setrw"; "/dev/sda"];
|
||||
["umount_all"];
|
||||
["lvm_remove_all"];
|
||||
["mount_ro"; "/dev/sdd"; "/"]]
|
||||
pr " if (init_iso_fs () == -1)\n";
|
||||
pr " return -1;\n"
|
||||
| InitScratchFS ->
|
||||
pr " /* InitScratchFS for %s */\n" test_name;
|
||||
List.iter (generate_test_command_call test_name)
|
||||
[["blockdev_setrw"; "/dev/sda"];
|
||||
["umount_all"];
|
||||
["lvm_remove_all"];
|
||||
["mount"; "/dev/sdb1"; "/"]]
|
||||
pr " if (init_scratch_fs () == -1)\n";
|
||||
pr " return -1;\n"
|
||||
);
|
||||
|
||||
pr "\n";
|
||||
|
||||
@@ -35,6 +35,121 @@
|
||||
|
||||
guestfs_h *g;
|
||||
|
||||
int
|
||||
init_none (void)
|
||||
{
|
||||
/* XXX At some point in the distant past, InitNone and InitEmpty
|
||||
* became folded together as the same thing. Really we should make
|
||||
* InitNone do nothing at all, but the tests may need to be checked
|
||||
* to make sure this is OK.
|
||||
*/
|
||||
return init_empty ();
|
||||
}
|
||||
|
||||
int
|
||||
init_empty (void)
|
||||
{
|
||||
if (guestfs_blockdev_setrw (g, "/dev/sda") == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_umount_all (g) == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_lvm_remove_all (g) == -1)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
init_partition (void)
|
||||
{
|
||||
if (init_empty () == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_part_disk (g, "/dev/sda", "mbr") == -1)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
init_gpt (void)
|
||||
{
|
||||
if (init_empty () == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_part_disk (g, "/dev/sda", "gpt") == -1)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
init_basic_fs (void)
|
||||
{
|
||||
if (init_partition () == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_mkfs (g, "ext2", "/dev/sda1") == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_mount (g, "/dev/sda1", "/") == -1)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
init_basic_fs_on_lvm (void)
|
||||
{
|
||||
const char *pvs[] = { "/dev/sda1", NULL };
|
||||
|
||||
if (init_partition () == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_pvcreate (g, "/dev/sda1") == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_vgcreate (g, "VG", (char **) pvs) == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_lvcreate (g, "LV", "VG", 8) == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_mkfs (g, "ext2", "/dev/VG/LV") == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_mount (g, "/dev/VG/LV", "/") == -1)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
init_iso_fs (void)
|
||||
{
|
||||
if (init_empty () == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_mount_ro (g, "/dev/sdd", "/") == -1)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
init_scratch_fs (void)
|
||||
{
|
||||
if (init_empty () == -1)
|
||||
return -1;
|
||||
|
||||
if (guestfs_mount (g, "/dev/sdb1", "/") == -1)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
print_strings (char *const *argv)
|
||||
{
|
||||
|
||||
@@ -22,6 +22,14 @@
|
||||
extern guestfs_h *g;
|
||||
extern size_t nr_tests;
|
||||
|
||||
extern int init_none (void);
|
||||
extern int init_empty (void);
|
||||
extern int init_partition (void);
|
||||
extern int init_gpt (void);
|
||||
extern int init_basic_fs (void);
|
||||
extern int init_basic_fs_on_lvm (void);
|
||||
extern int init_iso_fs (void);
|
||||
extern int init_scratch_fs (void);
|
||||
extern size_t perform_tests (void);
|
||||
extern void no_test_warnings (void);
|
||||
extern int is_string_list (char **ret, size_t n, ...);
|
||||
|
||||
Reference in New Issue
Block a user