Please find attached a patch to add a new test for the cloning of disk labels.
I have a feeling that this is leading to too much of duplication of
code. What do you say?
Happy hacking,
Debarshi
--
GPG key ID: 63D4A5A7
Key server: pgp.mit.edu
diff --git a/libparted/tests/label.c b/libparted/tests/label.c
index 6accb91..b654817 100644
--- a/libparted/tests/label.c
+++ b/libparted/tests/label.c
@@ -56,17 +56,69 @@ START_TEST (test_create_label)
}
END_TEST
+/* TEST: Clone the disk label of a loop device. */
+START_TEST (test_clone_label)
+{
+ PedDevice *dev = ped_device_get (temporary_disk);
+ if (dev == NULL)
+ return;
+
+ PedDiskType *type;
+ PedDisk *clone;
+ PedDisk *disk;
+
+ for (type = ped_disk_type_get_next (NULL); type;
+ type = ped_disk_type_get_next (type)) {
+
+ /* Not implemented yet. */
+ if (strncmp (type->name, "aix", 3) == 0
+ || strncmp (type->name, "dvh", 3) == 0)
+ continue;
+
+ /* Create the disk label. */
+ disk = ped_disk_new_fresh (dev, type);
+ fail_if (!disk, "Failed to create a label of type: %s",
+ type->name);
+ fail_if (!ped_disk_commit(disk),
+ "Failed to commit label to device");
+ ped_disk_destroy (disk);
+
+ /* Try to read the disk label. */
+ disk = ped_disk_new (dev);
+ fail_if (!disk,
+ "Failed to read the just created label of type: %s",
+ type->name);
+
+ /* Try to clone the disk label. */
+ clone = ped_disk_duplicate (disk);
+ fail_if (!clone,
+ "Failed to clone the just created label of type: %s",
+ type->name);
+
+ ped_disk_destroy (clone);
+ ped_disk_destroy (disk);
+ }
+ ped_device_destroy (dev);
+}
+END_TEST
+
int main(void)
{
int number_failed;
Suite *suite = suite_create("Disk Label");
TCase *tcase_basic = tcase_create("Create");
+ TCase *tcase_clone = tcase_create ("Clone");
tcase_add_checked_fixture(tcase_basic, create_disk, destroy_disk);
tcase_add_test(tcase_basic, test_create_label);
tcase_set_timeout(tcase_basic, 0); /* disable timeout for this tests */
suite_add_tcase(suite, tcase_basic);
+ tcase_add_checked_fixture (tcase_clone, create_disk, destroy_disk);
+ tcase_add_test (tcase_clone, test_clone_label);
+ tcase_set_timeout (tcase_clone, 0); /* disable timeout for this test */
+ suite_add_tcase (suite, tcase_clone);
+
SRunner *srunner = srunner_create(suite);
srunner_run_all(srunner, CK_VERBOSE);
_______________________________________________
parted-devel mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/parted-devel