diff options
author | Brian C. Lane <bcl@redhat.com> | 2023-03-03 14:35:22 -0800 |
---|---|---|
committer | Brian C. Lane <bcl@redhat.com> | 2023-03-17 16:12:41 -0700 |
commit | 3f6b723a7d610d98afb0c9d0cfefe4700712e4db (patch) | |
tree | 841634a8bff641892b636e49e0cae210abcdd8e0 /tests | |
parent | d272bb5b5343fd288a204314654a7fbaea84528d (diff) | |
download | parted-3f6b723a7d610d98afb0c9d0cfefe4700712e4db.tar.gz |
parted: Fix ending sector location when using kibi IEC suffix
This fixes a bug when using KiB to specify the ending location of a
partition. It was not subtracting 1s like it does with the other units
because it was looking for a 'k' not a 'K'.
This also fixes a quirk of the suffix checking code, it would check for
matching case, but converting to the actual IEC value was case
insensitive. This now uses common functions for the matching so that
case doesn't matter.
It also adds tests to check for the fix.
The only change in behavior is that using KiB to specify the ending
location of a partition will now correctly create the end 1s lower than
the specified location like it does for MiB, GiB, etc.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/t0207-IEC-binary-notation.sh | 31 | ||||
-rw-r--r-- | tests/t0208-mkpart-end-in-IEC.sh | 2 |
2 files changed, 32 insertions, 1 deletions
diff --git a/tests/t0207-IEC-binary-notation.sh b/tests/t0207-IEC-binary-notation.sh index d9bbad6..b8a789e 100644 --- a/tests/t0207-IEC-binary-notation.sh +++ b/tests/t0207-IEC-binary-notation.sh @@ -28,6 +28,7 @@ parted --align=none -s $dev mklabel gpt mkpart p1 $((64*1024))B $((1024*1024-$ss compare /dev/null err || fail=1 parted -m -s $dev u s p > exp || fail=1 +# Test using MiB rm $dev dd if=/dev/null of=$dev bs=$ss seek=$n_sectors || fail=1 parted --align=none -s $dev mklabel gpt mkpart p1 64KiB 1MiB \ @@ -37,4 +38,34 @@ parted -m -s $dev u s p > out || fail=1 compare exp out || fail=1 +# Test using lower case kib and mib +rm $dev +dd if=/dev/null of=$dev bs=$ss seek=$n_sectors || fail=1 +parted --align=none -s $dev mklabel gpt mkpart p1 64kib 1mib \ + > err 2>&1 || fail=1 +compare /dev/null err || fail=1 +parted -m -s $dev u s p > out || fail=1 + +compare exp out || fail=1 + +# Test using KiB +rm $dev +dd if=/dev/null of=$dev bs=$ss seek=$n_sectors || fail=1 +parted --align=none -s $dev mklabel gpt mkpart p1 64KiB 1024KiB \ + > err 2>&1 || fail=1 +compare /dev/null err || fail=1 +parted -m -s $dev u s p > out || fail=1 + +compare exp out || fail=1 + +# Test using kiB +rm $dev +dd if=/dev/null of=$dev bs=$ss seek=$n_sectors || fail=1 +parted --align=none -s $dev mklabel gpt mkpart p1 64kiB 1024kiB \ + > err 2>&1 || fail=1 +compare /dev/null err || fail=1 +parted -m -s $dev u s p > out || fail=1 + +compare exp out || fail=1 + Exit $fail diff --git a/tests/t0208-mkpart-end-in-IEC.sh b/tests/t0208-mkpart-end-in-IEC.sh index 118ec72..a3db2c3 100644 --- a/tests/t0208-mkpart-end-in-IEC.sh +++ b/tests/t0208-mkpart-end-in-IEC.sh @@ -25,7 +25,7 @@ dev=dev-file dd if=/dev/null of=$dev bs=1M seek=$n_mbs || fail=1 # create 1st partition -parted --align=none -s $dev mklabel gpt mkpart p1 1MiB 2MiB > err 2>&1 || fail=1 +parted --align=none -s $dev mklabel gpt mkpart p1 1MiB 2048KiB > err 2>&1 || fail=1 compare /dev/null err || fail=1 # expect no output #parted -m -s $dev u s p > exp || fail=1 |