btrfs/012: check free size of scratch device before copying files
[xfstests-dev.git] / tests / generic / 277
1 #! /bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2011 Fujitsu.  All Rights Reserved.
4 #
5 # FS QA Test No. 277
6 #
7 # Check if ctime update caused by chattr is written to disk
8 #
9 seq=`basename $0`
10 seqres=$RESULT_DIR/$seq
11 echo "QA output created by $seq"
12
13 status=1        # failure is the default!
14
15 _cleanup()
16 {
17     rm -f $SCRATCH_MNT/tmp*
18 }
19
20 trap "_cleanup ; exit \$status" 0 1 2 3 15
21
22 # get standard environment, filters and checks
23 . ./common/rc
24 . ./common/filter
25 . ./common/attr
26
27 # real QA test starts here
28 _supported_fs generic
29 _require_scratch
30 _require_chattr A
31
32 _scratch_mkfs > /dev/null 2>&1
33 _scratch_mount
34
35 touch $SCRATCH_MNT/tmp
36 _scratch_cycle_mount
37 ctime1=`stat -c %z $SCRATCH_MNT/tmp`
38
39 sleep 1
40 $CHATTR_PROG +A $SCRATCH_MNT/tmp
41 $CHATTR_PROG -A $SCRATCH_MNT/tmp
42 ctime2=`stat -c %z $SCRATCH_MNT/tmp`
43
44 _scratch_cycle_mount
45 ctime3=`stat -c %z $SCRATCH_MNT/tmp`
46
47 if [ "$ctime1" == "$ctime2" ]; then
48         echo "error: ctime not updated after chattr"
49 elif [ "$ctime1" == "$ctime3" ]; then
50         echo "error: on disk ctime not updated"
51 else
52         status=0
53 fi
54
55 exit