From: yury Date: Fri, 13 May 2005 15:58:50 +0000 (+0000) Subject: - added test_3b which emulates recursive mount. Does not pass yet. X-Git-Tag: v1_7_100~1340 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=0d48225629bcec79f9f1b350e23711846d60f565;hp=35d69097cc4f49c00523469c788f3b3fd963684c;ds=sidebyside - added test_3b which emulates recursive mount. Does not pass yet. --- diff --git a/lustre/tests/sanity-gns.sh b/lustre/tests/sanity-gns.sh index e03b0df..b55312a 100644 --- a/lustre/tests/sanity-gns.sh +++ b/lustre/tests/sanity-gns.sh @@ -338,6 +338,9 @@ check_gns() { OPEN) echo -n "test data" > $OBJECT1/test_file1 >/dev/null 2>&1 ;; + LIST) + ls -la $OBJECT1/ + ;; CHDIR) cd $OBJECT1 || return $? ;; @@ -355,6 +358,9 @@ check_gns() { OPEN) echo -n "test data" > $OBJECT1/test_file$i >/dev/null 2>&1 & ;; + LIST) + ls -la $OBJECT1/ + ;; CHDIR) cd $OBJECT1 >/dev/null 2>&1 & ;; @@ -381,6 +387,10 @@ check_gns() { echo -n "test data" > $OBJECT1/test_file1 >/dev/null 2>&1 & echo -n "test data" > $OBJECT2/test_file1 >/dev/null 2>&1 & ;; + LIST) + ls -la $OBJECT1/ + ls -la $OBJECT2/ + ;; CHDIR) cd $OBJECT1 >/dev/null 2>&1 & cd $OBJECT2 >/dev/null 2>&1 & @@ -408,6 +418,11 @@ check_gns() { echo -n "test data" > $OBJECT1/test_file$i >/dev/null 2>&1 & mkdir $OBJECT1/dir$i & ;; + LIST) + touch $OBJECT1/file & + ls -la $OBJECT1/ & + mkdir $OBJECT1/dir$i & + ;; CHDIR) touch $OBJECT1/file$i & cd $OBJECT1 >/dev/null 2>&1 & @@ -1141,6 +1156,119 @@ $TIMOUT $TICK GENERIC FG OPEN || { run_test 3a " removing mnt by chmod u-s =================================" +test_3b() { + local LOOP_FILE1="$TMP/gns_loop_3b1" + local LOOP_FILE2="$TMP/gns_loop_3b2" + local LOOP_FILE3="$TMP/gns_loop_3b3" + local OBJECT=".mntinfo" + local LOOP_DEV1="" + local LOOP_DEV2="" + local LOOP_DEV3="" + local TIMOUT=5 + local TICK=1 + + disable_gns + + LOOP_DEV1=$(find_free_loop 2>/dev/null) + test "x$LOOP_DEV1" != "x" && test -b $LOOP_DEV1 || + error "can't find free loop device" + + echo "preparing loop device $LOOP_DEV1 <-> $LOOP_FILE1..." + cleanup_loop $LOOP_DEV1 $LOOP_FILE1 + setup_loop $LOOP_DEV1 $LOOP_FILE1 || error + + LOOP_DEV2=$(find_free_loop 2>/dev/null) + test "x$LOOP_DEV2" != "x" && test -b $LOOP_DEV2 || { + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + error "can't find free loop device" + } + + echo "preparing loop device $LOOP_DEV2 <-> $LOOP_FILE2..." + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + setup_loop $LOOP_DEV2 $LOOP_FILE2 || { + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + error + } + + LOOP_DEV3=$(find_free_loop 2>/dev/null) + test "x$LOOP_DEV3" != "x" && test -b $LOOP_DEV3 || { + cleanup_loop $LOOP_DEV1 $LOOP_FILE1 + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + error "can't find free loop device" + } + + echo "preparing loop device $LOOP_DEV3 <-> $LOOP_FILE3..." + cleanup_loop $LOOP_DEV3 $LOOP_FILE3 + setup_loop $LOOP_DEV3 $LOOP_FILE3 || { + cleanup_loop $LOOP_DEV1 $LOOP_FILE1 + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + error + } + + # prepare object1 + echo "preparing mount object at $DIR/gns_test_3b1/$OBJECT..." + setup_object $DIR/gns_test_3b1 $OBJECT "-t ext2 $LOOP_DEV1" || { + cleanup_loop $LOOP_DEV1 $LOOP_FILE1 + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + cleanup_loop $LOOP_DEV3 $LOOP_FILE3 + error + } + + # prepare object2 + mkdir -p $TMP/mnt || error + mount -t ext2 $LOOP_DEV2 $TMP/mnt || { + cleanup_object $DIR/gns_test_3b1 + cleanup_loop $LOOP_DEV1 $LOOP_FILE1 + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + cleanup_loop $LOOP_DEV3 $LOOP_FILE3 + error "cannot mount $LOOP_DEV2" + } + + echo "preparing mount object at $TMP/mnt/gns_test_3b2/$OBJECT..." + setup_object $TMP/mnt/gns_test_3b2 $OBJECT "-t ext2 $LOOP_DEV3" || { + cleanup_object $DIR/gns_test_3b1 + umount $TMP/mnt + cleanup_loop $LOOP_DEV1 $LOOP_FILE1 + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + cleanup_loop $LOOP_DEV3 $LOOP_FILE3 + error + } + umount $TMP/mnt || error + + echo "setting up GNS timeouts and mount object..." + setup_gns $OBJECT $TIMOUT $TICK || { + cleanup_object $DIR/gns_test_3b1 + cleanup_loop $LOOP_DEV1 $LOOP_FILE1 + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + cleanup_loop $LOOP_DEV3 $LOOP_FILE3 + error + } + + enable_gns + + echo "" + echo "testing GNS with GENERIC upcall in CONCUR2 mode" + + check_gns GENERIC $DIR/gns_test_3b1/gns_test_3b2 $DIR/gns_test_3b1/gns_test_3b2 $TIMOUT $TICK GENERIC FG LIST || { + disable_gns + cleanup_object $DIR/gns_test_3b1 + cleanup_loop $LOOP_DEV1 $LOOP_FILE1 + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + cleanup_loop $LOOP_DEV3 $LOOP_FILE3 + error + } + + disable_gns + + cleanup_object $DIR/gns_test_3b1 + cleanup_loop $LOOP_DEV1 $LOOP_FILE1 + cleanup_loop $LOOP_DEV2 $LOOP_FILE2 + cleanup_loop $LOOP_DEV3 $LOOP_FILE3 + return 0 +} + +run_test 3b " general GNS test - concurrent mount of 2 GNS mounts =======" + TMPDIR=$OLDTMPDIR TMP=$OLDTMP HOME=$OLDHOME