#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2000-2001 Silicon Graphics, Inc.  All Rights Reserved.
#
# FS QA Test No. 047
#
# invutil with interactive responses
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"

here=`pwd`
tmp=/tmp/$$
status=1	# failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15

_cleanup()
{
	_cleanup_dump
	cd /
	rm -f $tmp.*
}

# get standard environment, filters and checks
. ./common/rc
. ./common/dump

# real QA test starts here
_supported_fs xfs

# wipe test dir clean first
# so dump can be real quick
_wipe_fs

#
# Create 5 dumps
# and on the 3rd dump note the date
# which we'll use to prune against using xfsinvutil
#
i=0
while [ $i -lt 5 ]; do
    _do_dump_file -L "session.$i"
    if [ $i -eq 2 ]; then
       sleep 1
       middate=`date '+%m/%d/%Y %T'`
    fi
    rm $dump_file
    sleep 2
    let i=$i+1
done

echo "middate = $middate" >>$seqres.full

# Only say No to 1st question to prune
cat >$tmp.input <<EOF
N
Y
Y
Y
Y
EOF

#
# Now do the xfsinvutil and
# look and the inventory before and after
# to see if it did the job
#
_dump_inventory
_do_invutil <$tmp.input
_dump_inventory

status=0
exit
