diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2025-05-25 14:19:29 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-05-25 14:26:59 -0400 |
commit | 47d1f2a04d79bc4cbc843f81e71eb7d821fb8384 (patch) | |
tree | c395d82d8b3341b34a98dab80f8bfd096fc87aa1 | |
parent | b8e11c7c0427c389288d5f152f17c990ef8cfdaf (diff) |
bcachefs: test_casefold_overlayfs
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rwxr-xr-x | tests/fs/bcachefs/single_device.ktest | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/fs/bcachefs/single_device.ktest b/tests/fs/bcachefs/single_device.ktest index 975d621..5a57e59 100755 --- a/tests/fs/bcachefs/single_device.ktest +++ b/tests/fs/bcachefs/single_device.ktest @@ -1930,4 +1930,39 @@ test_single_device() umount /mnt } +require-kernel-config OVERLAY_FS + +test_casefold_overlayfs() +{ + run_quiet "" bcachefs format -f ${ktest_scratch_dev[0]} + mount ${ktest_scratch_dev[0]} /mnt + + mkdir -p /mnt/dir/casefold + bcachefs set-file-option --casefold /mnt/dir/casefold + + echo foo > /mnt/dir/casefold/foo + cat /mnt/dir/casefold/FOO + + mkdir /mnt/lower + mkdir /mnt/upper + mkdir /mnt/work + mkdir /mnt/merged + + echo "Testing an overlayfs on a casefold fs with non-casefolded dirs" + mount -t overlay -o lowerdir=/mnt/lower,upperdir=/mnt/upper,workdir=/mnt/work overlay /mnt/merged + umount /mnt/merged + + echo "Test using casefolded dir - should fail" + ! mount -t overlay -o lowerdir=/mnt/lower,upperdir=/mnt/upper,workdir=/mnt/work overlay /mnt/merged + ! mount -t overlay -o lowerdir=/mnt/casefold,upperdir=/mnt/casefold,workdir=/mnt/work overlay /mnt/merged + + echo "Test using a dir with a casefold subdir - should mount" + mount -t overlay -o lowerdir=/mnt/dir,upperdir=/mnt/upper,workdir=/mnt/work overlay /mnt/merged + ! ls /mnt/merged/dir/casefold + umount /mnt/merged + + umount /mnt + bcachefs fsck -ny ${ktest_scratch_dev[0]} +} + main "$@" |