On 9/30/23 17:45, Anand Jain wrote:
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)
The test case works with the standard 4k page size. It's already in
the Staged branch. Please send any required fix patches when they're
ready to be applied on top of this set.
Thanks, Anand