On 29/09/2023 07:16, Boris Burkov wrote:
Add a new test for specific squota scenarios (btrfs/301)
Also made modifications for passing existing qgroups tests when possible
and for passing all tests with simple quota enabled via mkfs and with
squota-aware `btrfs check`. Since this required reading sysfs files of
scratch fses, did a bit of refactoring to make those checks target a
device rather than assuming TEST_DEV.
btrfs/301 depends on the kernel patchset:
https://lore.kernel.org/linux-btrfs/cover.1694563454.git.boris@xxxxxx/
and the btrfs-progs patchset:
https://lore.kernel.org/linux-btrfs/cover.1695836680.git.boris@xxxxxx/
(and config appropriate binaries to use squota-aware versions)
---
Changelog:
v4:
- fix rescan helper bug
- fix broken tab/spaces in squota helper
- cleanup comments
- improve test names, add some comments
- switch to remount commit=1 for forcing cleaner
- fix group list for 301
- use reflink helpers
- output errors to 301.out (and have expected ones there waiting)
- cleanup "/dev/ksmg" writes I missed when grepping for /dev/kmsg
- cleanup variable names
- proper fio/btrfs/xfs_io requires
- read nodesize from dump_super
- sync before dump_tree
- documented all calls to sync
v3:
- change btrfs/400 to btrfs/301
v2:
- new sysfs helpers in common
- better gating for the new squota test
- fix various formatting issues
- get rid of noisy dmesg logging
Boris Burkov (6):
common: refactor sysfs_attr functions
btrfs: quota mode helpers
btrfs/301: new test for simple quotas
btrfs: quota rescan helpers
btrfs: use new rescan wrapper
btrfs: skip squota incompatible tests
common/btrfs | 56 ++++++
common/rc | 127 ++++++++-----
tests/btrfs/017 | 1 +
tests/btrfs/022 | 1 +
tests/btrfs/028 | 2 +-
tests/btrfs/057 | 1 +
tests/btrfs/091 | 3 +-
tests/btrfs/104 | 2 +-
tests/btrfs/123 | 2 +-
tests/btrfs/126 | 2 +-
tests/btrfs/139 | 2 +-
tests/btrfs/153 | 2 +-
tests/btrfs/171 | 6 +-
tests/btrfs/179 | 2 +-
tests/btrfs/180 | 2 +-
tests/btrfs/190 | 2 +-
tests/btrfs/193 | 2 +-
tests/btrfs/210 | 2 +-
tests/btrfs/224 | 6 +-
tests/btrfs/230 | 2 +-
tests/btrfs/232 | 2 +-
tests/btrfs/301 | 435 ++++++++++++++++++++++++++++++++++++++++++++
tests/btrfs/301.out | 18 ++
23 files changed, 615 insertions(+), 65 deletions(-)
create mode 100755 tests/btrfs/301
create mode 100644 tests/btrfs/301.out
All test cases modified here run fine on a system with PAGESIZE=64K,
except for btrfs/153 with and without MKFS_OPTIONS="-O squota".
btrfs/153 is successful on kernel v5.15 (I haven't tried other kernels)
btrfs/153 2s ... - output mismatch (see
/xfstests-dev/results//btrfs/153.out.bad)
--- tests/btrfs/153.out 2021-07-13 08:07:54.096971521 -0400
+++ /xfstests-dev/results//btrfs/153.out.bad 2023-09-30
05:33:53.560640258 -0400
@@ -1,2 +1,3 @@
QA output created by 153
+pwrite: Disk quota exceeded
Silence is golden
...
(Run 'diff -u /xfstests-dev/tests/btrfs/153.out
/xfstests-dev/results//btrfs/153.out.bad' to see the entire diff)
Thanks, Anand