Accepting request 525898 from home:sparschauer:branches:Base:System
- Make SUSE parted pass all tests in upstream test suite - Fix partition naming for dm devices not ending in a digit and also fix resizing of dm partitions (bsc#1056508) OBS-URL: https://build.opensuse.org/request/show/525898 OBS-URL: https://build.opensuse.org/package/show/Base:System/parted?expand=0&rev=133
This commit is contained in:
parent
528c9a93d2
commit
2142b28987
@ -1,11 +1,26 @@
|
||||
From: Petr Uzel <petr.uzel@suse.cz>
|
||||
Subject: libparted: Change partition naming for SUSE needs
|
||||
References: bsc#1056508
|
||||
Patch-mainline: no, custom SUSE patch
|
||||
|
||||
Device mapper partitions should always use the suffix "-part%d"
|
||||
for partition names. CPQ arrays and SDMMC devices should always
|
||||
use the "p%d" suffix. DAC960, ATARAID, and devices with a trailing
|
||||
number in their name should always use the "_part%d" suffix.
|
||||
All other devices should use the "%d" suffix.
|
||||
|
||||
YaST depends on this.
|
||||
|
||||
[mwilck: Fixed dm part name in _dm_add_partition(), bsc#1056508]
|
||||
[sparschauer: Fixed dm part name in _dm_resize_partition(), bsc#1056508]
|
||||
[sparschauer: Wrote the patch description]
|
||||
Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
||||
---
|
||||
libparted/arch/linux.c | 14 ++++++++++----
|
||||
1 file changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: parted-3.2/libparted/arch/linux.c
|
||||
===================================================================
|
||||
--- parted-3.2.orig/libparted/arch/linux.c
|
||||
+++ parted-3.2/libparted/arch/linux.c
|
||||
--- a/libparted/arch/linux.c
|
||||
+++ b/libparted/arch/linux.c
|
||||
@@ -2342,11 +2342,17 @@ _device_get_part_path (PedDevice const *
|
||||
result = zasprintf ("%.*s/part%d",
|
||||
(int) (path_len - 5), devpath, num);
|
||||
@ -32,7 +47,16 @@ Index: parted-3.2/libparted/arch/linux.c
|
||||
vol_name = zasprintf ("%s%s%d",
|
||||
dev_name,
|
||||
- isdigit (dev_name[name_len - 1]) ? "p" : "",
|
||||
+ isdigit (dev_name[name_len - 1]) ? "-part" : "",
|
||||
+ "-part",
|
||||
part->num);
|
||||
if (vol_name == NULL)
|
||||
goto err;
|
||||
@@ -2870,7 +2876,7 @@ _dm_resize_partition (PedDisk* disk, con
|
||||
size_t name_len = strlen (dev_name);
|
||||
vol_name = zasprintf ("%s%s%d",
|
||||
dev_name,
|
||||
- isdigit (dev_name[name_len - 1]) ? "p" : "",
|
||||
+ "-part",
|
||||
part->num);
|
||||
if (vol_name == NULL)
|
||||
goto err;
|
||||
|
@ -1,3 +1,21 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 13 13:54:45 UTC 2017 - sparschauer@suse.de
|
||||
|
||||
- Make SUSE parted pass all tests in upstream test suite
|
||||
- add: tests-set-optimal-blocks-for-scsi_debug.patch
|
||||
- add: tests-increase-scsi_debug-tmo.patch
|
||||
- add: tests-use-wait_for_dev_to_-functions.patch
|
||||
- add: tests-wait_for_-loop.patch
|
||||
- add: tests-update-t0220-t0280-for-swap-flag.patch
|
||||
- add: tests-adapt-to-SUSE.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 13 10:30:16 CEST 2017 - sparschauer@suse.de
|
||||
|
||||
- Fix partition naming for dm devices not ending in a digit and
|
||||
also fix resizing of dm partitions (bsc#1056508)
|
||||
- amend: libparted-partition-naming.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 24 16:51:37 CEST 2017 - sparschauer@suse.de
|
||||
|
||||
|
14
parted.spec
14
parted.spec
@ -79,6 +79,14 @@ Patch50: libparted-dasd-add-swap-flag-handling-for-DASD-CDL.patch
|
||||
Patch51: parted-mkpart-allow-empty-gpt-part-name.patch
|
||||
Patch52: libparted-fix-starting-CHS-in-protective-MBR.patch
|
||||
Patch100: parted-fatresize-autoconf.patch
|
||||
# Upstream tests patches
|
||||
Patch150: tests-set-optimal-blocks-for-scsi_debug.patch
|
||||
Patch151: tests-increase-scsi_debug-tmo.patch
|
||||
Patch152: tests-use-wait_for_dev_to_-functions.patch
|
||||
Patch153: tests-wait_for_-loop.patch
|
||||
Patch154: tests-update-t0220-t0280-for-swap-flag.patch
|
||||
# SUSE tests patches
|
||||
Patch200: tests-adapt-to-SUSE.patch
|
||||
BuildRequires: check-devel
|
||||
BuildRequires: device-mapper-devel >= 1.02.33
|
||||
BuildRequires: e2fsprogs-devel
|
||||
@ -171,6 +179,12 @@ to develop applications that require these.
|
||||
%patch51 -p1
|
||||
%patch52 -p1
|
||||
%patch100 -p1
|
||||
%patch150 -p1
|
||||
%patch151 -p1
|
||||
%patch152 -p1
|
||||
%patch153 -p1
|
||||
%patch154 -p1
|
||||
%patch200 -p1
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags} `ncursesw6-config --cflags`"
|
||||
|
254
tests-adapt-to-SUSE.patch
Normal file
254
tests-adapt-to-SUSE.patch
Normal file
@ -0,0 +1,254 @@
|
||||
From: Sebastian Parschauer <sparschauer@suse.de>
|
||||
Date: Wed Sep 13 11:14:42 2017 +0200
|
||||
Subject: tests: Adapt to SUSE parted
|
||||
Patch-mainline: no, custom SUSE patch
|
||||
|
||||
msdos type flag
|
||||
Tests: t0283, t2200, t2310, t3200, t3300, t4100, t6002, t9042
|
||||
For: parted-type.patch
|
||||
|
||||
Change dm partition name from 'pN' to '-partN'
|
||||
Tests: t6001, t6002, t6004, t6005
|
||||
For: libparted-partition-naming.patch
|
||||
---
|
||||
--- a/tests/t2200-dos-label-recog.sh
|
||||
+++ b/tests/t2200-dos-label-recog.sh
|
||||
@@ -45,7 +45,7 @@ printf FAT | dd bs=1c seek=82 count=3 of
|
||||
# print the partition table
|
||||
parted -m -s $dev unit s p > out || fail=1
|
||||
tail -2 out > k && mv k out || fail=1
|
||||
-printf "1:2048s:4095s:2048s:::;\n2:4096s:8191s:4096s:::;\n" > exp || fail=1
|
||||
+printf "1:2048s:4095s:2048s:::type=83;\n2:4096s:8191s:4096s:::type=83;\n" > exp || fail=1
|
||||
|
||||
compare exp out || fail=1
|
||||
|
||||
--- a/tests/t2310-dos-extended-2-sector-min-offset.sh
|
||||
+++ b/tests/t2310-dos-extended-2-sector-min-offset.sh
|
||||
@@ -33,8 +33,8 @@ p5=${scsi_dev}5
|
||||
cat <<EOF > exp || framework_failure
|
||||
BYT;
|
||||
$scsi_dev:$((2048*512/$ss))s:scsi:$ss:$ss:msdos:Linux scsi_debug:;
|
||||
-1:64s:128s:65s:::lba;
|
||||
-5:65s:128s:64s:::;
|
||||
+1:64s:128s:65s:::lba, type=0f;
|
||||
+5:65s:128s:64s:::type=83;
|
||||
EOF
|
||||
|
||||
# Create a DOS label with an extended partition starting at sector 64.
|
||||
--- a/tests/t3200-resize-partition.sh
|
||||
+++ b/tests/t3200-resize-partition.sh
|
||||
@@ -75,7 +75,7 @@ compare /dev/null err || fail=1
|
||||
parted -m -s $dev u s p > out 2>&1 || fail=1
|
||||
|
||||
sed -n 3p out > k && mv k out || fail=1
|
||||
-printf "1:$default_start:$new_end:3073s:::$ms;\n" > exp || fail=1
|
||||
+printf "1:$default_start:$new_end:3073s:::type=83;\n" > exp || fail=1
|
||||
compare exp out || fail=1
|
||||
|
||||
# Remove the partition explicitly, so that mklabel doesn't evoke a warning.
|
||||
--- a/tests/t3300-palo-prep.sh
|
||||
+++ b/tests/t3300-palo-prep.sh
|
||||
@@ -20,9 +20,9 @@
|
||||
ss=$sector_size_
|
||||
|
||||
cat > exp <<EOF || framework_failure
|
||||
-1:2048s:4095s:2048s:ext2::lba, palo;
|
||||
-1:2048s:4095s:2048s:ext2::lba, prep;
|
||||
-1:2048s:4095s:2048s:ext2::lba, palo;
|
||||
+1:2048s:4095s:2048s:ext2::lba, palo, type=f0;
|
||||
+1:2048s:4095s:2048s:ext2::lba, prep, type=41;
|
||||
+1:2048s:4095s:2048s:ext2::lba, palo, type=f0;
|
||||
EOF
|
||||
|
||||
dev=dev-file
|
||||
@@ -37,7 +37,7 @@ parted -m -s $dev mklabel msdos \
|
||||
set 1 palo on u s print \
|
||||
> out 2> err || fail=1
|
||||
|
||||
-grep -E '^1:2048s:4095s:2048s:ext2::lba, p...;$' out > k; mv k out
|
||||
+grep -E '^1:2048s:4095s:2048s:ext2::lba, p..., type=..;$' out > k; mv k out
|
||||
|
||||
compare exp out || fail=1
|
||||
|
||||
--- a/tests/t4100-msdos-starting-sector.sh
|
||||
+++ b/tests/t4100-msdos-starting-sector.sh
|
||||
@@ -56,7 +56,7 @@ cat <<EOF > exp || fail=1
|
||||
BYT;
|
||||
path:${N}s:file:$ss:$ss:msdos::;
|
||||
1:32s:2047s:2016s:free;
|
||||
-1:2048s:4095s:2048s:::;
|
||||
+1:2048s:4095s:2048s:::type=83;
|
||||
EOF
|
||||
|
||||
# create a partition at the end of the label
|
||||
--- a/tests/t6001-psep.sh
|
||||
+++ b/tests/t6001-psep.sh
|
||||
@@ -31,9 +31,9 @@ linear2_=plinear-$$foo
|
||||
d1= d2=
|
||||
f1= f2=
|
||||
cleanup_fn_() {
|
||||
- dmsetup remove ${linear_}p1
|
||||
+ dmsetup remove ${linear_}-part1
|
||||
dmsetup remove $linear_
|
||||
- dmsetup remove ${linear2_}1
|
||||
+ dmsetup remove ${linear2_}-part1
|
||||
dmsetup remove $linear2_
|
||||
test -n "$d1" && losetup -d "$d1"
|
||||
test -n "$d2" && losetup -d "$d2"
|
||||
@@ -56,7 +56,7 @@ parted -s $dev mklabel msdos mkpart prim
|
||||
compare /dev/null out || fail=1
|
||||
|
||||
#make sure device name is correct
|
||||
-wait_for_dev_to_appear_ ${dev}p1 || fail=1
|
||||
+wait_for_dev_to_appear_ ${dev}-part1 || fail=1
|
||||
|
||||
#repeat on name not ending in a digit
|
||||
# setup: create a mapping
|
||||
@@ -68,7 +68,7 @@ parted -s $dev mklabel msdos mkpart prim
|
||||
compare /dev/null out || fail=1
|
||||
|
||||
#make sure device name is correct
|
||||
-wait_for_dev_to_appear_ ${dev}1 || fail=1
|
||||
+wait_for_dev_to_appear_ ${dev}-part1 || fail=1
|
||||
|
||||
if [ -n "$fail" ]; then
|
||||
ls /dev/mapper
|
||||
--- a/tests/t6004-dm-many-partitions.sh
|
||||
+++ b/tests/t6004-dm-many-partitions.sh
|
||||
@@ -50,10 +50,10 @@ parted -m -a min -s /dev/mapper/$dm_name
|
||||
|
||||
# Make sure all the partitions appeared under /dev/mapper/
|
||||
for ((i=1; i<=$n_partitions; i+=1)); do
|
||||
- wait_for_dev_to_appear_ "/dev/mapper/${dm_name}p$i" || { fail=1; break; }
|
||||
+ wait_for_dev_to_appear_ "/dev/mapper/${dm_name}-part$i" || { fail=1; break; }
|
||||
|
||||
# remove the partitions as we go, otherwise cleanup won't work.
|
||||
- dmsetup remove /dev/mapper/${dm_name}p$i
|
||||
+ dmsetup remove /dev/mapper/${dm_name}-part$i
|
||||
done
|
||||
|
||||
Exit $fail
|
||||
--- a/tests/t6005-dm-uuid.sh
|
||||
+++ b/tests/t6005-dm-uuid.sh
|
||||
@@ -47,14 +47,14 @@ for ((i=1; i<=$n_partitions; i+=1)); do
|
||||
cmd="$cmd mkpart p$i ${s}s ${s}s"
|
||||
done
|
||||
parted -m -a min -s /dev/mapper/$dm_name mklabel gpt $cmd > /dev/null 2>&1 || fail=1
|
||||
-wait_for_dev_to_appear_ /dev/mapper/${dm_name}p${n_partitions} || fail=1
|
||||
+wait_for_dev_to_appear_ /dev/mapper/${dm_name}-part${n_partitions} || fail=1
|
||||
|
||||
# Make sure all the partitions have UUIDs
|
||||
for ((i=1; i<=$n_partitions; i+=1)); do
|
||||
- dmsetup info /dev/mapper/${dm_name}p$i | grep UUID || fail=1
|
||||
+ dmsetup info /dev/mapper/${dm_name}-part$i | grep UUID || fail=1
|
||||
|
||||
# remove the partitions as we go, otherwise cleanup won't work.
|
||||
- dmsetup remove /dev/mapper/${dm_name}p$i
|
||||
+ dmsetup remove /dev/mapper/${dm_name}-part$i
|
||||
done
|
||||
|
||||
Exit $fail
|
||||
--- a/tests/t0283-overlap-partitions.sh
|
||||
+++ b/tests/t0283-overlap-partitions.sh
|
||||
@@ -54,8 +54,8 @@ Partition Table: msdos
|
||||
Disk Flags:
|
||||
|
||||
Number Start End Size Type File system Flags
|
||||
- 1 1049kB 5243kB 4194kB primary
|
||||
- 2 5242kB 8000kB 2758kB primary
|
||||
+ 1 1049kB 5243kB 4194kB primary type=83
|
||||
+ 2 5242kB 8000kB 2758kB primary type=83
|
||||
|
||||
(parted) rm
|
||||
Partition number? 2
|
||||
@@ -94,7 +94,7 @@ Partition Table: msdos
|
||||
Disk Flags:
|
||||
|
||||
Number Start End Size Type File system Flags
|
||||
- 1 1049kB 5243kB 4194kB primary
|
||||
+ 1 1049kB 5243kB 4194kB primary type=83
|
||||
|
||||
(parted) rm
|
||||
Partition number? 1
|
||||
--- a/tests/t6002-dm-busy.sh
|
||||
+++ b/tests/t6002-dm-busy.sh
|
||||
@@ -35,9 +35,9 @@ d1=
|
||||
f1=
|
||||
dev=
|
||||
cleanup_fn_() {
|
||||
- umount "${dev}p2" > /dev/null 2>&1
|
||||
- dmsetup remove ${linear_}p1
|
||||
- dmsetup remove ${linear_}p2
|
||||
+ umount "${dev}-part2" > /dev/null 2>&1
|
||||
+ dmsetup remove ${linear_}-part1
|
||||
+ dmsetup remove ${linear_}-part2
|
||||
dmsetup remove $linear_
|
||||
test -n "$d1" && losetup -d "$d1"
|
||||
rm -f "$f1"
|
||||
@@ -62,14 +62,14 @@ parted -s $dev -a none mkpart primary fa
|
||||
compare /dev/null out || fail=1
|
||||
|
||||
# wait for new partition device to appear
|
||||
-wait_for_dev_to_appear_ ${dev}p2 || fail_ ${dev}p2 did not appear
|
||||
+wait_for_dev_to_appear_ ${dev}-part2 || fail_ ${dev}-part2 did not appear
|
||||
|
||||
-mkfs.vfat -F 32 ${dev}p2 || fail_ mkfs.vfat failed
|
||||
+mkfs.vfat -F 32 ${dev}-part2 || fail_ mkfs.vfat failed
|
||||
|
||||
mount_point=$(pwd)/mnt
|
||||
|
||||
mkdir $mount_point || fail=1
|
||||
-mount "${dev}p2" "$mount_point" || fail=1
|
||||
+mount "${dev}-part2" "$mount_point" || fail=1
|
||||
|
||||
# Removal of unmounted partition must succeed.
|
||||
parted -s "$dev" rm 1 > /dev/null 2>&1 || fail=1
|
||||
@@ -84,7 +84,7 @@ sed "s,^$dev,DEV," out > k; mv k out
|
||||
cat <<EOF >> exp || fail=1
|
||||
BYT;
|
||||
DEV:${n}s:dm:512:512:msdos:Linux device-mapper (linear):;
|
||||
-2:1001s:200000s:199000s:fat32::lba;
|
||||
+2:1001s:200000s:199000s:fat32::lba, type=0c;
|
||||
EOF
|
||||
|
||||
compare exp out || fail=1
|
||||
--- a/tests/t9042-dos-partition-limit.sh
|
||||
+++ b/tests/t9042-dos-partition-limit.sh
|
||||
@@ -41,7 +41,7 @@ scsi_dev=$(cat dev-name)
|
||||
n=$((n_MiB * sectors_per_MiB))
|
||||
printf '%s\n' "BYT;" \
|
||||
"$scsi_dev:${n}s:scsi:$ss:$ss:msdos:Linux scsi_debug:;" \
|
||||
- "1:$((start-2))s:$((n-1))s:$((n-start+2))s:::lba;" \
|
||||
+ "1:$((start-2))s:$((n-1))s:$((n-start+2))s:::lba, type=0f;" \
|
||||
> exp || fail=1
|
||||
|
||||
parted -s $scsi_dev mklabel msdos || fail=1
|
||||
@@ -51,7 +51,7 @@ i=1
|
||||
while :; do
|
||||
end=$((start + partition_sectors - 2))
|
||||
parted -s -a min $scsi_dev mkpart logical ${start}s ${end}s || fail=1
|
||||
- printf "$((i+4)):${start}s:${end}s:$((end-start+1))s:::;\n" >> exp
|
||||
+ printf "$((i+4)):${start}s:${end}s:$((end-start+1))s:::type=83;\n" >> exp
|
||||
test $i = $((n_partitions - 1)) && break
|
||||
start=$((start + partition_sectors))
|
||||
i=$((i+1))
|
||||
--- a/tests/t4100-msdos-partition-limits.sh
|
||||
+++ b/tests/t4100-msdos-partition-limits.sh
|
||||
@@ -81,7 +81,7 @@ do_mkpart $n $end || fail=1
|
||||
# print the result
|
||||
parted -s $dev unit s p > out 2>&1 || fail=1
|
||||
sed -n "/^ *1 *$n/s/ */ /gp" out|sed "s/ *\$//" > k && mv k out || fail=1
|
||||
-echo " 1 ${n}s ${end}s 4294967295s primary" > exp || fail=1
|
||||
+echo " 1 ${n}s ${end}s 4294967295s primary type=83" > exp || fail=1
|
||||
compare exp out || fail=1
|
||||
|
||||
# a partition length of exactly 2^32 sectors provokes failure.
|
||||
@@ -121,7 +121,7 @@ Partition Table: $table_type
|
||||
Disk Flags:
|
||||
|
||||
Number Start End Size Type File system Flags
|
||||
- 1 4294967295s 4294968294s 1000s primary
|
||||
+ 1 4294967295s 4294968294s 1000s primary type=83
|
||||
|
||||
EOF
|
||||
|
40
tests-increase-scsi_debug-tmo.patch
Normal file
40
tests-increase-scsi_debug-tmo.patch
Normal file
@ -0,0 +1,40 @@
|
||||
From: "Brian C. Lane" <bcl@redhat.com>
|
||||
Date: Fri, 24 Feb 2017 11:06:20 -0800
|
||||
Subject: Increase timeout for rmmod scsi_debug and make it a
|
||||
framework failure
|
||||
For: upstream code
|
||||
Patch-mainline: v3.3
|
||||
Git-commit: 40e55a0819862d5dbe2098803735f8c48fb30b6d
|
||||
|
||||
On some hardware scsi_debug can take longer to remove. If this fails it
|
||||
inevitably results in the next test failing since it cannot load
|
||||
scsi_debug.
|
||||
|
||||
Increse the timeout to 40 loops (8 seconds), and if it hits the limit
|
||||
without succeeding call framework_failure_
|
||||
|
||||
Acked-by: Sebastian Parschauer <sparschauer@suse.de>
|
||||
---
|
||||
tests/t-local.sh | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/t-local.sh b/tests/t-local.sh
|
||||
index 5655e0f..fb6a7e3 100644
|
||||
--- a/tests/t-local.sh
|
||||
+++ b/tests/t-local.sh
|
||||
@@ -27,13 +27,14 @@ scsi_debug_cleanup_()
|
||||
# "Module scsi_debug is in use".
|
||||
i=0
|
||||
udevadm settle
|
||||
- while [ $i -lt 10 ] ; do
|
||||
+ while [ $i -lt 40 ] ; do
|
||||
rmmod scsi_debug \
|
||||
&& { test "$VERBOSE" = yes && warn_ $ME_ rmmod scsi_debug...; break; }
|
||||
sleep .2 || sleep 1
|
||||
i=$((i + 1))
|
||||
done
|
||||
udevadm settle
|
||||
+ test $i = 40 && framework_failure_ rmmod scsi_debug failed.
|
||||
fi
|
||||
rm -fr $scsi_debug_lock_dir_
|
||||
}
|
30
tests-set-optimal-blocks-for-scsi_debug.patch
Normal file
30
tests-set-optimal-blocks-for-scsi_debug.patch
Normal file
@ -0,0 +1,30 @@
|
||||
From: "Brian C. Lane" <bcl@redhat.com>
|
||||
Date: Tue, 23 Aug 2016 08:55:18 -0700
|
||||
Subject: tests: Set optimal blocks to 64 for scsi_debug devices
|
||||
For: upstream code
|
||||
Patch-mainline: v3.3
|
||||
Git-commit: da36186cb4c2c0470a6490aed424a8d51a2b1085
|
||||
|
||||
The Linux kernel 4.5 changed the optimal blocks count from 64 to 1024
|
||||
This causes tests using scsi_debug devices to fail because of alignment
|
||||
issues. Set the opt_blks to 64 so that we have consistent behavior
|
||||
across kernels.
|
||||
|
||||
Acked-by: Sebastian Parschauer <sparschauer@suse.de>
|
||||
---
|
||||
tests/t-local.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/t-local.sh b/tests/t-local.sh
|
||||
index b40a5a0..5655e0f 100644
|
||||
--- a/tests/t-local.sh
|
||||
+++ b/tests/t-local.sh
|
||||
@@ -97,7 +97,7 @@ scsi_debug_setup_()
|
||||
# It is not trivial to determine the name of the device we're creating.
|
||||
# Record the names of all /sys/block/sd* devices *before* probing:
|
||||
touch stamp
|
||||
- modprobe scsi_debug "$@" || { rm -f stamp; return 1; }
|
||||
+ modprobe scsi_debug opt_blks=64 "$@" || { rm -f stamp; return 1; }
|
||||
scsi_debug_modprobe_succeeded_=1
|
||||
test "$VERBOSE" = yes \
|
||||
&& echo $ME_ modprobe scsi_debug succeeded 1>&2
|
45
tests-update-t0220-t0280-for-swap-flag.patch
Normal file
45
tests-update-t0220-t0280-for-swap-flag.patch
Normal file
@ -0,0 +1,45 @@
|
||||
From: "Brian C. Lane" <bcl@redhat.com>
|
||||
Date: Thu, 22 Dec 2016 16:59:27 -0800
|
||||
Subject: tests: Update t0220 and t0280 for the swap flag.
|
||||
For: libparted-set-swap-flag-on-GPT-partitions.patch
|
||||
For: parted-mkpart-set-a-swap-flag-if-available.patch
|
||||
For: libparted-dasd-add-swap-flag-handling-for-DASD-CDL.patch
|
||||
Patch-mainline: v3.3
|
||||
Git-commit: 5a9a49776ee98ca86cfe123b79bbee2279f93961
|
||||
|
||||
Acked-by: Sebastian Parschauer <sparschauer@suse.de>
|
||||
---
|
||||
tests/t0220-gpt-msftres.sh | 6 +++++-
|
||||
tests/t0280-gpt-corrupt.sh | 2 +-
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tests/t0220-gpt-msftres.sh b/tests/t0220-gpt-msftres.sh
|
||||
index 79518ae6b342..6721a470b111 100755
|
||||
--- a/tests/t0220-gpt-msftres.sh
|
||||
+++ b/tests/t0220-gpt-msftres.sh
|
||||
@@ -56,7 +56,11 @@ printf "BYT;\n$dev:${n_sectors}s:file:$ss:$ss:gpt::;\n" > exp
|
||||
i=1
|
||||
for type in $fs_types; do
|
||||
end=$(expr $start + $part_size - 1)
|
||||
- case $type in fat*|NTFS) flag=msftdata;; *) flag=;; esac
|
||||
+ case $type in
|
||||
+ fat*|NTFS) flag=msftdata;;
|
||||
+ linux-swap) flag=swap;;
|
||||
+ *) flag=;;
|
||||
+ esac
|
||||
echo "$i:${start}s:${end}s:${part_size}s::$type:$flag;" >> exp || fail=1
|
||||
parted -s $dev mkpart p-name $type ${start}s ${end}s > err 2>&1 || fail=1
|
||||
compare /dev/null err || fail=1
|
||||
diff --git a/tests/t0280-gpt-corrupt.sh b/tests/t0280-gpt-corrupt.sh
|
||||
index a7c8d82291e5..1b4d86b094ea 100755
|
||||
--- a/tests/t0280-gpt-corrupt.sh
|
||||
+++ b/tests/t0280-gpt-corrupt.sh
|
||||
@@ -89,7 +89,7 @@ compare exp err || fail=1
|
||||
parted -m -s $dev u s print > out 2>&1 || fail=1
|
||||
|
||||
# check for expected output
|
||||
-printf "BYT;\nfile\n1:2048s:4095s:2048s::foo:;\n" > exp || fail=1
|
||||
+printf "BYT;\nfile\n1:2048s:4095s:2048s::foo:swap;\n" > exp || fail=1
|
||||
sed "s/.*gpt::;/file/" out > k && mv k out || fail=1
|
||||
compare exp out || fail=1
|
||||
|
185
tests-use-wait_for_dev_to_-functions.patch
Normal file
185
tests-use-wait_for_dev_to_-functions.patch
Normal file
@ -0,0 +1,185 @@
|
||||
From: "Brian C. Lane" <bcl@redhat.com>
|
||||
Date: Fri, 7 Aug 2015 11:43:17 -0700
|
||||
Subject: tests: Use wait_for_dev_to_ functions
|
||||
For: upstream code
|
||||
Patch-mainline: v3.3
|
||||
Git-commit: db1728e6402a27fe64e8e132f810c22160ab8bcc
|
||||
|
||||
Recent changes to udev have made some long-standing problems appear more
|
||||
frequently. udev executes various actions when changes are made to
|
||||
devices. Sometimes this can result in device nodes not appearing
|
||||
immediately. Other times it can result in EBUSY being returned. This
|
||||
patch only addresses devices that are slow to appear/disappear.
|
||||
|
||||
It is best to use the wait_for_dev_to_appear_ and
|
||||
wait_for_dev_to_disappear_ functions than to test for existance. These
|
||||
will loop and wait for up to 2 seconds for it to appear.
|
||||
|
||||
This also changes t9041 to fail if mkfs doesn't work since using skip
|
||||
here may hide cases when the device node doesn't appear.
|
||||
|
||||
[sparschauer: remove hunks for non-existing tests]
|
||||
Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
||||
---
|
||||
tests/t1100-busy-label.sh | 10 ++--------
|
||||
tests/t1102-loop-label.sh | 25 +++++--------------------
|
||||
tests/t2320-dos-extended-noclobber.sh | 1 +
|
||||
tests/t6001-psep.sh | 4 ++--
|
||||
tests/t6004-dm-many-partitions.sh | 6 ++----
|
||||
tests/t6006-dm-512b-sectors.sh | 1 +
|
||||
tests/t6100-mdraid-partitions.sh | 5 +++--
|
||||
tests/t9041-undetected-in-use-16th-partition.sh | 2 +-
|
||||
8 files changed, 17 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/tests/t1100-busy-label.sh b/tests/t1100-busy-label.sh
|
||||
index 4e256d32a010..70e8edec8a60 100755
|
||||
--- a/tests/t1100-busy-label.sh
|
||||
+++ b/tests/t1100-busy-label.sh
|
||||
@@ -27,22 +27,16 @@ dev=$(cat dev-name)
|
||||
|
||||
parted -s "$dev" mklabel msdos mkpart primary fat32 1 40 > out 2>&1 || fail=1
|
||||
compare /dev/null out || fail=1
|
||||
-mkfs.vfat ${dev}1 || skip_ "mkfs.vfat failed"
|
||||
+wait_for_dev_to_appear_ ${dev}1 || fail=1
|
||||
+mkfs.vfat ${dev}1 || fail=1
|
||||
|
||||
mount_point="`pwd`/mnt"
|
||||
|
||||
# Be sure to unmount upon interrupt, failure, etc.
|
||||
cleanup_fn_() { umount "${dev}1" > /dev/null 2>&1; }
|
||||
|
||||
-# There's a race condition here: on udev-based systems, the partition#1
|
||||
-# device, ${dev}1 (i.e., /dev/sdd1) is not created immediately, and
|
||||
-# without some delay, this mount command would fail. Using a flash card
|
||||
-# as $dev, the loop below typically iterates 7-20 times.
|
||||
-
|
||||
# create mount point dir. and mount the just-created partition on it
|
||||
mkdir $mount_point || fail=1
|
||||
-i=0; while :; do test -e "${dev}1" && break; test $i = 90 && break;
|
||||
- i=$(expr $i + 1); done;
|
||||
mount "${dev}1" $mount_point || fail=1
|
||||
|
||||
# now that a partition is mounted, mklabel attempt must fail
|
||||
diff --git a/tests/t1102-loop-label.sh b/tests/t1102-loop-label.sh
|
||||
index 97520021004d..68b9af45b428 100644
|
||||
--- a/tests/t1102-loop-label.sh
|
||||
+++ b/tests/t1102-loop-label.sh
|
||||
@@ -44,15 +44,9 @@ mv out o2 && sed -e "s,$dev,DEVICE,;s/ *$//" o2 > out
|
||||
|
||||
compare exp out || fail=1
|
||||
parted -s $dev rm 1 || fail=1
|
||||
-if [ -e ${dev}1 ]; then
|
||||
- echo "Partition should not exist on loop device"
|
||||
- fail=1
|
||||
-fi
|
||||
+wait_for_dev_to_disappear_ ${dev}1 2 || fail=1
|
||||
partprobe $dev || fail=1
|
||||
-if [ -e ${dev}1 ]; then
|
||||
- echo "Partition should not exist on loop device"
|
||||
- fail=1
|
||||
-fi
|
||||
+wait_for_dev_to_disappear_ ${dev}1 2 || fail=1
|
||||
|
||||
mount_point="`pwd`/mnt"
|
||||
|
||||
@@ -80,24 +74,15 @@ umount "$mount_point"
|
||||
|
||||
# make sure partprobe cleans up stale partition devices
|
||||
parted -s $dev mklabel msdos mkpart primary ext2 0% 100% || fail=1
|
||||
-if [ ! -e ${dev}1 ]; then
|
||||
- echo "Partition doesn't exist on loop device"
|
||||
- fail=1
|
||||
-fi
|
||||
+wait_for_dev_to_appear_ ${dev}1 || fail=1
|
||||
|
||||
mke2fs -F $dev
|
||||
partprobe $dev || fail=1
|
||||
-if [ -e ${dev}1 ]; then
|
||||
- echo "Partition should not exist on loop device"
|
||||
- fail=1
|
||||
-fi
|
||||
+wait_for_dev_to_disappear_ ${dev}1 2 || fail=1
|
||||
|
||||
# make sure new loop label removes old partitions > 1
|
||||
parted -s $dev mklabel msdos mkpart primary ext2 0% 50% mkpart primary ext2 50% 100% || fail=1
|
||||
parted -s $dev mklabel loop || fail=1
|
||||
-if [ -e ${dev}2 ]; then
|
||||
- echo "Partition 2 not removed"
|
||||
- fail=1
|
||||
-fi
|
||||
+wait_for_dev_to_disappear_ ${dev}2 2 || fail=1
|
||||
|
||||
Exit $fail
|
||||
diff --git a/tests/t6001-psep.sh b/tests/t6001-psep.sh
|
||||
index f15090abb3e7..4c758e8fbc73 100644
|
||||
--- a/tests/t6001-psep.sh
|
||||
+++ b/tests/t6001-psep.sh
|
||||
@@ -54,7 +54,7 @@ parted -s $dev mklabel msdos mkpart primary fat32 1m 5m > out 2>&1 || fail=1
|
||||
compare /dev/null out || fail=1
|
||||
|
||||
#make sure device name is correct
|
||||
-test -e ${dev}p1 || fail=1
|
||||
+wait_for_dev_to_appear_ ${dev}p1 || fail=1
|
||||
|
||||
#repeat on name not ending in a digit
|
||||
# setup: create a mapping
|
||||
@@ -66,7 +66,7 @@ parted -s $dev mklabel msdos mkpart primary fat32 1m 5m > out 2>&1 || fail=1
|
||||
compare /dev/null out || fail=1
|
||||
|
||||
#make sure device name is correct
|
||||
-test -e ${dev}1 || fail=1
|
||||
+wait_for_dev_to_appear_ ${dev}1 || fail=1
|
||||
|
||||
if [ -n "$fail" ]; then
|
||||
ls /dev/mapper
|
||||
diff --git a/tests/t6004-dm-many-partitions.sh b/tests/t6004-dm-many-partitions.sh
|
||||
index 8d291ef55664..7ebc48a18db8 100755
|
||||
--- a/tests/t6004-dm-many-partitions.sh
|
||||
+++ b/tests/t6004-dm-many-partitions.sh
|
||||
@@ -49,10 +49,8 @@ parted -m -a min -s /dev/mapper/$dm_name mklabel gpt $cmd > /dev/null 2>&1 || fa
|
||||
|
||||
# Make sure all the partitions appeared under /dev/mapper/
|
||||
for ((i=1; i<=$n_partitions; i+=1)); do
|
||||
- if [ ! -e "/dev/mapper/${dm_name}p$i" ]; then
|
||||
- fail=1
|
||||
- break
|
||||
- fi
|
||||
+ wait_for_dev_to_appear_ "/dev/mapper/${dm_name}p$i" || { fail=1; break; }
|
||||
+
|
||||
# remove the partitions as we go, otherwise cleanup won't work.
|
||||
dmsetup remove /dev/mapper/${dm_name}p$i
|
||||
done
|
||||
diff --git a/tests/t6100-mdraid-partitions.sh b/tests/t6100-mdraid-partitions.sh
|
||||
index 6f08442dd66d..dbc5986b9019 100755
|
||||
--- a/tests/t6100-mdraid-partitions.sh
|
||||
+++ b/tests/t6100-mdraid-partitions.sh
|
||||
@@ -54,13 +54,14 @@ parted -s $md_dev mklabel gpt \
|
||||
compare /dev/null out || fail=1
|
||||
|
||||
# Verify that kernel has been informed about the second device.
|
||||
-grep "${md_name}p2" /proc/partitions || { fail=1; cat /proc/partitions; }
|
||||
+wait_for_dev_to_appear_ ${md_dev}p2 || { fail=1; cat /proc/partitions; }
|
||||
|
||||
# Remove partitions from the raid device.
|
||||
parted -s $md_dev rm 2 rm 1 > out 2>&1 || fail=1
|
||||
compare /dev/null out || fail=1
|
||||
|
||||
# Verify that kernel has been informed about those removals.
|
||||
-grep "${md_name}p[12]" /proc/partitions && { fail=1; cat /proc/partitions; }
|
||||
+wait_for_dev_to_disappear_ ${md_dev}p1 2 || { fail=1; cat /proc/partitions; }
|
||||
+wait_for_dev_to_disappear_ ${md_dev}p2 2 || { fail=1; cat /proc/partitions; }
|
||||
|
||||
Exit $fail
|
||||
diff --git a/tests/t9041-undetected-in-use-16th-partition.sh b/tests/t9041-undetected-in-use-16th-partition.sh
|
||||
index edaae1bf8116..673e508319a3 100644
|
||||
--- a/tests/t9041-undetected-in-use-16th-partition.sh
|
||||
+++ b/tests/t9041-undetected-in-use-16th-partition.sh
|
||||
@@ -72,7 +72,7 @@ wait_for_dev_to_appear_ ${scsi_dev}16 || fail_ ${scsi_dev}16 did not appear
|
||||
|
||||
partitions="${scsi_dev}14 ${scsi_dev}15 ${scsi_dev}16"
|
||||
for i in $partitions; do
|
||||
- mkfs.ext3 $i || skip_ mkfs.ext3 $i failed
|
||||
+ mkfs.ext3 $i || fail=1
|
||||
done
|
||||
|
||||
# be sure to unmount upon interrupt, failure, etc.
|
119
tests-wait_for_-loop.patch
Normal file
119
tests-wait_for_-loop.patch
Normal file
@ -0,0 +1,119 @@
|
||||
From: "Brian C. Lane" <bcl@redhat.com>
|
||||
Date: Tue, 1 Mar 2016 10:38:26 -0800
|
||||
Subject: tests: Add udevadm settle to wait_for_ loop (#1260664)
|
||||
For: upstream code
|
||||
Patch-mainline: v3.3
|
||||
Git-commit: f5cc84cdb5a607449c339cad50fe8be5dd77eb6c
|
||||
|
||||
Sometimes the device will vanish after the wait_for_dev_to_appear exits.
|
||||
Add udevadm settle in an attempt to make sure the udev system is done
|
||||
flapping around and the device will stay in place.
|
||||
|
||||
Related: rhbz#1260664
|
||||
Acked-by: Sebastian Parschauer <sparschauer@suse.de>
|
||||
---
|
||||
tests/t-lib-helpers.sh | 2 ++
|
||||
tests/t-local.sh | 2 ++
|
||||
tests/t6001-psep.sh | 2 ++
|
||||
tests/t6004-dm-many-partitions.sh | 1 +
|
||||
tests/t6005-dm-uuid.sh | 2 ++
|
||||
tests/t6100-mdraid-partitions.sh | 1 +
|
||||
6 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/tests/t-lib-helpers.sh b/tests/t-lib-helpers.sh
|
||||
index c8684bbd264e..93123432922b 100644
|
||||
--- a/tests/t-lib-helpers.sh
|
||||
+++ b/tests/t-lib-helpers.sh
|
||||
@@ -377,6 +377,7 @@ wait_for_dev_to_appear_()
|
||||
local i=0
|
||||
local incr=1
|
||||
while :; do
|
||||
+ udevadm settle
|
||||
ls "$file" > /dev/null 2>&1 && return 0
|
||||
sleep .1 2>/dev/null || { sleep 1; incr=10; }
|
||||
i=$(expr $i + $incr); test $i = 20 && break
|
||||
@@ -392,6 +393,7 @@ wait_for_dev_to_disappear_()
|
||||
local i=0
|
||||
local incr=1
|
||||
while :; do
|
||||
+ udevadm settle
|
||||
ls "$file" > /dev/null 2>&1 || return 0
|
||||
sleep .1 2>/dev/null || { sleep 1; incr=10; }
|
||||
i=$(expr $i + $incr); test $i -ge $(expr $n_sec \* 10) && break
|
||||
diff --git a/tests/t-local.sh b/tests/t-local.sh
|
||||
index b40a5a0ebbf5..a7d5226a3956 100644
|
||||
--- a/tests/t-local.sh
|
||||
+++ b/tests/t-local.sh
|
||||
@@ -47,6 +47,7 @@ wait_for_dev_to_appear_()
|
||||
local i=0
|
||||
local incr=1
|
||||
while :; do
|
||||
+ udevadm settle
|
||||
ls "$file" > /dev/null 2>&1 && return 0
|
||||
sleep .1 2>/dev/null || { sleep 1; incr=10; }
|
||||
i=$(expr $i + $incr); test $i = 20 && break
|
||||
@@ -110,6 +111,7 @@ scsi_debug_setup_()
|
||||
local i=0
|
||||
local new_dev
|
||||
while :; do
|
||||
+ udevadm settle
|
||||
new_dev=$(new_sdX_) && break
|
||||
sleep .1 2>/dev/null || { sleep 1; incr=10; }
|
||||
i=$(expr $i + $incr); test $i = 20 && break
|
||||
diff --git a/tests/t6001-psep.sh b/tests/t6001-psep.sh
|
||||
index 4c758e8fbc73..2985cf5e7d0e 100644
|
||||
--- a/tests/t6001-psep.sh
|
||||
+++ b/tests/t6001-psep.sh
|
||||
@@ -19,6 +19,8 @@
|
||||
. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
||||
|
||||
require_root_
|
||||
+require_udevadm_settle_
|
||||
+
|
||||
(dmsetup --help) > /dev/null 2>&1 || skip_test_ "No dmsetup installed"
|
||||
|
||||
# Device maps names - should be random to not conflict with existing ones on
|
||||
diff --git a/tests/t6004-dm-many-partitions.sh b/tests/t6004-dm-many-partitions.sh
|
||||
index 7ebc48a18db8..01d7fc0da8f3 100755
|
||||
--- a/tests/t6004-dm-many-partitions.sh
|
||||
+++ b/tests/t6004-dm-many-partitions.sh
|
||||
@@ -20,6 +20,7 @@
|
||||
. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
||||
|
||||
require_root_
|
||||
+require_udevadm_settle_
|
||||
(dmsetup --help) > /dev/null 2>&1 || skip_test_ "No dmsetup installed"
|
||||
|
||||
ss=$sector_size_
|
||||
diff --git a/tests/t6005-dm-uuid.sh b/tests/t6005-dm-uuid.sh
|
||||
index ce1251a9f16a..a48ae727f940 100755
|
||||
--- a/tests/t6005-dm-uuid.sh
|
||||
+++ b/tests/t6005-dm-uuid.sh
|
||||
@@ -20,6 +20,7 @@
|
||||
. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
||||
|
||||
require_root_
|
||||
+require_udevadm_settle_
|
||||
(dmsetup --help) > /dev/null 2>&1 || skip_test_ "No dmsetup installed"
|
||||
|
||||
ss=$sector_size_
|
||||
@@ -46,6 +47,7 @@ for ((i=1; i<=$n_partitions; i+=1)); do
|
||||
cmd="$cmd mkpart p$i ${s}s ${s}s"
|
||||
done
|
||||
parted -m -a min -s /dev/mapper/$dm_name mklabel gpt $cmd > /dev/null 2>&1 || fail=1
|
||||
+wait_for_dev_to_appear_ /dev/mapper/${dm_name}p${n_partitions} || fail=1
|
||||
|
||||
# Make sure all the partitions have UUIDs
|
||||
for ((i=1; i<=$n_partitions; i+=1)); do
|
||||
diff --git a/tests/t6100-mdraid-partitions.sh b/tests/t6100-mdraid-partitions.sh
|
||||
index dbc5986b9019..dbb16861f9f3 100755
|
||||
--- a/tests/t6100-mdraid-partitions.sh
|
||||
+++ b/tests/t6100-mdraid-partitions.sh
|
||||
@@ -38,6 +38,7 @@ parted -s "$scsi_dev" mklabel gpt \
|
||||
mkpart p1 ext2 1M 4M \
|
||||
mkpart p2 ext2 5M 8M > out 2>&1 || fail=1
|
||||
compare /dev/null out || fail=1
|
||||
+wait_for_dev_to_appear_ ${scsi_dev}2 || { fail=1; cat /proc/partitions; }
|
||||
|
||||
cleanup_fn_() {
|
||||
# stop mdraid array
|
Loading…
x
Reference in New Issue
Block a user