#!/bin/bash

#
# This file is part of util-linux-ng.
#
# 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.
#

TS_TOPDIR="$(dirname $0)/../.."
TS_DESC="invalid input tests"

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

#set -x

ts_log "Initialize empty image"
TEST_IMAGE_NAME=$(ts_image_init 10)
ts_image_md5sum >> $TS_OUTPUT 2>&1

ts_log "Empty image listing" # this should report empty partition table
# TEST_IMAGE_NAME has absolute path, and is by definition different on each computer, we need to sed it away
$TS_CMD_FDISK -l ${TEST_IMAGE_NAME} 2>&1 | sed -e "s/${TEST_IMAGE_NAME//\//\\/}/testimage/" >> $TS_OUTPUT

ts_log "Nonexistant file" # this originally does absolutely nothing
$TS_CMD_FDISK -l _a_file_that_does_not_exist_ >> $TS_OUTPUT 2>&1

ts_log "Too small file" # same here
$TS_CMD_FDISK -l $TS_TOPDIR/expected/fdisk/oddinput.toosmall >> $TS_OUTPUT 2>&1

ts_finalize
