summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/fs/bcachefs/single_device.ktest35
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 "$@"