| #!/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 |