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

TS_TOPDIR="${0%/*}/../.."
TS_DESC="mkpart"

. $TS_TOPDIR/functions.sh
ts_init "$*"

TESTPROG="$TS_HELPER_LIBFDISK_MKPART"
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"
$TESTPROG --label mbr --device ${TEST_IMAGE_NAME} \
	1M 1M 1M - >> $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-logic"
$TESTPROG --label mbr --device ${TEST_IMAGE_NAME} \
	1M 1M 1M - 1M 1M ->> $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 --nopartno --label mbr --device ${TEST_IMAGE_NAME} \
	1M 1M 1M - 1M 1M ->> $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} \
	1M 1M 1M 1M 1M 1M - >> $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
