diff options
-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 "$@" |