diff options
Diffstat (limited to 'tests/sys/fs/tarfs/tarfs_test.sh')
| -rw-r--r-- | tests/sys/fs/tarfs/tarfs_test.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/sys/fs/tarfs/tarfs_test.sh b/tests/sys/fs/tarfs/tarfs_test.sh index d4de71271985..505bfc5325f0 100644 --- a/tests/sys/fs/tarfs/tarfs_test.sh +++ b/tests/sys/fs/tarfs/tarfs_test.sh @@ -396,6 +396,32 @@ tarfs_git_archive_cleanup() { tarfs_cleanup } +atf_test_case tarfs_large cleanup +tarfs_large_head() { + atf_set "descr" "Test support for large files" + atf_set "require.user" "root" + atf_set "require.kmods" "tarfs" + atf_set "timeout" "600" +} +tarfs_large_body() { + tarfs_setup + local tarball="${PWD}/tarfs_test.tar.zst" + local exp off + for exp in 31 32 33 34 35 36 ; do + for off in 1 0 ; do + local size=$(((1<<exp)-off)) + atf_check truncate -s ${size} file + atf_check bsdtar -cf "${tarball}" --no-read-sparse --zstd file + atf_check mount -rt tarfs "${tarball}" "${mnt}" + atf_check -o inline:"${size}\n" stat -f%z "${mnt}"/file + atf_check umount "${mnt}" + done + done +} +tarfs_large_cleanup() { + tarfs_cleanup +} + atf_init_test_cases() { atf_add_test_case tarfs_basic atf_add_test_case tarfs_basic_gnu @@ -414,4 +440,5 @@ atf_init_test_cases() { atf_add_test_case tarfs_long_names atf_add_test_case tarfs_long_paths atf_add_test_case tarfs_git_archive + atf_add_test_case tarfs_large } |
