parted/0098-tests-check-name-when-duplicating.patch
Brian C. Lane 42ecfc7b6b - Use force for xfs in t1700 and a larger file
- Make t4100 xfs filesystem larger and sparse
- Fix part dupe with empty name
- check name when duplicating
- Add ntfs vfat hfsplus to t1700 probe test
2014-04-17 16:46:07 -07:00

83 lines
3.2 KiB
Diff

From b9fb544685bebee87311007686e6d7c93f6f2797 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Wed, 16 Apr 2014 16:51:18 -0700
Subject: [PATCH 98/99] tests: check name when duplicating
Create a second partition with a name when supported by the disk label.
Check to make sure that the duplicate has copied over the name. The goal
with this was to try to catch the bug fixed by the previous commit but I
was unable to make it fail. But this should improve our test coverage
anyway.
* tests/duplicate.c: Add a partition name test.
---
tests/duplicate.c | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)
diff --git a/tests/duplicate.c b/tests/duplicate.c
index 129537c..a9dde84 100644
--- a/tests/duplicate.c
+++ b/tests/duplicate.c
@@ -50,7 +50,7 @@ main (int argc, char **argv)
const PedGeometry *geometry = ped_geometry_new (dev, 34, 1024);
assert (geometry);
PedPartition *part = ped_partition_new (disk, part_type, fs_type,
- geometry->start, geometry->end);
+ geometry->start, geometry->end);
assert (part);
PedConstraint *constraint = ped_constraint_exact (geometry);
assert (constraint);
@@ -65,6 +65,22 @@ main (int argc, char **argv)
if (ped_partition_is_flag_available (part, PED_PARTITION_LBA))
ped_partition_set_flag (part, PED_PARTITION_LBA, 1);
+ /* Add a 2nd partition with a name (when supported) */
+ geometry = ped_geometry_new (dev, 1500, 500);
+ assert (geometry);
+ part = ped_partition_new (disk, part_type, fs_type,
+ geometry->start, geometry->end);
+ assert (part);
+ constraint = ped_constraint_exact (geometry);
+ assert (constraint);
+ assert (ped_disk_add_partition (disk, part, constraint));
+ ped_constraint_destroy (constraint);
+ assert (ped_partition_set_system (part, fs_type));
+ if (ped_partition_is_flag_available (part, PED_PARTITION_LBA))
+ ped_partition_set_flag (part, PED_PARTITION_LBA, 1);
+ if (ped_disk_type_check_feature (part->disk->type, PED_DISK_TYPE_PARTITION_NAME))
+ ped_partition_set_name(part, "foobarbaz");
+
assert (ped_disk_commit(disk));
/* Duplicate it */
@@ -114,14 +130,23 @@ main (int argc, char **argv)
/* Check the flags */
for (PedPartitionFlag flag = PED_PARTITION_FIRST_FLAG;
- flag <= PED_PARTITION_LAST_FLAG; flag++) {
+ flag <= PED_PARTITION_LAST_FLAG; flag++)
+ {
if (!ped_partition_is_flag_available(disk_part, flag))
continue;
fprintf (stderr, "Checking partition flag %d\n", flag);
fprintf (stderr, "%d ? %d\n", ped_partition_get_flag (disk_part, flag),
- ped_partition_get_flag (copy_part, flag));
+ ped_partition_get_flag (copy_part, flag));
assert (ped_partition_get_flag (disk_part, flag)
- == ped_partition_get_flag (copy_part, flag));
+ == ped_partition_get_flag (copy_part, flag));
+ }
+
+ /* Check the name, if supported */
+ if (ped_disk_type_check_feature (part->disk->type, PED_DISK_TYPE_PARTITION_NAME))
+ {
+ const char *disk_name = ped_partition_get_name(disk_part);
+ const char *copy_name = ped_partition_get_name(copy_part);
+ assert (strcmp (disk_name, copy_name) == 0);
}
}
--
1.9.0