summaryrefslogtreecommitdiff
path: root/libparted/tests/label.c
diff options
context:
space:
mode:
authorDebarshi Ray <rishi@gnu.org>2007-05-01 10:01:50 +0530
committerDebarshi Ray <rishi@gnu.org>2007-05-01 10:01:50 +0530
commite736648c24372fd7532fef7c568a5424395b3a7a (patch)
treed8c7845f21ff35e737b7c67cb8a84abed790b241 /libparted/tests/label.c
parentecea0c9857813beae1c91b0afa39c17634b97a95 (diff)
downloadparted-e736648c24372fd7532fef7c568a5424395b3a7a.tar.gz
[tests] Separate and improved test for reading of disk labels.
Diffstat (limited to 'libparted/tests/label.c')
-rw-r--r--libparted/tests/label.c47
1 files changed, 40 insertions, 7 deletions
diff --git a/libparted/tests/label.c b/libparted/tests/label.c
index c1f8b4e..54f40c3 100644
--- a/libparted/tests/label.c
+++ b/libparted/tests/label.c
@@ -40,13 +40,6 @@ START_TEST (test_create_label)
disk = _create_disk_label (dev, type);
ped_disk_destroy (disk);
-
- /* Try to read the label */
- disk = ped_disk_new (dev);
- fail_if (!disk,
- "Failed to read the just created label of type: %s",
- type->name);
- ped_disk_destroy (disk);
}
ped_device_destroy (dev);
}
@@ -84,6 +77,39 @@ START_TEST (test_probe_label)
}
END_TEST
+/* TEST: Read the disk label of a loop device. */
+START_TEST (test_read_label)
+{
+ PedDevice* dev = ped_device_get (temporary_disk);
+ if (dev == NULL)
+ return;
+
+ PedDiskType* type;
+ PedDisk* disk;
+
+ for (type = ped_disk_type_get_next (NULL); type;
+ type = ped_disk_type_get_next (type)) {
+ if (!_implemented_disk_label (type->name))
+ continue;
+
+ disk = _create_disk_label (dev, type);
+ 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);
+ fail_if (strcmp (disk->type->name, type->name) != 0,
+ "Read returned label of type: %s as type: %s",
+ type->name, disk->type->name);
+
+ ped_disk_destroy (disk);
+ }
+ ped_device_destroy (dev);
+}
+END_TEST
+
/* TEST: Clone the disk label of a loop device. */
START_TEST (test_clone_label)
{
@@ -127,6 +153,7 @@ main (void)
Suite* suite = suite_create ("Disk Label");
TCase* tcase_basic = tcase_create ("Create");
TCase* tcase_probe = tcase_create ("Probe");
+ TCase* tcase_read = tcase_create ("Read");
TCase* tcase_clone = tcase_create ("Clone");
/* Fail when an exception is raised */
@@ -144,6 +171,12 @@ main (void)
tcase_set_timeout (tcase_probe, 0);
suite_add_tcase (suite, tcase_probe);
+ tcase_add_checked_fixture (tcase_read, create_disk, destroy_disk);
+ tcase_add_test (tcase_read, test_read_label);
+ /* Disable timeout for this test. */
+ tcase_set_timeout (tcase_read, 0);
+ suite_add_tcase (suite, tcase_read);
+
tcase_add_checked_fixture (tcase_clone, create_disk, destroy_disk);
tcase_add_test (tcase_clone, test_clone_label);
/* Disable timeout for this test. */