You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.2 KiB
89 lines
2.2 KiB
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
# Copyright (c) International Business Machines Corp., 2003
|
|
# Written by Prakash Narayana (prakashn@us.ibm.com)
|
|
# and Michael Reed (mreed10@us.ibm.com)
|
|
# Copyright (c) Linux Test Project, 2016-2019
|
|
#
|
|
# Test isofs on Linux system.
|
|
# It makes ISO9660 file system with different options and also
|
|
# mounts ISO9660 file system with different mount options.
|
|
|
|
TST_NEEDS_CMDS="mkisofs"
|
|
TST_NEEDS_TMPDIR=1
|
|
TST_TESTFUNC=do_test
|
|
. tst_test.sh
|
|
|
|
MAX_DEPTH=3
|
|
MAX_DIRS=4
|
|
|
|
gen_fs_tree()
|
|
{
|
|
local cur_path="$1"
|
|
local cur_depth="$2"
|
|
local new_path
|
|
|
|
[ "$cur_depth" -gt "$MAX_DEPTH" ] && return
|
|
|
|
for i in $(seq 1 $MAX_DIRS); do
|
|
new_path="$cur_path/subdir_$i"
|
|
mkdir -p "$new_path"
|
|
ROD_SILENT dd if=/dev/urandom of="$new_path/file" bs=1024 count=100
|
|
gen_fs_tree "$new_path" $((cur_depth + 1))
|
|
done
|
|
}
|
|
|
|
do_test() {
|
|
local mnt_point="$PWD/mnt"
|
|
local make_file_sys_dir="$PWD/files"
|
|
|
|
mkdir -p -m 777 $mnt_point
|
|
mkdir -p $make_file_sys_dir
|
|
|
|
# Generated directories and files
|
|
mkdir -p $make_file_sys_dir
|
|
gen_fs_tree "$make_file_sys_dir" 1
|
|
|
|
# Make ISO9660 file system with different options.
|
|
# Mount the ISO9660 file system with different mount options.
|
|
for mkisofs_opt in \
|
|
" " \
|
|
"-J" \
|
|
"-hfs -D" \
|
|
" -R " \
|
|
"-R -J" \
|
|
"-f -l -D -J -allow-leading-dots -R" \
|
|
"-allow-lowercase -allow-multidot -iso-level 3 -f -l -D -J -allow-leading-dots -R"
|
|
do
|
|
rm -f isofs.iso
|
|
EXPECT_PASS mkisofs -o isofs.iso -quiet $mkisofs_opt $make_file_sys_dir 2\> /dev/null \
|
|
|| continue
|
|
|
|
for mount_opt in \
|
|
"loop" \
|
|
"loop,norock" \
|
|
"loop,nojoliet" \
|
|
"loop,block=512,unhide" \
|
|
"loop,block=1024,cruft" \
|
|
"loop,block=2048,nocompress" \
|
|
"loop,check=strict,map=off,gid=bin,uid=bin" \
|
|
"loop,check=strict,map=acorn,gid=bin,uid=bin" \
|
|
"loop,check=relaxed,map=normal" \
|
|
"loop,block=512,unhide,session=2"
|
|
do
|
|
mount -t iso9660 -o $mount_opt isofs.iso $mnt_point
|
|
if [ $? -ne 0 ]; then
|
|
tst_res TFAIL "mount -t iso9660 -o $mount_opt isofs.iso $mnt_point"
|
|
continue
|
|
fi
|
|
|
|
ls -lR $mnt_point > /dev/null || tst_res TFAIL "ls -lR $mnt_point"
|
|
umount $mnt_point || tst_brk TFAIL "umount $mnt_point"
|
|
|
|
tst_res TPASS "mount/umount with \"$mount_opt\" options"
|
|
done
|
|
done
|
|
}
|
|
|
|
tst_run
|