I suppose that neither `ls -lR` nor `exportfs` has any direct relationship to this test. Therefore I removed them to make the test more silent.
But destroying of a loop device is an asynchronous operation (see a1ecac3b0656a68259927c234e505804d33a7b83) and so on we need to be sure that the device is destroyed before creating a new one. To accomplish this I changed the test to use `losetup -f` and `losetup -d` explicitly. Signed-off-by: Stanislav Kholmanskikh <[email protected]> --- testscripts/isofs.sh | 52 +++++++++++++++++++++++++++++++------------------ 1 files changed, 33 insertions(+), 19 deletions(-) diff --git a/testscripts/isofs.sh b/testscripts/isofs.sh index 2bb2555..294d6f0 100755 --- a/testscripts/isofs.sh +++ b/testscripts/isofs.sh @@ -1,6 +1,7 @@ #!/bin/sh # # Copyright (c) International Business Machines Corp., 2003 +# Copyright (c) 2014 Oracle and/or its affiliates. All Rights Reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -29,6 +30,7 @@ TST_TOTAL=77 . test.sh NO_CLEANUP="" +IS_MOUNTED="" usage() { @@ -41,7 +43,7 @@ cleanup() if [ "$NO_CLEANUP" = "no" ]; then tst_resm TINFO "Temporary directory $PWD was not removed" else - tst_rmdir + [ "$IS_MOUNTED" != "yes" ] && tst_rmdir fi } @@ -98,7 +100,7 @@ for mkisofs_opt in \ "-allow-lowercase -allow-multidot -iso-level 3 -f -l -D -J -L -R" do rm -f isofs.iso - mkisofs -o isofs.iso -quiet $mkisofs_opt $MAKE_FILE_SYS_DIR + mkisofs -o isofs.iso -quiet $mkisofs_opt $MAKE_FILE_SYS_DIR 2> /dev/null if [ $? -eq 0 ]; then tst_resm TPASS \ "mkisofs -o isofs.iso -quiet $mkisofs_opt $MAKE_FILE_SYS_DIR" @@ -109,33 +111,45 @@ do fi 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" - # "loop,sbsector=32" + "ro" \ + "norock" \ + "nojoliet" \ + "block=512,unhide" \ + "block=1024,cruft" \ + "block=2048,nocompress" \ + "check=strict,map=off,gid=bin,uid=bin" \ + "check=strict,map=acorn,gid=bin,uid=bin" \ + "check=relaxed,map=normal" \ + "block=512,unhide,session=2" + # "sbsector=32" do - mount -t iso9660 -o $mount_opt isofs.iso $MNT_POINT + loop_dev=$(losetup --show -f isofs.iso) + if [ $? -ne 0 ]; then + tst_brkm TBROK "losetup failed" + fi + + mount -t iso9660 -o $mount_opt "$loop_dev" $MNT_POINT if [ $? -ne 0 ]; then tst_resm TFAIL \ - "mount -t iso9660 -o $mount_opt isofs.iso $MNT_POINT" + "mount -t iso9660 -o $mount_opt "$loop_dev" $MNT_POINT" continue fi - - ls -lR $MNT_POINT - exportfs -i -o no_root_squash,rw *:$MNT_POINT - exportfs -u :$MNT_POINT + IS_MOUNTED="yes" umount $MNT_POINT if [ $? -ne 0 ]; then tst_resm TFAIL "umount $MNT_POINT" fi + IS_MOUNTED="no" + + # Now tearing down the loopback device + while /bin/true; do + out=$(LC_ALL=C losetup -d "$loop_dev" 2>&1) + + if echo "$out" | grep -q -i "No such device"; then + break + fi + done tst_resm TPASS "mount/umount with \"$mount_opt\" options" done -- 1.7.1 ------------------------------------------------------------------------------ _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
