fsx/fsstress: round blocksize properly
[xfstests-dev.git] / tests / generic / 458
1 #! /bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (C) 2017 CTERA Networks. All Rights Reserved.
4 #
5 # FS QA Test No. 458
6 #
7 # Regression test for xfs leftover CoW extents after truncate
8 # and umount
9 #
10 # Fixed by commit 3af423b03435 ("xfs: evict CoW fork extents when performing
11 # finsert/fcollapse")
12 #
13 seq=`basename $0`
14 seqres=$RESULT_DIR/$seq
15 echo "QA output created by $seq"
16
17 here=`pwd`
18 tmp=/tmp/$$
19 status=1        # failure is the default!
20
21 _cleanup()
22 {
23         cd /
24         rm -f $tmp.*
25 }
26 trap "_cleanup; exit \$status" 0 1 2 3 15
27
28 # get standard environment, filters and checks
29 . ./common/rc
30 . ./common/filter
31 . ./common/reflink
32
33 # real QA test starts here
34 _supported_fs generic
35 _require_scratch_reflink
36 _require_cp_reflink
37 _require_xfs_io_command "fzero"
38 _require_xfs_io_command "fcollapse"
39 _require_xfs_io_command "finsert"
40 _require_xfs_io_command "truncate"
41
42 rm -f $seqres.full
43
44 _scratch_mkfs >/dev/null 2>&1
45 _scratch_mount
46
47 $XFS_IO_PROG -f -c "pwrite 0 0x40000" \
48         $SCRATCH_MNT/foo > /dev/null 2>&1
49
50 _cp_reflink $SCRATCH_MNT/foo $SCRATCH_MNT/bar
51
52 $XFS_IO_PROG -f -c "fzero -k 0x169f 0x387c" \
53                 -c "fcollapse 0x29000 0xd000" \
54                 -c "finsert 0 0x8000" \
55                 -c "truncate 0x8000" \
56         $SCRATCH_MNT/foo > /dev/null 2>&1
57
58 echo "Silence is golden"
59 status=0
60 exit