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

#
# Test GPT Alternative-LBA and backup header update after device resize.
#

TS_TOPDIR="${0%/*}/../.."
TS_DESC="gpt-resize"

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

ts_skip_nonroot

ts_check_test_command "$TS_CMD_FDISK"
ts_check_test_command "$TS_CMD_SFDISK"
ts_check_prog "dd"

ts_check_losetup

ts_device_init 10
DEVICE=$TS_LODEV

# create GPT with one partition
echo ",," | $TS_CMD_SFDISK --no-reread --no-tell-kernel --label gpt $DEVICE >> $TS_OUTPUT 2>&1
udevadm settle

# enlarge the image
IMAGE=$($TS_CMD_LOSETUP --output BACK-FILE --noheadings $DEVICE)
dd if=/dev/zero of=${IMAGE} bs=1MiB count=10 conv=notrunc oflag=append &> /dev/null
udevadm settle

# update device size
$TS_CMD_LOSETUP --set-capacity $DEVICE
udevadm settle

echo -e "\n\n----- fixing after resize: -----\n\n" >> $TS_OUTPUT

# create another GPT partition on new free space (all default)
echo -e 'n\n\n\n\nw\n' | $TS_CMD_FDISK $DEVICE >> $TS_OUTPUT 2>&1
udevadm settle


echo -e "\n\n----- list result: -----\n\n" >> $TS_OUTPUT

$TS_CMD_FDISK --list $DEVICE 2>&1 >> $TS_OUTPUT

ts_fdisk_clean $DEVICE
ts_finalize
