blob: eda506ef6b90168ba210735694b87e9fff69c158 [file] [log] [blame]
#!/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
ts_init_subtest "mbr-primary-nopartno"
$TESTPROG --label mbr --device ${TEST_IMAGE_NAME} -- \
-,2048,2048 \
-,4096,2048 \
-,6144,2048 \
-,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
ts_init_subtest "mbr-nopartno"
$TESTPROG --label mbr --device ${TEST_IMAGE_NAME} -- \
-,2048,2048 \
-,4096,2048 \
-,6144,2048 \
-,8192,22528 \
-,10240,2048 \
-,14336,2048 \
-,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
ts_init_subtest "gpt-nopartno"
$TESTPROG --label gpt --device ${TEST_IMAGE_NAME} -- \
-,2048,2048 \
-,4096,2048 \
-,6144,2048 \
-,8192,2048 \
-,10240,2048 \
-,12288,2048 \
-,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