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