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