xfstests 241: Add missing golden output
[xfstests-dev.git] / 195
1 #! /bin/bash
2 # FS QA Test No. 195
3 #
4 # Make sure the chattr dump flag gets picked up by xfsdump without a sync
5 #
6 # http://oss.sgi.com/bugzilla/show_bug.cgi?id=340
7 #
8 #-----------------------------------------------------------------------
9 # Copyright (c) 2008 Christoph Hellwig.
10 #
11 # This program is free software; you can redistribute it and/or
12 # modify it under the terms of the GNU General Public License as
13 # published by the Free Software Foundation.
14 #
15 # This program is distributed in the hope that it would be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 # GNU General Public License for more details.
19 #
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write the Free Software Foundation,
22 # Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
23 #-----------------------------------------------------------------------
24 #
25 # creator
26 owner=hch@lst.de
27
28 seq=`basename $0`
29 echo "QA output created by $seq"
30
31 here=`pwd`
32 tmp=/tmp/$$
33 status=1        # failure is the default!
34
35 _cleanup()
36 {
37         rm -rf $TEST_DIR/d
38         rm -f $TEST_DIR/dumpfile
39 }
40 trap "_cleanup; exit \$status" 0 1 2 3 15
41
42 #
43 # Perform a level 0 dump that respects the chattr dump exclude flag,
44 # and grep the output for the inode number we expect / do not expect
45 # to be skipped
46 #
47 # Only dump a subtree so we get away with a single partition for
48 # the subtree to be dumped and the dump file.
49 #
50 _do_dump()
51 {
52         xfsdump -l 0 -s d -F  \
53                 -L prova -M prova \
54                 -f $TEST_DIR/dumpfile -e -v excluded_files=debug $TEST_DIR \
55                 | grep "ino $inum" \
56                 | sed -e 's/xfsdump: pruned ino [0-9]*, owner 0, estimated size 0: skip flag set/xfsdump: pruned ino NNN, owner 0, estimated size 0: skip flag set/'
57 }
58
59 # get standard environment, filters and checks
60 . ./common.rc
61 . ./common.filter
62
63 # real QA test starts here
64 _supported_fs xfs
65 _supported_os Linux
66
67 _require_user
68
69 echo "Preparing subtree"
70 mkdir $TEST_DIR/d
71 touch $TEST_DIR/d/t
72 inum=`stat --format "%i" $TEST_DIR/d/t`
73
74 echo "No dump exclude flag set (should not be skipped)"
75 _do_dump
76
77 echo "Dump exclude flag set, but no sync yet (should be skipped)"
78 chattr +d $TEST_DIR/d/t
79 _do_dump
80
81 echo "Dump exclude flag set, after sync (should be skipped)"
82 sync
83 _do_dump
84
85 # success, all done
86 echo "*** done"
87 rm -f $seq.full
88 status=0