#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2011 SGI. All Rights Reserved. # # FS QA Test No. 266 # # Test incremental dumps with -D (skip unchanged dirs) # seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=0 # success is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { _cleanup_dump cd / rm -f $tmp.* } # # 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 } # Quota files are stored as special files in the dumpdir of the incremental # backup. This throws off the directory/file count reported because xfsrestore # includes the dumpdir in the restore summary counts. filter_cumulative_quota_updates() { $here/src/feature -U $SCRATCH_DEV && quota=1 $here/src/feature -G $SCRATCH_DEV && quota=1 $here/src/feature -P $SCRATCH_DEV && quota=1 $AWK_PROG -v quota=$quota ' /entries processed/ { if (quota) {$2--; $5--;} } {print}' } # get standard environment, filters and checks . ./common/rc . ./common/dump # real QA test starts here _supported_fs xfs $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 | filter_cumulative_quota_updates _ls_compare_sub _diff_compare # success, all done exit