diff --git a/testcases/kernel/fs/iso9660/isofs.sh b/testcases/kernel/fs/iso9660/isofs.sh index dfa4ac73d66..d1a362d9799 100755 --- a/testcases/kernel/fs/iso9660/isofs.sh +++ b/testcases/kernel/fs/iso9660/isofs.sh @@ -1,7 +1,7 @@ #!/bin/sh # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (c) International Business Machines Corp., 2003 -# Copyright (c) Linux Test Project, 2016-2021 +# Copyright (c) Linux Test Project, 2016-2024 # Written by Prakash Narayana (prakashn@us.ibm.com) # and Michael Reed (mreed10@us.ibm.com) # @@ -11,23 +11,12 @@ TST_NEEDS_CMDS="mount umount" TST_NEEDS_TMPDIR=1 -TST_SETUP=setup TST_TESTFUNC=do_test +TST_CNT=3 MAX_DEPTH=3 MAX_DIRS=4 -setup() -{ - if tst_cmd_available mkisofs; then - MKISOFS_CMD="mkisofs" - elif tst_cmd_available genisoimage; then - MKISOFS_CMD="genisoimage" - else - tst_brk TCONF "please install mkisofs or genisoimage" - fi -} - gen_fs_tree() { local cur_path="$1" @@ -50,10 +39,33 @@ do_test() local make_file_sys_dir="$PWD/files" local mkisofs_opt mount_opt + case $1 in + 1) MKISOFS_CMD="mkisofs" + HFSOPT="-hfs -D" + GREPOPT="mkisofs";; + 2) MKISOFS_CMD="genisoimage" + HFSOPT="-hfsplus -D -hfs -D" + GREPOPT="genisoimage";; + 3) MKISOFS_CMD="xorrisofs" + HFSOPT="-hfsplus -D" + GREPOPT="xorriso";; + esac + + if ! tst_cmd_available $MKISOFS_CMD; then + tst_res TCONF "Missing '$MKISOFS_CMD'" + return + fi + + if ! $MKISOFS_CMD 2>&1 | head -n 2 | grep -q "$GREPOPT"; then + tst_res TCONF "'$MKISOFS_CMD' is a symlink to another tool" + return + fi + + tst_res TINFO "Testing $MKISOFS_CMD" + 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 @@ -62,15 +74,16 @@ do_test() for mkisofs_opt in \ " " \ "-J" \ - "-hfs -D" \ + "$HFSOPT" \ " -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" + "-allow-lowercase -allow-multidot -iso-level 3 -f -l -D -J \ + -allow-leading-dots -R" do rm -f isofs.iso - EXPECT_PASS $MKISOFS_CMD -o isofs.iso -quiet $mkisofs_opt $make_file_sys_dir 2\> /dev/null \ - || continue + EXPECT_PASS $MKISOFS_CMD -o isofs.iso -quiet $mkisofs_opt \ + $make_file_sys_dir 2\> /dev/null || continue for mount_opt in \ "loop" \