idmapped-mounts: always run generic vfs tests
[xfstests-dev.git] / tests / btrfs / 139
1 #! /bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2017 SUSE. All Rights Reserved.
4 #
5 # FS QA Test 139
6 #
7 # Check if btrfs quota limits are not reached when you constantly
8 # create and delete files within the exclusive qgroup limits.
9 #
10 # Finally we create files to exceed the quota.
11 #
12 . ./common/preamble
13 _begin_fstest auto qgroup limit
14
15 # Import common functions.
16 . ./common/filter
17
18 _supported_fs btrfs
19 # We at least need 2GB of free space on $SCRATCH_DEV
20 _require_scratch_size $((2 * 1024 * 1024))
21
22 # This test requires specific data space usage, skip if we have compression
23 # enabled.
24 _require_no_compress
25
26 _scratch_mkfs > /dev/null 2>&1
27 _scratch_mount
28
29 SUBVOL=$SCRATCH_MNT/subvol
30
31 _run_btrfs_util_prog subvolume create $SUBVOL
32 _run_btrfs_util_prog quota enable $SCRATCH_MNT
33 _run_btrfs_util_prog quota rescan -w $SCRATCH_MNT
34 _run_btrfs_util_prog qgroup limit -e 1G $SUBVOL
35
36 # Write and delete files within 1G limits, multiple times
37 for i in $(seq 1 5); do
38         for j in $(seq 1 240); do
39                 $XFS_IO_PROG -f -c "pwrite 0 4m" $SUBVOL/file_$j > /dev/null
40         done
41         rm -f $SUBVOL/file*
42 done
43
44 # Exceed the limits here
45 for j in $(seq 1 8); do
46         $XFS_IO_PROG -f -c "pwrite 0 128m" $SUBVOL/file_$j 2>&1 | _filter_xfs_io | _filter_xfs_io_error
47 done
48
49 # success, all done
50 status=0
51 exit