TS_HELPER_LIBFDISK_GPT="$top_builddir/test_fdisk_gpt"
TS_HELPER_LIBFDISK_MKPART="$top_builddir/sample-fdisk-mkpart"
TS_HELPER_LIBMOUNT_CONTEXT="$top_builddir/test_mount_context"
+TS_HELPER_LIBFDISK_MKPART_FULLSPEC="$top_builddir/sample-fdisk-mkpart-fullspec"
TS_HELPER_LIBMOUNT_LOCK="$top_builddir/test_mount_lock"
TS_HELPER_LIBMOUNT_OPTSTR="$top_builddir/test_mount_optstr"
TS_HELPER_LIBMOUNT_TABDIFF="$top_builddir/test_mount_tab_diff"
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=1,start=4096,size=2048>
+Requested partition: <partno=2,start=6144,size=2048>
+Requested partition: <partno=3,start=8192,size=2048>
+Requested partition: <partno=4,start=10240,size=2048>
+Requested partition: <partno=5,start=12288,size=2048>
+Requested partition: <partno=6,start=14336,size=2048>
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
+Disklabel type: gpt
+Disk identifier: <removed>
+
+Device Start End Sectors Size Type
+<removed>1 2048 4095 2048 1M Linux filesystem
+<removed>2 4096 6143 2048 1M Linux filesystem
+<removed>3 6144 8191 2048 1M Linux filesystem
+<removed>4 8192 10239 2048 1M Linux filesystem
+<removed>5 10240 12287 2048 1M Linux filesystem
+<removed>6 12288 14335 2048 1M Linux filesystem
+<removed>7 14336 16383 2048 1M Linux filesystem
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=1,start=4096,size=2048>
+Requested partition: <partno=2,start=6144,size=2048>
+Requested partition: <partno=3,start=5000,size=2048>
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Sector 5000 already used.
+sample-fdisk-mkpart-fullspec: failed to add #4 partition: Numerical result out of range
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=1,start=4096,size=2048>
+Requested partition: <partno=3,start=6144,size=2048>
+Requested partition: <partno=4,start=8192,size=2048>
+Requested partition: <partno=6,start=10240,size=2048>
+Requested partition: <partno=7,start=12288,size=2048>
+Requested partition: <partno=8,start=14336,size=2048>
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
+Disklabel type: gpt
+Disk identifier: <removed>
+
+Device Start End Sectors Size Type
+<removed>1 2048 4095 2048 1M Linux filesystem
+<removed>2 4096 6143 2048 1M Linux filesystem
+<removed>4 6144 8191 2048 1M Linux filesystem
+<removed>5 8192 10239 2048 1M Linux filesystem
+<removed>7 10240 12287 2048 1M Linux filesystem
+<removed>8 12288 14335 2048 1M Linux filesystem
+<removed>9 14336 16383 2048 1M Linux filesystem
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=1,start=6144,size=2048>
+Requested partition: <partno=2,start=8192,size=2048>
+Requested partition: <partno=3,start=12288,size=2048>
+Requested partition: <partno=4,start=14336,size=2048>
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
+Disklabel type: gpt
+Disk identifier: <removed>
+
+Device Start End Sectors Size Type
+<removed>1 2048 4095 2048 1M Linux filesystem
+<removed>2 6144 8191 2048 1M Linux filesystem
+<removed>3 8192 10239 2048 1M Linux filesystem
+<removed>4 12288 14335 2048 1M Linux filesystem
+<removed>5 14336 16383 2048 1M Linux filesystem
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=1,start=4096,size=2048>
+Requested partition: <partno=2,start=6144,size=2048>
+Requested partition: <partno=3,start=8192,size=22528>
+Requested partition: <partno=4,start=10240,size=2048>
+Requested partition: <partno=5,start=4096,size=2048>
+sample-fdisk-mkpart-fullspec: failed to add #6 partition: Invalid argument
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Adding logical partition 5
+Created a new <removed>.
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=1,start=4096,size=2048>
+Requested partition: <partno=2,start=4096,size=2048>
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Start sector 4096 out of range.
+sample-fdisk-mkpart-fullspec: failed to add #3 partition: Numerical result out of range
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=1,start=4096,size=2048>
+Requested partition: <partno=6,start=6144,size=2048>
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Extended partition does not exists. Failed to add logical partition.
+sample-fdisk-mkpart-fullspec: failed to add #7 partition: Invalid argument
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=1,start=4096,size=2048>
+Requested partition: <partno=2,start=6144,size=2048>
+Requested partition: <partno=3,start=8192,size=22528>
+Requested partition: <partno=4,start=10240,size=2048>
+Requested partition: <partno=5,start=14336,size=2048>
+Requested partition: <partno=6,start=18432,size=12288>
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Adding logical partition 5
+Created a new <removed>.
+Adding logical partition 6
+Created a new <removed>.
+Adding logical partition 7
+Created a new <removed>.
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
+Disklabel type: dos
+Disk identifier: <removed>
+
+Device Boot Start End Sectors Size Id Type
+<removed>1 2048 4095 2048 1M 83 Linux
+<removed>2 4096 6143 2048 1M 83 Linux
+<removed>3 6144 8191 2048 1M 83 Linux
+<removed>4 8192 30719 22528 11M 5 Extended
+<removed>5 10240 12287 2048 1M 83 Linux
+<removed>6 14336 16383 2048 1M 83 Linux
+<removed>7 18432 30719 12288 6M 83 Linux
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=2,start=4096,size=2048>
+Requested partition: <partno=3,start=6144,size=24576>
+Requested partition: <partno=4,start=10240,size=2048>
+Requested partition: <partno=5,start=14336,size=2048>
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Adding logical partition 5
+Created a new <removed>.
+Adding logical partition 6
+Created a new <removed>.
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
+Disklabel type: dos
+Disk identifier: <removed>
+
+Device Boot Start End Sectors Size Id Type
+<removed>1 2048 4095 2048 1M 83 Linux
+<removed>3 4096 6143 2048 1M 83 Linux
+<removed>4 6144 30719 24576 12M 5 Extended
+<removed>5 10240 12287 2048 1M 83 Linux
+<removed>6 14336 16383 2048 1M 83 Linux
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=1,start=4096,size=2048>
+Requested partition: <partno=2,start=6144,size=2048>
+Requested partition: <partno=3,start=8192,size=22528>
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
+Disklabel type: dos
+Disk identifier: <removed>
+
+Device Boot Start End Sectors Size Id Type
+<removed>1 2048 4095 2048 1M 83 Linux
+<removed>2 4096 6143 2048 1M 83 Linux
+<removed>3 6144 8191 2048 1M 83 Linux
+<removed>4 8192 30719 22528 11M 83 Linux
--- /dev/null
+Requested partition: <partno=0,start=2048,size=2048>
+Requested partition: <partno=1,start=6144,size=2048>
+Requested partition: <partno=2,start=8192,size=2048>
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Created a new <removed>.
+Disk <removed>: 15 MiB, 15728640 bytes, 30720 sectors
+Units: sectors of 1 * 512 = 512 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / <removed> bytes
+Disklabel type: dos
+Disk identifier: <removed>
+
+Device Boot Start End Sectors Size Id Type
+<removed>1 2048 4095 2048 1M 83 Linux
+<removed>2 6144 8191 2048 1M 83 Linux
+<removed>3 8192 10239 2048 1M 83 Linux
--- /dev/null
+#!/bin/bash
+#
+# This file is part of util-linux.
+#
+# This file 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 2 of the License, or
+# (at your option) any later version.
+#
+# This file 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.
+#
+#
+# Create partition in non-interactive mode; like mkpart, but partition is fully
+# specifuied by partno, start and size.
+#
+
+TS_TOPDIR="${0%/*}/../.."
+TS_DESC="mkpart-full"
+
+. $TS_TOPDIR/functions.sh
+ts_init "$*"
+
+TESTPROG="$TS_HELPER_LIBFDISK_MKPART_FULLSPEC"
+ts_check_test_command "$TESTPROG"
+ts_check_test_command "$TS_CMD_SFDISK"
+ts_check_test_command "$TS_CMD_WIPEFS"
+
+TEST_IMAGE_NAME=$(ts_image_init 15)
+
+ts_init_subtest "mbr-primary"
+$TESTPROG --label mbr --device ${TEST_IMAGE_NAME} \
+ 1,2048,2048 \
+ 2,4096,2048 \
+ 3,6144,2048 \
+ 4,8192,22528 \
+ >> $TS_OUTPUT 2>&1
+$TS_CMD_SFDISK --list ${TEST_IMAGE_NAME} >> $TS_OUTPUT 2>&1
+ts_fdisk_clean ${TEST_IMAGE_NAME}
+ts_finalize_subtest
+
+$TS_CMD_WIPEFS --all --force ${TEST_IMAGE_NAME} &> /dev/null
+
+## no extended but partno > 4 requested
+ts_init_subtest "mbr-err-primary"
+$TESTPROG --label mbr --device ${TEST_IMAGE_NAME} \
+ 1,2048,2048 \
+ 2,4096,2048 \
+ 7,6144,2048 \
+ >> $TS_OUTPUT 2>&1
+$TS_CMD_SFDISK --list ${TEST_IMAGE_NAME} >> $TS_OUTPUT 2>&1
+ts_fdisk_clean ${TEST_IMAGE_NAME}
+ts_finalize_subtest
+
+$TS_CMD_WIPEFS --all --force ${TEST_IMAGE_NAME} &> /dev/null
+
+## no extended but partno > 4 requested
+ts_init_subtest "mbr-err-nospace"
+$TESTPROG --label mbr --device ${TEST_IMAGE_NAME} \
+ 1,2048,2048 \
+ 2,4096,2048 \
+ 3,4096,2048 \
+ >> $TS_OUTPUT 2>&1
+$TS_CMD_SFDISK --list ${TEST_IMAGE_NAME} >> $TS_OUTPUT 2>&1
+ts_fdisk_clean ${TEST_IMAGE_NAME}
+ts_finalize_subtest
+
+$TS_CMD_WIPEFS --all --force ${TEST_IMAGE_NAME} &> /dev/null
+
+
+ts_init_subtest "mbr-logical"
+$TESTPROG --label mbr --device ${TEST_IMAGE_NAME} \
+ 1,2048,2048 \
+ 2,4096,2048 \
+ 3,6144,2048 \
+ 4,8192,22528 \
+ 5,10240,2048 \
+ 6,14336,2048 \
+ 7,18432,12288 \
+ >> $TS_OUTPUT 2>&1
+$TS_CMD_SFDISK --list ${TEST_IMAGE_NAME} >> $TS_OUTPUT 2>&1
+ts_fdisk_clean ${TEST_IMAGE_NAME}
+ts_finalize_subtest
+
+$TS_CMD_WIPEFS --all --force ${TEST_IMAGE_NAME} &> /dev/null
+
+### 6th partition (logical) out of extended
+ts_init_subtest "mbr-err-logical"
+$TESTPROG --label mbr --device ${TEST_IMAGE_NAME} \
+ 1,2048,2048 \
+ 2,4096,2048 \
+ 3,6144,2048 \
+ 4,8192,22528 \
+ 5,10240,2048 \
+ 6,4096,2048 \
+ 7,18432,12288 \
+ >> $TS_OUTPUT 2>&1
+$TS_CMD_SFDISK --list ${TEST_IMAGE_NAME} >> $TS_OUTPUT 2>&1
+ts_fdisk_clean ${TEST_IMAGE_NAME}
+ts_finalize_subtest
+
+$TS_CMD_WIPEFS --all --force ${TEST_IMAGE_NAME} &> /dev/null
+
+ts_init_subtest "mbr-space-gap"
+$TESTPROG --label mbr --device ${TEST_IMAGE_NAME} \
+ 1,2048,2048 \
+ 2,6144,2048 \
+ 3,8192,2048 \
+ >> $TS_OUTPUT 2>&1
+$TS_CMD_SFDISK --list ${TEST_IMAGE_NAME} >> $TS_OUTPUT 2>&1
+ts_fdisk_clean ${TEST_IMAGE_NAME}
+ts_finalize_subtest
+
+$TS_CMD_WIPEFS --all --force ${TEST_IMAGE_NAME} &> /dev/null
+
+ts_init_subtest "gpt"
+$TESTPROG --label gpt --device ${TEST_IMAGE_NAME} \
+ 1,2048,2048 \
+ 2,4096,2048 \
+ 3,6144,2048 \
+ 4,8192,2048 \
+ 5,10240,2048 \
+ 6,12288,2048 \
+ 7,14336,2048 \
+ >> $TS_OUTPUT 2>&1
+$TS_CMD_SFDISK --list ${TEST_IMAGE_NAME} >> $TS_OUTPUT 2>&1
+ts_fdisk_clean ${TEST_IMAGE_NAME}
+ts_finalize_subtest
+
+$TS_CMD_WIPEFS --all --force ${TEST_IMAGE_NAME} &> /dev/null
+
+### 4th partition overlap 4th and 5th
+ts_init_subtest "gpt-err-overlap"
+$TESTPROG --label gpt --device ${TEST_IMAGE_NAME} \
+ 1,2048,2048 \
+ 2,4096,2048 \
+ 3,6144,2048 \
+ 4,5000,2048 \
+ 5,10240,2048 \
+ 6,12288,2048 \
+ 7,14336,2048 \
+ >> $TS_OUTPUT 2>&1
+$TS_CMD_SFDISK --list ${TEST_IMAGE_NAME} >> $TS_OUTPUT 2>&1
+ts_fdisk_clean ${TEST_IMAGE_NAME}
+ts_finalize_subtest
+
+$TS_CMD_WIPEFS --all --force ${TEST_IMAGE_NAME} &> /dev/null
+
+ts_init_subtest "gpt-partno-gap"
+$TESTPROG --label gpt --device ${TEST_IMAGE_NAME} \
+ 1,2048,2048 \
+ 2,4096,2048 \
+ 4,6144,2048 \
+ 5,8192,2048 \
+ 7,10240,2048 \
+ 8,12288,2048 \
+ 9,14336,2048 \
+ >> $TS_OUTPUT 2>&1
+$TS_CMD_SFDISK --list ${TEST_IMAGE_NAME} >> $TS_OUTPUT 2>&1
+ts_fdisk_clean ${TEST_IMAGE_NAME}
+ts_finalize_subtest
+
+$TS_CMD_WIPEFS --all --force ${TEST_IMAGE_NAME} &> /dev/null
+
+ts_init_subtest "gpt-space-gap"
+$TESTPROG --label gpt --device ${TEST_IMAGE_NAME} \
+ 1,2048,2048 \
+ 2,6144,2048 \
+ 3,8192,2048 \
+ 4,12288,2048 \
+ 5,14336,2048 \
+ >> $TS_OUTPUT 2>&1
+$TS_CMD_SFDISK --list ${TEST_IMAGE_NAME} >> $TS_OUTPUT 2>&1
+ts_fdisk_clean ${TEST_IMAGE_NAME}
+ts_finalize_subtest
+
+
+
+ts_finalize