summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libparted/disk.c2
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/t9024-msdos-1s-partition.sh36
-rw-r--r--tests/t9025-gpt-1s-partition.sh36
4 files changed, 75 insertions, 1 deletions
diff --git a/libparted/disk.c b/libparted/disk.c
index 45f35fd..e1a3489 100644
--- a/libparted/disk.c
+++ b/libparted/disk.c
@@ -1960,7 +1960,7 @@ _partition_get_overlap_constraint (PedPartition* part, PedGeometry* geom)
if (walk)
max_end = walk->geom.start - 1;
- if (min_start >= max_end)
+ if (min_start > max_end)
return NULL;
ped_geometry_init (&free_space, part->disk->dev,
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 1d109d7..fa27b44 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -91,6 +91,8 @@ TESTS = \
t9021-maxima.sh \
t9022-one-unit-snap.sh \
t9023-value-lt-one.sh \
+ t9024-msdos-1s-partition.sh \
+ t9025-gpt-1s-partition.sh \
t9030-align-check.sh \
t9040-many-partitions.sh \
t9041-undetected-in-use-16th-partition.sh \
diff --git a/tests/t9024-msdos-1s-partition.sh b/tests/t9024-msdos-1s-partition.sh
new file mode 100644
index 0000000..7115156
--- /dev/null
+++ b/tests/t9024-msdos-1s-partition.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# Test creating 1s partitions in 1s free space
+
+# Copyright (C) 2022 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
+
+dev=loop-file
+
+# create device
+truncate --size 10MiB "$dev" || fail=1
+
+# create msdos label and some partitions with 1s free space between
+parted --script "$dev" mklabel msdos > out 2>&1 || fail=1
+parted --script "$dev" mkpart primary ext4 64s 128s > out 2>&1 || fail=1
+parted --script "$dev" mkpart primary ext4 130s 200s > out 2>&1 || fail=1
+parted --script "$dev" u s p free
+
+# Free space is at 129s
+parted --script "$dev" mkpart primary ext4 129s 129s > out 2>&1 || fail=1
+parted --script "$dev" u s p free
+
+Exit $fail
diff --git a/tests/t9025-gpt-1s-partition.sh b/tests/t9025-gpt-1s-partition.sh
new file mode 100644
index 0000000..c97ab8b
--- /dev/null
+++ b/tests/t9025-gpt-1s-partition.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# Test creating 1s partitions in 1s free space
+
+# Copyright (C) 2022 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
+
+dev=loop-file
+
+# create device
+truncate --size 10MiB "$dev" || fail=1
+
+# create msdos label and some partitions with 1s free space between
+parted --script "$dev" mklabel gpt > out 2>&1 || fail=1
+parted --script "$dev" mkpart p1 ext4 64s 128s > out 2>&1 || fail=1
+parted --script "$dev" mkpart p2 ext4 130s 200s > out 2>&1 || fail=1
+parted --script "$dev" u s p free
+
+# Free space is at 129s
+parted --script "$dev" mkpart p3 ext4 129s 129s > out 2>&1 || fail=1
+parted --script "$dev" u s p free
+
+Exit $fail