#! /bin/bash
# FS QA Test No. 266
#
# Test incremental dumps with -D (skip unchanged dirs)
#
#-----------------------------------------------------------------------
# Copyright (c) 2011 SGI.  All Rights Reserved.
#
# This program 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.
#
# This program is distributed in the hope that it would 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.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write the Free Software Foundation,
# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#-----------------------------------------------------------------------
#

seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"

here=`pwd`
tmp=/tmp/$$
status=0	# success is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15

#
# Add a new file and append a subset of the fill'ed files
# So we can see if just these get dumped on an incremental
#
_add_and_append_dumpdir_fill()
{
    cd $dump_dir
    echo 'New file' >> newfile
    _append_dumpdir_fill
}

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

# real QA test starts here
_supported_fs xfs
_supported_os Linux

$XFSDUMP_PROG -h 2>&1 | grep -q -e -D
if [ $? -ne 0 ]; then
    _notrun "requires xfsdump -D"
fi

_create_dumpdir_fill
# ensure file/dir timestamps precede dump timestamp
sleep 2
_do_dump_file -f $tmp.df.0
_add_and_append_dumpdir_fill
_do_dump_file -f $tmp.df.1 -l 1 -D
_prepare_restore_dir
_do_restore_file_cum -f $tmp.df.0
_do_restore_file_cum -f $tmp.df.1
_ls_compare_sub
_diff_compare

# success, all done
exit
